parsemin_test.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package parsemin
  2. import (
  3. "testing"
  4. )
  5. /*
  6. Тест для парсера времени часов
  7. */
  8. // Тестер для проверки парсера времени
  9. type tester struct {
  10. t *testing.T
  11. ph *ParseMin
  12. }
  13. func TestParseMin(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.setGood1()
  26. sf.setBad1()
  27. }
  28. // Кривое число минут
  29. func (sf *tester) setBad1() {
  30. sf.t.Logf("=setBad1=\n")
  31. sf.ph.Set(60)
  32. if strHour := sf.ph.String(); strHour != "08" {
  33. sf.t.Errorf("setBad1(): strHour(%q)!='08'\n", strHour)
  34. }
  35. }
  36. func (sf *tester) setGood1() {
  37. sf.t.Logf("=setGood1=\n")
  38. sf.ph.Set(8)
  39. if strHour := sf.ph.String(); strHour != "08" {
  40. sf.t.Errorf("setGood1(): strHour(%q)!='08'\n", strHour)
  41. }
  42. }
  43. // Сброс часов в ноль
  44. func (sf *tester) reset() {
  45. sf.t.Logf("=reset=\n")
  46. sf.ph.Reset()
  47. if strHour := sf.ph.String(); strHour != "00" {
  48. sf.t.Errorf("reset(): strHour(%q)!='00'\n", strHour)
  49. }
  50. }
  51. // Устанавливает значение минут
  52. func (sf *tester) parse() {
  53. sf.t.Logf("=parse=\n")
  54. sf.parseBad1()
  55. sf.parseBad2()
  56. sf.parseGood1()
  57. }
  58. // Установка правильных минут
  59. func (sf *tester) parseGood1() {
  60. sf.t.Logf("=parseGood1=\n")
  61. sf.ph.Parse("8")
  62. if strHour := sf.ph.String(); strHour != "08" {
  63. sf.t.Errorf("parseGood1(): strHour(%q)!='08'\n", strHour)
  64. }
  65. }
  66. // Установка отрицательных минут
  67. func (sf *tester) parseBad2() {
  68. sf.t.Logf("=parseBad2=\n")
  69. sf.ph.Parse("-1")
  70. }
  71. // Установка не минут
  72. func (sf *tester) parseBad1() {
  73. sf.t.Logf("=parseBad1=\n")
  74. sf.ph.Parse("abc")
  75. }
  76. // Создание парсера минут
  77. func (sf *tester) create() {
  78. sf.t.Logf("=create=\n")
  79. sf.ph = NewParseMin()
  80. if sf.ph == nil {
  81. sf.t.Errorf("create(): parseHour==nil\n")
  82. }
  83. if hour := sf.ph.Get(); hour != 0 {
  84. sf.t.Errorf("create(): hour(%v)!=0\n", hour)
  85. }
  86. if strHour := sf.ph.String(); strHour != "00" {
  87. sf.t.Errorf("create(): strHour(%q)!='00'\n", strHour)
  88. }
  89. }