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  }