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  }