parsesec_test.go 2.8 KB

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