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  }