github.com/devgek/webskeleton@v0.1.12-0.20231108100924-b903f5172d69/services/entityservicesimpl_test.go (about) 1 package services 2 3 import ( 4 "github.com/devgek/webskeleton/data" 5 "github.com/devgek/webskeleton/models" 6 genmodels "github.com/devgek/webskeleton/models/generated" 7 "github.com/stretchr/testify/assert" 8 "testing" 9 ) 10 11 func TestServices_GetEntityOptions(t *testing.T) { 12 mockedDB := data.MockedDatastore{} 13 ef := genmodels.NewEntityFactoryImpl() 14 services := NewServices(ef, &mockedDB) 15 16 u := models.User{} 17 us := []models.User{} 18 users := []models.User{} 19 users = append(users, models.User{Name: "Maxi", Pass: "xyz", Email: "maxi@test.at", Role: 0}) 20 users = append(users, models.User{Name: "Franzi", Pass: "xyz", Email: "franzi@test.at", Role: 0}) 21 // setup expectations 22 mockedDB.On("GetAllEntities", &u, &us).Return(users) 23 24 // call the code we are testing 25 userOptions, err := services.GetEntityOptions(genmodels.EntityTypeUser) 26 assert.Nil(t, err, "No error expected") 27 assert.NotNil(t, userOptions, "Returned options expected") 28 assert.Equal(t, 2, len(userOptions), "Expected 2 user options") 29 assert.Equal(t, "Maxi:maxi@test.at", userOptions[0].Value, "Expected Maxi option") 30 assert.Equal(t, "Franzi:franzi@test.at", userOptions[1].Value, "Expected Franzi option") 31 32 // assert that the expectations were met 33 mockedDB.AssertNumberOfCalls(t, "GetAllEntities", 1) 34 mockedDB.AssertExpectations(t) 35 }