package def_bool import ( "os" "testing" "gitp78su.ipnodns.ru/svi/kern/v4/d0/defs/table/owner" ) type tester1 struct { t *testing.T owner *owner.LOwner mBool *MBool } func TestMutBool(t *testing.T) { sf := &tester1{ t: t, owner: owner.LetOwner(1, "test_mut_bool"), } sf.mut() sf.fromEnv() sf.set() sf.move() } // Перемещение значения func (sf *tester1) move() { sf.t.Log("move") owner := owner.LetOwner(2, "test_mut_bool_move") sf.mBool.Move(owner) defer func() { if _panic := recover(); _panic == nil { sf.t.Fatalf("move(): panic == nil") } }() _ = sf.mBool.Let() } // Установка и сброс значения func (sf *tester1) set() { sf.t.Log("set") sf.mBool.Set() if sf.mBool.IsNot() { sf.t.Fatalf("set(): val==false") } if sf.mBool.IsNot() { sf.t.Fatalf("set(): val==false") } sf.mBool.Reset() if sf.mBool.IsOk() { sf.t.Fatalf("set(): val==true") } if sf.mBool.IsOk() { sf.t.Fatalf("set(): val==true") } } // Присвоение из переменных окружения func (sf *tester1) fromEnv() { sf.t.Log("fromEnv") sf.fromEnvBad1() sf.fromEnvBad2() sf.fromEnvGood1() sf.fromEnvGood2() } func (sf *tester1) fromEnvGood2() { sf.t.Log("fromEnvGood2") os.Unsetenv("TEST_MUT_BOOL") os.Setenv("TEST_MUT_BOOL", "FalSe") res := sf.mBool.FromEnv("TEST_MUT_BOOL") if res.IsErr() { sf.t.Fatalf("fromEnvGood2(): err=%v", res.Err()) } if res.Ok().IsOk() { sf.t.Fatalf("fromEnvGood2(): not=%v", res.Ok()) } } func (sf *tester1) fromEnvGood1() { sf.t.Log("fromEnvGood1") os.Unsetenv("TEST_MUT_BOOL") os.Setenv("TEST_MUT_BOOL", "tRuE") res := sf.mBool.FromEnv("TEST_MUT_BOOL") if res.IsErr() { sf.t.Fatalf("fromEnvGood1(): err=%v", res.Err()) } } func (sf *tester1) fromEnvBad2() { sf.t.Log("fromEnvBad2") // os.Unsetenv("TEST_MUT_BOOL") os.Setenv("TEST_MUT_BOOL", "5") res := sf.mBool.FromEnv("TEST_MUT_BOOL") if res.IsOk() { sf.t.Fatalf("fromEnvBad2(): err == nil") } } func (sf *tester1) fromEnvBad1() { sf.t.Log("fromEnvBad1") os.Unsetenv("TEST_MUT_BOOL") // os.Setenv("TEST_MUT_BOOL", "faLSe") res := sf.mBool.FromEnv("TEST_MUT_BOOL") if res.IsOk() { sf.t.Fatalf("fromEnvBad1(): err == nil") } } // Создание изменяемого бул func (sf *tester1) mut() { sf.t.Log("log") sf.mBool = MutBool(sf.owner, true) if sf.mBool.IsNot() { sf.t.Fatalf("mut(): val=false") } }