Add additional test cases from code review

Signed-off-by: Ben Ridley <benridley29@gmail.com>
This commit is contained in:
Ben Ridley 2020-11-24 14:12:28 +11:00
parent 1cc736c4c8
commit 8e03268af9

View File

@ -252,7 +252,7 @@ var yamlUnmarshalTestCases = []struct {
}, },
}, },
{ {
// Invalid start time // Invalid start time.
in: ` in: `
--- ---
- times: - times:
@ -262,7 +262,7 @@ var yamlUnmarshalTestCases = []struct {
err: "couldn't parse timestamp 01:99, invalid format", err: "couldn't parse timestamp 01:99, invalid format",
}, },
{ {
// Invalid end time // Invalid end time.
in: ` in: `
--- ---
- times: - times:
@ -272,7 +272,7 @@ var yamlUnmarshalTestCases = []struct {
err: "couldn't parse timestamp 99:99, invalid format", err: "couldn't parse timestamp 99:99, invalid format",
}, },
{ {
// Start day before End day // Start day before end day.
in: ` in: `
--- ---
- weekdays: ['friday:monday']`, - weekdays: ['friday:monday']`,
@ -280,7 +280,7 @@ var yamlUnmarshalTestCases = []struct {
err: "start day cannot be before end day", err: "start day cannot be before end day",
}, },
{ {
// Invalid weekdays // Invalid weekdays.
in: ` in: `
--- ---
- weekdays: ['blurgsday:flurgsday'] - weekdays: ['blurgsday:flurgsday']
@ -289,7 +289,25 @@ var yamlUnmarshalTestCases = []struct {
err: "blurgsday is not a valid weekday", err: "blurgsday is not a valid weekday",
}, },
{ {
// 0 day of month // Numeric weekdays aren't allowed.
in: `
---
- weekdays: ['1:3']
`,
expectError: true,
err: "1 is not a valid weekday",
},
{
// Negative numeric weekdays aren't allowed.
in: `
---
- weekdays: ['-2:-1']
`,
expectError: true,
err: "-2 is not a valid weekday",
},
{
// 0 day of month.
in: ` in: `
--- ---
- days_of_month: ['0'] - days_of_month: ['0']
@ -298,7 +316,7 @@ var yamlUnmarshalTestCases = []struct {
err: "0 is not a valid day of the month: out of range", err: "0 is not a valid day of the month: out of range",
}, },
{ {
// Start day of month < 0 // Start day of month < 0.
in: ` in: `
--- ---
- days_of_month: ['-50:-20'] - days_of_month: ['-50:-20']
@ -307,7 +325,7 @@ var yamlUnmarshalTestCases = []struct {
err: "-50 is not a valid day of the month: out of range", err: "-50 is not a valid day of the month: out of range",
}, },
{ {
// End day of month > 31 // End day of month > 31.
in: ` in: `
--- ---
- days_of_month: ['1:50'] - days_of_month: ['1:50']
@ -316,7 +334,7 @@ var yamlUnmarshalTestCases = []struct {
err: "50 is not a valid day of the month: out of range", err: "50 is not a valid day of the month: out of range",
}, },
{ {
// Negative indices should work // Negative indices should work.
in: ` in: `
--- ---
- days_of_month: ['1:-1'] - days_of_month: ['1:-1']
@ -329,7 +347,7 @@ var yamlUnmarshalTestCases = []struct {
expectError: false, expectError: false,
}, },
{ {
// End day must be negative if begin day is negative // End day must be negative if begin day is negative.
in: ` in: `
--- ---
- days_of_month: ['-15:5'] - days_of_month: ['-15:5']
@ -338,7 +356,7 @@ var yamlUnmarshalTestCases = []struct {
err: "end day must be negative if start day is negative", err: "end day must be negative if start day is negative",
}, },
{ {
// Negative end date before positive postive start date // Negative end date before positive postive start date.
in: ` in: `
--- ---
- days_of_month: ['10:-25'] - days_of_month: ['10:-25']
@ -347,7 +365,20 @@ var yamlUnmarshalTestCases = []struct {
err: "end day -25 is always before start day 10", err: "end day -25 is always before start day 10",
}, },
{ {
// Invalid start month // Months should work regardless of case
in: `
---
- months: ['January:december']
`,
expectError: false,
intervals: []TimeInterval{
{
Months: []MonthRange{{InclusiveRange{1, 12}}},
},
},
},
{
// Invalid start month.
in: ` in: `
--- ---
- months: ['martius:june'] - months: ['martius:june']
@ -356,7 +387,7 @@ var yamlUnmarshalTestCases = []struct {
err: "martius is not a valid month", err: "martius is not a valid month",
}, },
{ {
// Invalid end month // Invalid end month.
in: ` in: `
--- ---
- months: ['march:junius'] - months: ['march:junius']
@ -365,7 +396,7 @@ var yamlUnmarshalTestCases = []struct {
err: "junius is not a valid month", err: "junius is not a valid month",
}, },
{ {
// Start month after end month // Start month after end month.
in: ` in: `
--- ---
- months: ['december:january'] - months: ['december:january']
@ -374,7 +405,7 @@ var yamlUnmarshalTestCases = []struct {
err: "end month january is before start month december", err: "end month january is before start month december",
}, },
{ {
// Start year after end year // Start year after end year.
in: ` in: `
--- ---
- years: ['2022:2020'] - years: ['2022:2020']