parse_sec_test.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. package parse_sec
  2. import (
  3. "testing"
  4. )
  5. /*
  6. Тест для парсера времени секунд
  7. */
  8. // Тестер для проверки парсера времени
  9. type tester struct {
  10. t *testing.T
  11. ph *ПарсерСекунд
  12. }
  13. func TestParsesec(t *testing.T) {
  14. test := &tester{
  15. t: t,
  16. }
  17. test.create()
  18. test.parse()
  19. test.set()
  20. test.reset()
  21. }
  22. // Целочисленная установка секунд
  23. func (сам *tester) set() {
  24. сам.t.Logf("=set=\n")
  25. сам.setGood1()
  26. }
  27. func (сам *tester) setGood1() {
  28. сам.t.Logf("=setGood1=\n")
  29. if err := сам.ph.УстСек(26); err != nil {
  30. сам.t.Errorf("setGood1(): err=\n\t%v\n", err)
  31. }
  32. if strHour := сам.ph.String(); strHour != "26" {
  33. сам.t.Errorf("setGood1(): strHour(%q)!='26'\n", strHour)
  34. }
  35. }
  36. // Сброс секунд в ноль
  37. func (сам *tester) reset() {
  38. сам.t.Logf("=reset=\n")
  39. сам.ph.Сброс()
  40. if strSec := сам.ph.String(); strSec != "00" {
  41. сам.t.Errorf("setGood2(): strSec(%q)!='00'\n", strSec)
  42. }
  43. }
  44. // Устанавливает значение секунд
  45. func (сам *tester) parse() {
  46. сам.t.Logf("=parse=\n")
  47. сам.parseBad1()
  48. сам.parseBad2()
  49. сам.parseBad3()
  50. сам.parseGood1()
  51. сам.parseGood2()
  52. }
  53. // Установка правильных секунд
  54. func (сам *tester) parseGood2() {
  55. сам.t.Logf("=parseGood2=\n")
  56. defer func() {
  57. if _panic := recover(); _panic != nil {
  58. сам.t.Errorf("parseGood2(): panic=\n\t%v\n", _panic)
  59. }
  60. }()
  61. ош := сам.ph.Уст("59")
  62. if ош != nil {
  63. сам.t.Errorf("parseGood2(): ош=\n\t%v\n", ош)
  64. }
  65. if strHour := сам.ph.String(); strHour != "59" {
  66. сам.t.Errorf("parseGood2(): strHour(%q)!='867'\n", strHour)
  67. }
  68. }
  69. // Установка правильных часов
  70. func (сам *tester) parseGood1() {
  71. сам.t.Logf("=parseGood1=\n")
  72. defer func() {
  73. if _panic := recover(); _panic != nil {
  74. сам.t.Errorf("parseGood1(): panic=\n\t%v\n", _panic)
  75. }
  76. }()
  77. ош := сам.ph.Уст("8")
  78. if ош != nil {
  79. сам.t.Errorf("parseGood1(): ош=\n\t%v\n", ош)
  80. }
  81. if strHour := сам.ph.String(); strHour != "08" {
  82. сам.t.Errorf("parseGood1(): strHour(%q)!='08'\n", strHour)
  83. }
  84. }
  85. // Установка больших часов
  86. func (сам *tester) parseBad3() {
  87. сам.t.Logf("=parseBad3=\n")
  88. if err := сам.ph.Уст("61"); err == nil {
  89. сам.t.Errorf("parseBad3(): err==nil\n")
  90. }
  91. }
  92. // Установка отрицательных часов
  93. func (сам *tester) parseBad2() {
  94. сам.t.Logf("=parseBad2=\n")
  95. if err := сам.ph.Уст("-1"); err == nil {
  96. сам.t.Errorf("parseBad2(): err==nil\n")
  97. }
  98. }
  99. // Установка не часов
  100. func (сам *tester) parseBad1() {
  101. сам.t.Logf("=parseBad1=\n")
  102. if err := сам.ph.Уст("abc"); err == nil {
  103. сам.t.Errorf("parseBad1(): err==nil\n")
  104. }
  105. }
  106. // Создание парсера часов
  107. func (сам *tester) create() {
  108. сам.t.Logf("=create=\n")
  109. сам.ph = НовПарсерСекунд()
  110. if сам.ph == nil {
  111. сам.t.Errorf("create(): parseHour==nil\n")
  112. }
  113. if hour := сам.ph.Получ(); hour != 0 {
  114. сам.t.Errorf("create(): hour(%v)!=0\n", hour)
  115. }
  116. if strHour := сам.ph.String(); strHour != "00" {
  117. сам.t.Errorf("create(): strHour(%q)!='00'\n", strHour)
  118. }
  119. }