| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package safe_bool_react
- import (
- "testing"
- . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
- )
- type tester struct {
- t *testing.T
- sbr ISafeBoolReact
- val bool
- }
- func TestSafeBoolReact(t *testing.T) {
- sf := &tester{
- t: t,
- }
- sf.create()
- sf.add()
- sf.set()
- sf.reset()
- sf.del()
- }
- // Удаляет функцию обратного вызова
- func (sf *tester) del() {
- sf.t.Log("del")
- sf.sbr.Delete("test")
- sf.val = false
- sf.sbr.Set()
- if sf.val {
- sf.t.Fatalf("del(): val==true")
- }
- }
- // Добавляет функцию обратного вызова
- func (sf *tester) add() {
- sf.t.Log("add")
- sf.sbr.Add("test", sf.fnBack)
- }
- // Функция обратного вызова для контроля
- func (sf *tester) fnBack(val bool) {
- sf.val = val
- }
- // Сбрасывает хранимое значение
- func (sf *tester) reset() {
- sf.t.Log("reset")
- sf.sbr.Reset()
- if sf.sbr.Get() {
- sf.t.Fatalf("reset(): SafeBool==true")
- }
- sf.val = true
- sf.sbr.Reset()
- if sf.sbr.Get() {
- sf.t.Fatalf("reset(): SafeBool==true")
- }
- if sf.val {
- sf.t.Fatalf("reset(): val==true")
- }
- }
- // Установка хранимого значения
- func (sf *tester) set() {
- sf.t.Log("set")
- sf.sbr.Set()
- if !sf.sbr.Get() {
- sf.t.Fatalf("set(): SafeBool==true")
- }
- sf.sbr.Set()
- if !sf.sbr.Get() {
- sf.t.Fatalf("set(): SafeBool==true")
- }
- if !sf.val {
- sf.t.Fatalf("set(): val==false")
- }
- }
- // Создаёт потокобезопасный булевый признак
- func (sf *tester) create() {
- sf.t.Log("create")
- sf.sbr = NewSafeBoolReact()
- if sf.sbr == nil {
- sf.t.Fatalf("create(): SafeBool==nil")
- }
- if sf.sbr.Get() {
- sf.t.Fatalf("create(): SafeBool==true")
- }
- }
|