parsesec_test.go 3.1 KB

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