github.com/paulwerner/bookkeeper@v0.1.0/store/userStore_test.go (about) 1 package store 2 3 import ( 4 "testing" 5 6 d "github.com/paulwerner/bookkeeper/pkg/domain" 7 "github.com/paulwerner/bookkeeper/utils" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestUserCreate(t *testing.T) { 12 // given 13 asserts := assert.New(t) 14 15 cut := NewUserStore(db) 16 id := utils.RandomUserID() 17 name := "homer" 18 password := "password" 19 20 // when 21 result, err := cut.Create(id, name, password) 22 23 // then 24 asserts.NoError(err) 25 asserts.NotNil(result) 26 asserts.Equal(id, result.ID) 27 asserts.Equal(name, result.Name) 28 asserts.Equal(password, result.Password) 29 30 // finally 31 utils.ClearDB(db) 32 } 33 34 func TestUserFindByID(t *testing.T) { 35 // given 36 asserts := assert.New(t) 37 38 cut := NewUserStore(db) 39 id := utils.RandomUserID() 40 name := "homer" 41 password := "password" 42 u := d.NewUser(id, name, password) 43 utils.PopulateUser(u, db) 44 45 // when 46 result, err := cut.FindByID(id) 47 48 // then 49 asserts.NoError(err) 50 asserts.NotNil(result) 51 asserts.Equal(id, result.ID) 52 asserts.Equal(name, result.Name) 53 asserts.Equal(password, result.Password) 54 55 // finally 56 utils.ClearDB(db) 57 } 58 59 func TestUserFindByIDNotFound(t *testing.T) { 60 // given 61 asserts := assert.New(t) 62 63 cut := NewUserStore(db) 64 id := utils.RandomUserID() 65 66 // when 67 result, err := cut.FindByID(id) 68 69 // then 70 asserts.Equal(err, d.ErrNotFound) 71 asserts.Nil(result) 72 } 73 74 func TestUserFindByName(t *testing.T) { 75 // given 76 asserts := assert.New(t) 77 78 id := utils.RandomUserID() 79 name := "homer" 80 password := "password" 81 u := d.NewUser(id, name, password) 82 utils.PopulateUser(u, db) 83 84 cut := NewUserStore(db) 85 // when 86 result, err := cut.FindByName(name) 87 88 // then 89 asserts.NoError(err) 90 asserts.NotNil(result) 91 asserts.Equal(id, result.ID) 92 asserts.Equal(name, result.Name) 93 asserts.Equal(password, result.Password) 94 95 // finally 96 utils.ClearDB(db) 97 } 98 func TestUserFindByNameNotFound(t *testing.T) { 99 // given 100 asserts := assert.New(t) 101 102 cut := NewUserStore(db) 103 name := "homer" 104 105 // when 106 result, err := cut.FindByName(name) 107 108 // then 109 asserts.Equal(err, d.ErrNotFound) 110 asserts.Nil(result) 111 }