List strains.

This commit is contained in:
Matthew Dillon 2014-10-29 13:23:25 -08:00
parent 6bba9058aa
commit b8bda910cd
9 changed files with 151 additions and 0 deletions

View file

@ -27,3 +27,15 @@ func (s *strainsStore) Create(strain *models.Strain) (bool, error) {
}
return true, nil
}
func (s *strainsStore) List(opt *models.StrainListOptions) ([]*models.Strain, error) {
if opt == nil {
opt = &models.StrainListOptions{}
}
var strains []*models.Strain
err := s.dbh.Select(&strains, `SELECT * FROM strains LIMIT $1 OFFSET $2;`, opt.PerPageOrDefault(), opt.Offset())
if err != nil {
return nil, err
}
return strains, nil
}

View file

@ -65,3 +65,25 @@ func TestStrainsStore_Create_db(t *testing.T) {
t.Error("want nonzero strain.Id after submitting")
}
}
func TestStrainsStore_List_db(t *testing.T) {
tx, _ := DB.Begin()
defer tx.Rollback()
want_strain := insertStrain(t, tx)
want := []*models.Strain{want_strain}
d := NewDatastore(tx)
strains, err := d.Strains.List(&models.StrainListOptions{ListOptions: models.ListOptions{Page: 1, PerPage: 10}})
if err != nil {
t.Fatal(err)
}
for _, g := range want {
normalizeTime(&g.CreatedAt, &g.UpdatedAt, &g.DeletedAt)
}
if !reflect.DeepEqual(strains, want) {
t.Errorf("got strains %+v, want %+v", strains, want)
}
}