add more tests cases

This commit is contained in:
2025-10-23 03:23:26 +02:00
parent 60e3a804ac
commit 9ab669868d
7 changed files with 114 additions and 72 deletions
+43 -2
View File
@@ -44,7 +44,6 @@ func Test_CSV_ParseFile(t *testing.T) {
expectedRejected: 0,
validateInserted: func(t *testing.T, inserted []meteo.MeteoData) {
assert.Equal(t, 1, len(inserted))
// TrimLeadingSpace should handle the spaces before Madrid
assert.Equal(t, "Madrid", inserted[0].Location)
},
validateRejected: func(t *testing.T, rejected []meteo.RejectedMeteoData) {
@@ -61,7 +60,7 @@ func Test_CSV_ParseFile(t *testing.T) {
},
validateRejected: func(t *testing.T, rejected []meteo.RejectedMeteoData) {
assert.Equal(t, 1, len(rejected))
assert.Contains(t, rejected[0].Reason, "missing city field")
assert.Contains(t, rejected[0].Reason, "missing or invalid city field")
assert.Equal(t, "2025/10/12;11,55;6,25;0;10", rejected[0].RowValue)
},
},
@@ -77,6 +76,48 @@ func Test_CSV_ParseFile(t *testing.T) {
assert.Empty(t, rejected)
},
},
{
name: "missing max temp field value",
filePath: "./../../../assets/test_5.csv",
expectedInserted: 0,
expectedRejected: 1,
validateInserted: func(t *testing.T, inserted []meteo.MeteoData) {
assert.Empty(t, inserted)
},
validateRejected: func(t *testing.T, rejected []meteo.RejectedMeteoData) {
assert.Equal(t, 1, len(rejected))
assert.Contains(t, rejected[0].Reason, "missing or invalid max temp field")
assert.Equal(t, "2025/10/12;Madrid;;6,25;0;10", rejected[0].RowValue)
},
},
{
name: "missing city field value",
filePath: "./../../../assets/test_6.csv",
expectedInserted: 0,
expectedRejected: 1,
validateInserted: func(t *testing.T, inserted []meteo.MeteoData) {
assert.Empty(t, inserted)
},
validateRejected: func(t *testing.T, rejected []meteo.RejectedMeteoData) {
assert.Equal(t, 1, len(rejected))
assert.Contains(t, rejected[0].Reason, "missing or invalid city field")
assert.Equal(t, "2025/10/12;;11,55;6,25;0;10", rejected[0].RowValue)
},
},
{
name: "missing date field value",
filePath: "./../../../assets/test_7.csv",
expectedInserted: 0,
expectedRejected: 1,
validateInserted: func(t *testing.T, inserted []meteo.MeteoData) {
assert.Empty(t, inserted)
},
validateRejected: func(t *testing.T, rejected []meteo.RejectedMeteoData) {
assert.Equal(t, 1, len(rejected))
assert.Contains(t, rejected[0].Reason, "missing or invalid date field")
assert.Equal(t, ";Madrid;11,55;6,25;0;10", rejected[0].RowValue)
},
},
}
for _, tt := range tests {