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