github.com/hellofresh/janus@v0.0.0-20230925145208-ce8de8183c67/pkg/plugin/basic/in_memory_repository_test.go (about) 1 package basic 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func newInMemoryRepo() *InMemoryRepository { 10 repo := NewInMemoryRepository() 11 12 repo.Add(&User{ 13 Username: "test1", 14 Password: "test1", 15 }) 16 17 repo.Add(&User{ 18 Username: "test2", 19 Password: "test2", 20 }) 21 22 return repo 23 } 24 25 func TestAdd(t *testing.T) { 26 repo := newInMemoryRepo() 27 28 err := repo.Add(&User{ 29 Username: "test3", 30 Password: "test3", 31 }) 32 assert.NoError(t, err) 33 } 34 35 func TestRemoveExistentUser(t *testing.T) { 36 repo := newInMemoryRepo() 37 38 err := repo.Remove("test1") 39 assert.NoError(t, err) 40 } 41 42 func TestRemoveNonexistentUser(t *testing.T) { 43 repo := newInMemoryRepo() 44 45 err := repo.Remove("invalid") 46 assert.Error(t, err) 47 } 48 49 func TestFindAll(t *testing.T) { 50 repo := newInMemoryRepo() 51 52 results, err := repo.FindAll() 53 assert.NoError(t, err) 54 assert.Len(t, results, 2) 55 } 56 57 func TestFindByUsername(t *testing.T) { 58 repo := newInMemoryRepo() 59 60 result, err := repo.FindByUsername("test1") 61 assert.NoError(t, err) 62 assert.NotNil(t, result) 63 } 64 65 func TestNotFindByUsername(t *testing.T) { 66 repo := newInMemoryRepo() 67 68 result, err := repo.FindByUsername("invalid") 69 assert.Error(t, err) 70 assert.Nil(t, result) 71 }