def_bool_mut_test.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package def_bool
  2. import (
  3. "os"
  4. "testing"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/d0/defs/table/owner"
  6. )
  7. type tester1 struct {
  8. t *testing.T
  9. owner *owner.LOwner
  10. mBool *MBool
  11. }
  12. func TestMutBool(t *testing.T) {
  13. sf := &tester1{
  14. t: t,
  15. owner: owner.LetOwner(1, "test_mut_bool"),
  16. }
  17. sf.mut()
  18. sf.fromEnv()
  19. sf.set()
  20. sf.move()
  21. }
  22. // Перемещение значения
  23. func (sf *tester1) move() {
  24. sf.t.Log("move")
  25. owner := owner.LetOwner(2, "test_mut_bool_move")
  26. sf.mBool.Move(owner)
  27. defer func() {
  28. if _panic := recover(); _panic == nil {
  29. sf.t.Fatalf("move(): panic == nil")
  30. }
  31. }()
  32. _ = sf.mBool.Let()
  33. }
  34. // Установка и сброс значения
  35. func (sf *tester1) set() {
  36. sf.t.Log("set")
  37. sf.mBool.Set()
  38. if sf.mBool.IsNot() {
  39. sf.t.Fatalf("set(): val==false")
  40. }
  41. if sf.mBool.IsNot() {
  42. sf.t.Fatalf("set(): val==false")
  43. }
  44. sf.mBool.Reset()
  45. if sf.mBool.IsOk() {
  46. sf.t.Fatalf("set(): val==true")
  47. }
  48. if sf.mBool.IsOk() {
  49. sf.t.Fatalf("set(): val==true")
  50. }
  51. }
  52. // Присвоение из переменных окружения
  53. func (sf *tester1) fromEnv() {
  54. sf.t.Log("fromEnv")
  55. sf.fromEnvBad1()
  56. sf.fromEnvBad2()
  57. sf.fromEnvGood1()
  58. sf.fromEnvGood2()
  59. }
  60. func (sf *tester1) fromEnvGood2() {
  61. sf.t.Log("fromEnvGood2")
  62. os.Unsetenv("TEST_MUT_BOOL")
  63. os.Setenv("TEST_MUT_BOOL", "FalSe")
  64. res := sf.mBool.FromEnv("TEST_MUT_BOOL")
  65. if res.IsErr() {
  66. sf.t.Fatalf("fromEnvGood2(): err=%v", res.Err())
  67. }
  68. if res.Ok().IsOk() {
  69. sf.t.Fatalf("fromEnvGood2(): not=%v", res.Ok())
  70. }
  71. }
  72. func (sf *tester1) fromEnvGood1() {
  73. sf.t.Log("fromEnvGood1")
  74. os.Unsetenv("TEST_MUT_BOOL")
  75. os.Setenv("TEST_MUT_BOOL", "tRuE")
  76. res := sf.mBool.FromEnv("TEST_MUT_BOOL")
  77. if res.IsErr() {
  78. sf.t.Fatalf("fromEnvGood1(): err=%v", res.Err())
  79. }
  80. }
  81. func (sf *tester1) fromEnvBad2() {
  82. sf.t.Log("fromEnvBad2")
  83. // os.Unsetenv("TEST_MUT_BOOL")
  84. os.Setenv("TEST_MUT_BOOL", "5")
  85. res := sf.mBool.FromEnv("TEST_MUT_BOOL")
  86. if res.IsOk() {
  87. sf.t.Fatalf("fromEnvBad2(): err == nil")
  88. }
  89. }
  90. func (sf *tester1) fromEnvBad1() {
  91. sf.t.Log("fromEnvBad1")
  92. os.Unsetenv("TEST_MUT_BOOL")
  93. // os.Setenv("TEST_MUT_BOOL", "faLSe")
  94. res := sf.mBool.FromEnv("TEST_MUT_BOOL")
  95. if res.IsOk() {
  96. sf.t.Fatalf("fromEnvBad1(): err == nil")
  97. }
  98. }
  99. // Создание изменяемого бул
  100. func (sf *tester1) mut() {
  101. sf.t.Log("log")
  102. sf.mBool = MutBool(sf.owner, true)
  103. if sf.mBool.IsNot() {
  104. sf.t.Fatalf("mut(): val=false")
  105. }
  106. }