package parsetime import ( "testing" ) /* Тест для парсинга времени */ // Тестер для парсера времени type tester struct { t *testing.T pars *ParseTime } func TestParseTime(t *testing.T) { test := &tester{ t: t, } test.create() test.parse() } // Создание парсера func (sf *tester) create() { sf.t.Logf("=create=\n") sf.pars = NewParseTime() if sf.pars.hour == nil { sf.t.Errorf("create(): hour==nil\n") } if sf.pars.min == nil { sf.t.Errorf("create(): min==nil\n") } if sf.pars.sec == nil { sf.t.Errorf("create(): sec==nil\n") } if val := sf.pars.Get(); val != 0 { sf.t.Errorf("create(): valInt(%d)!=0\n", val) } } // Парсинг строки времени func (sf *tester) parse() { sf.t.Logf("=parse=\n") sf.parseBad1() sf.parseSec() sf.parseSecBad1() sf.parseMin() sf.parseMinSecBad1() sf.parseMinMinBad1() sf.parseHour() sf.parseHourSecBad1() sf.parseHourMinBad1() sf.parseHourHourBad1() } func (sf *tester) parseHourHourBad1() { sf.t.Logf("=parseHourHourBad1=\n") if err := sf.pars.Parse("-11:14:54"); err == nil { sf.t.Errorf("parseHourHourBad1(): err==nil\n") } if val := sf.pars.Get(); val != 5820 { sf.t.Errorf("parseHourHourBad1(): valInt(%d)!=5820\n", val) } if hour := sf.pars.Hour().Get(); hour != 1 { sf.t.Errorf("parseHourHourBad1(): hour(%d)!=1\n", hour) } if min := sf.pars.Min().Get(); min != 14 { sf.t.Errorf("parseHourHourBad1(): min(%d)!=14\n", min) } if sec := sf.pars.Sec().Get(); sec != 54 { sf.t.Errorf("parseHourHourBad1(): sec(%d)!=54\n", sec) } } func (sf *tester) parseHourMinBad1() { sf.t.Logf("=parseHourMinBad1=\n") if err := sf.pars.Parse("01:-4:01"); err == nil { sf.t.Errorf("parseHourMinBad1(): err==nil\n") } if val := sf.pars.Get(); val != 5820 { sf.t.Errorf("parseHourMinBad1(): valInt(%d)!=5820\n", val) } } func (sf *tester) parseHourSecBad1() { sf.t.Logf("=parseHourSecBad1=\n") if err := sf.pars.Parse("01:37:a"); err == nil { sf.t.Errorf("parseHourSecBad1(): err==nil\n") } if val := sf.pars.Get(); val != 5820 { sf.t.Errorf("parseHourSecBad1(): valInt(%d)!=5820\n", val) } } func (sf *tester) parseHour() { sf.t.Logf("=parseHour=\n") if err := sf.pars.Parse("01:37:00"); err != nil { sf.t.Errorf("parseHour(): err=\n\t%v\n", err) } if val := sf.pars.Get(); val != 5820 { sf.t.Errorf("parseHour(): valInt(%d)!=5820\n", val) } } func (sf *tester) parseMinMinBad1() { sf.t.Logf("=parseMinMinBad1=\n") if err := sf.pars.Parse("60:25"); err == nil { sf.t.Errorf("parseMinMinBad1(): err==nil\n") } if val := sf.pars.Get(); val != 444 { sf.t.Errorf("parseMinMinBad1(): valInt(%d)!=444\n", val) } } func (sf *tester) parseMinSecBad1() { sf.t.Logf("=parseMinSecBad1=\n") if err := sf.pars.Parse("07:-1"); err == nil { sf.t.Errorf("parseMinSecBad1(): err==nil\n") } if val := sf.pars.Get(); val != 7*60+24 { sf.t.Errorf("parseMinSecBad1(): valInt(%d)!=7*60+24\n", val) } } func (sf *tester) parseMin() { sf.t.Logf("=parseMin=\n") if err := sf.pars.Parse("07:24"); err != nil { sf.t.Errorf("parseMin(): err=\n\t%v\n", err) } if val := sf.pars.Get(); val != 7*60+24 { sf.t.Errorf("parseMin(): valInt(%d)!=7*60+24\n", val) } } // Слишком большие секунды func (sf *tester) parseSecBad1() { sf.t.Logf("=parseSecBad1=\n") if err := sf.pars.Parse("60"); err == nil { sf.t.Errorf("parseSecBad1(): err==nil\n") } if val := sf.pars.Get(); val != 28 { sf.t.Errorf("parseSecBad1(): valInt(%d)!=28\n", val) } } func (sf *tester) parseSec() { sf.t.Logf("=parseSec=\n") if err := sf.pars.Parse("28"); err != nil { sf.t.Errorf("parseSec(): err=\n\t%v\n", err) } if val := sf.pars.Get(); val != 28 { sf.t.Errorf("parseSec(): valInt(%d)!=28\n", val) } } // Нет строки для парсинга func (sf *tester) parseBad1() { sf.t.Logf("=parseBad1=\n") if err := sf.pars.Parse(""); err == nil { sf.t.Errorf("parseBad1(): err==nil\n") } }