github.com/paulwerner/bookkeeper@v0.1.0/store/transactionsStore_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 TestTransactionCreateWithoutDescription(t *testing.T) { 12 // given 13 defer utils.ClearDB(db) 14 asserts := assert.New(t) 15 16 uID := utils.RandomUserID() 17 u := d.NewUser(uID, "homer", "password") 18 utils.PopulateUser(u, db) 19 aID := utils.RandomAccountID() 20 a := d.NewAccount(aID, *u, "Main Account", nil, d.CHECKING, int64(23), "EUR") 21 utils.PopulateAccount(a, db) 22 23 id := utils.RandomTransactionID() 24 amount := int64(23) 25 currency := "EUR" 26 27 tx := d.NewTransaction(id, *a, nil, amount, currency) 28 29 cut := NewTransactionStore(db) 30 31 // when 32 result, err := cut.Create(*tx) 33 34 // then 35 asserts.NoError(err) 36 asserts.NotNil(result) 37 asserts.Equal(id, result.ID) 38 asserts.Nil(result.Description) 39 asserts.Equal(amount, result.Amount) 40 asserts.Equal(currency, result.Currency) 41 } 42 43 func TestTransactionCreateWithDescription(t *testing.T) { 44 // given 45 defer utils.ClearDB(db) 46 asserts := assert.New(t) 47 48 uID := utils.RandomUserID() 49 u := d.NewUser(uID, "homer", "password") 50 utils.PopulateUser(u, db) 51 aID := utils.RandomAccountID() 52 a := d.NewAccount(aID, *u, "Main Account", nil, d.CHECKING, int64(23), "EUR") 53 utils.PopulateAccount(a, db) 54 55 id := utils.RandomTransactionID() 56 description := "some description" 57 amount := int64(23) 58 currency := "EUR" 59 60 tx := d.NewTransaction(id, *a, &description, amount, currency) 61 62 cut := NewTransactionStore(db) 63 64 // when 65 result, err := cut.Create(*tx) 66 67 // then 68 asserts.NoError(err) 69 asserts.NotNil(result) 70 asserts.Equal(id, result.ID) 71 asserts.Equal(&description, result.Description) 72 asserts.Equal(amount, result.Amount) 73 asserts.Equal(currency, result.Currency) 74 }