func TestFindAll(t *testing.T) {
dbMock, mock, err := sqlmock.New()
if err != nil {
t.Errorf("An error '%s' was not expected when opening a stub database connection", err)
}
defer dbMock.Close()
columns := []string{"id", "date", "name", "code"}
expectedData := Data{
Id: 1,
Date: time.Time{},
Name: "Name",
Code: "Code",
}
dbConn := sqlx.NewDb(dbMock, "")
mock.ExpectQuery(`SELECT id,date,name,code FROM datas ORDER BY name ASC`).
WillReturnRows(sqlmock.NewRows(columns).AddRow(expectedData.Id, expectedData.Date, expectedData.Name, expectedData.Code))
r := NewRepository(dbConn)
currencies, err := r.FindAll()
assert.NoError(t, err)
if err := mock.ExpectationsWereMet(); err != nil {
t.Error(err)
}
expectedListOfDatas := []*Currency{&expectedData}
assert.Equal(t, expectedListOfDatas, datas)
}