mockenv_test.go 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. package mock_env
  2. import (
  3. "testing"
  4. )
  5. /*
  6. Тест для отладочных переменных окружения
  7. */
  8. // Тестер для переменных окружения
  9. type tester struct {
  10. t *testing.T
  11. me *МокОкружение
  12. }
  13. func TestMockEnv(t *testing.T) {
  14. test := &tester{
  15. t: t,
  16. }
  17. test.create()
  18. test.initFake()
  19. test.readFile()
  20. test.getPairs()
  21. test.initLocal()
  22. test.stage()
  23. }
  24. // Плохой STAGE
  25. func (сам *tester) stage() {
  26. сам.t.Logf("stage()\n")
  27. сам.badStage1()
  28. сам.badStage2()
  29. }
  30. // STAGE имеет неизвестное значение
  31. func (сам *tester) badStage2() {
  32. сам.t.Logf("badStage2()\n")
  33. defer func() {
  34. if _panic := recover(); _panic == nil {
  35. сам.t.Errorf("badStage2(): panic==nil\n")
  36. }
  37. }()
  38. сам.me.dict["STAGE"] = "bad_local"
  39. сам.me.checkStage()
  40. }
  41. // Нет STAGE
  42. func (сам *tester) badStage1() {
  43. сам.t.Logf("badStage1()\n")
  44. defer func() {
  45. if _panic := recover(); _panic == nil {
  46. сам.t.Errorf("badStage1(): panic==nil\n")
  47. }
  48. }()
  49. delete(сам.me.dict, "STAGE")
  50. сам.me.checkStage()
  51. }
  52. // Локальная инициализация
  53. func (сам *tester) initLocal() {
  54. сам.initLocalBad1()
  55. сам.initLocalBad2()
  56. сам.initLocalBad3()
  57. сам.initLocalBad4()
  58. сам.initLocalGood1()
  59. сам.me.Unset()
  60. }
  61. func (сам *tester) initLocalGood1() {
  62. if err := сам.me.ИнитЛокал(); err != nil {
  63. сам.t.Errorf("initLocalGood1(): err=\n\t%v\n", err)
  64. }
  65. }
  66. // Вообще нет STAGE
  67. func (сам *tester) initLocalBad4() {
  68. _fileEnv := fileEnv
  69. fileEnv = "./test_data/env_bad2"
  70. if err := сам.me.ИнитЛокал(); err == nil {
  71. сам.t.Errorf("initLocalBad4(): err==nil\n")
  72. }
  73. fileEnv = _fileEnv
  74. }
  75. // Кривое значение STAGE
  76. func (сам *tester) initLocalBad3() {
  77. _fileEnv := fileEnv
  78. fileEnv = "./test_data/env_bad1"
  79. if err := сам.me.ИнитЛокал(); err == nil {
  80. сам.t.Errorf("initLocalBad3(): err==nil\n")
  81. }
  82. fileEnv = _fileEnv
  83. }
  84. // Кривое содержимое файла
  85. func (сам *tester) initLocalBad2() {
  86. _fileEnv := fileEnv
  87. fileEnv = "./test_data/env_bad"
  88. if err := сам.me.ИнитЛокал(); err == nil {
  89. сам.t.Errorf("initLocalBad2(): err==nil\n")
  90. }
  91. fileEnv = _fileEnv
  92. }
  93. // Кривое имя файла
  94. func (сам *tester) initLocalBad1() {
  95. _fileEnv := fileEnv
  96. fileEnv = "4"
  97. if err := сам.me.ИнитЛокал(); err == nil {
  98. сам.t.Errorf("initLocalBad1(): err==nil\n")
  99. }
  100. fileEnv = _fileEnv
  101. }
  102. // Получение пар значений
  103. func (сам *tester) getPairs() {
  104. сам.getPairsBad1()
  105. сам.getPairsBad2()
  106. сам.getPairsBad3()
  107. сам.getPairsBad4()
  108. сам.getPairsGood1()
  109. }
  110. func (сам *tester) getPairsGood1() {
  111. dict, err := сам.me.getPairs("\nPARAM=\"123\"\nPARAM2=\"param2\"\n")
  112. if err != nil {
  113. сам.t.Errorf("getPairsGood1(): err=\n\t%v\n", err)
  114. }
  115. if dict == nil {
  116. сам.t.Errorf("getPairsGood1(): dict == nil\n")
  117. }
  118. }
  119. // Кривая пара
  120. func (сам *tester) getPairsBad4() {
  121. dict, err := сам.me.getPairs("\nPARAM=\"=\"=\"\"\nPARAM2=\"param2\"\n")
  122. if err == nil {
  123. сам.t.Errorf("getPairsBad4(): err==nil\n")
  124. }
  125. if dict != nil {
  126. сам.t.Errorf("getPairsBad4(): dict != nil\n")
  127. }
  128. }
  129. // Кривое значение
  130. func (сам *tester) getPairsBad3() {
  131. dict, err := сам.me.getPairs("\nPARAM=\"\"\nPARAM2=\"param2\"\n")
  132. if err == nil {
  133. сам.t.Errorf("getPairsBad3(): err==nil\n")
  134. }
  135. if dict != nil {
  136. сам.t.Errorf("getPairsBad3(): dict != nil\n")
  137. }
  138. }
  139. // Кривой ключ
  140. func (сам *tester) getPairsBad2() {
  141. dict, err := сам.me.getPairs("\n=\"param\"\nPARAM2=\"param2\"\n")
  142. if err == nil {
  143. сам.t.Errorf("getPairsBad2(): err==nil\n")
  144. }
  145. if dict != nil {
  146. сам.t.Errorf("getPairsBad2(): dict != nil\n")
  147. }
  148. }
  149. // Пустой текст
  150. func (сам *tester) getPairsBad1() {
  151. dict, err := сам.me.getPairs("\n\n\n")
  152. if err == nil {
  153. сам.t.Errorf("getPairsBad1(): err==nil\n")
  154. }
  155. if dict != nil {
  156. сам.t.Errorf("getPairsBad1(): dict != nil\n")
  157. }
  158. }
  159. // Чтение файла переменных окружения
  160. func (сам *tester) readFile() {
  161. сам.readFileBad1()
  162. сам.readFileBad2()
  163. сам.readFileBad3()
  164. сам.readFileGood1()
  165. }
  166. func (сам *tester) readFileGood1() {
  167. strData, err := сам.me.readFile()
  168. if err != nil {
  169. сам.t.Errorf("readFileGood1(): err=\n\t%v\n", err)
  170. }
  171. if strData == "" {
  172. сам.t.Errorf("readFileGood1(): strData is empty\n")
  173. }
  174. }
  175. // Кривой путь-2
  176. func (сам *tester) readFileBad3() {
  177. _selfPath := selfPath
  178. selfPath = "me/"
  179. strData, err := сам.me.readFile()
  180. if err == nil {
  181. сам.t.Errorf("readFileBad3(): err==nil\n")
  182. }
  183. if strData != "" {
  184. сам.t.Errorf("readFileBad3(): strData not empty\n")
  185. }
  186. selfPath = _selfPath
  187. }
  188. // Неправильное имя файла
  189. func (сам *tester) readFileBad2() {
  190. _fileEnv := fileEnv
  191. fileEnv = ""
  192. strData, err := сам.me.readFile()
  193. if err == nil {
  194. сам.t.Errorf("readFileBad2(): err==nil\n")
  195. }
  196. if strData != "" {
  197. сам.t.Errorf("readFileBad2(): strData not empty\n")
  198. }
  199. fileEnv = _fileEnv
  200. }
  201. // Кривой путь
  202. func (сам *tester) readFileBad1() {
  203. _selfPath := selfPath
  204. selfPath = "#"
  205. strData, err := сам.me.readFile()
  206. if err == nil {
  207. сам.t.Errorf("readFileBad1(): err==nil\n")
  208. }
  209. if strData != "" {
  210. сам.t.Errorf("readFileBad1(): strData not empty\n")
  211. }
  212. selfPath = _selfPath
  213. }
  214. // Иницилизация фейковыми данными
  215. func (сам *tester) initFake() {
  216. сам.me.ИнитФейк()
  217. }
  218. // Создание объекта переменных окружения
  219. func (сам *tester) create() {
  220. сам.me = НовМокОкружение()
  221. if сам.me == nil {
  222. сам.t.Errorf("create(): mockEnv is nil\n")
  223. }
  224. if сам.me.dict == nil {
  225. сам.t.Errorf("create(): dict env is nil")
  226. }
  227. if len_ := len(сам.me.dict); len_ != 0 {
  228. сам.t.Errorf("create(): len dict(%v)!=0\n", len_)
  229. }
  230. }