All checks were successful
gitea-deepak/gogmagog/pipeline/head This commit looks good
65 lines
1.4 KiB
Go
65 lines
1.4 KiB
Go
package store_test
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/DATA-DOG/go-sqlmock"
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
|
|
func TestSelectUserById(t *testing.T) {
|
|
// set up test
|
|
assert := assert.New(t)
|
|
|
|
id := 1
|
|
username := "test"
|
|
displayName := "Tom Est"
|
|
password := []byte("ABC€")
|
|
|
|
str, mock := getDbMock(t)
|
|
|
|
rows := sqlmock.NewRows([]string{
|
|
"user_id",
|
|
"username",
|
|
"display_name",
|
|
"password",
|
|
}).
|
|
AddRow(id, username, displayName, password)
|
|
|
|
mock.ExpectQuery(`^SELECT user_id, username, display_name, password FROM users WHERE user_id = \$1`).
|
|
WithArgs(id).
|
|
WillReturnRows(rows)
|
|
|
|
// function under test
|
|
user, err := str.SelectUserByID(1)
|
|
|
|
// test results
|
|
assert.Nil(err)
|
|
assert.EqualValues(id, user.UserID)
|
|
assert.Equal(username, user.Username)
|
|
assert.Equal(displayName, user.DisplayName)
|
|
assert.Equal(password, user.Password)
|
|
|
|
if err := mock.ExpectationsWereMet(); err != nil {
|
|
t.Errorf("unfulfilled expectations: %s", err)
|
|
}
|
|
}
|
|
|
|
func TestErrUserByID(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
idToUse := 1
|
|
|
|
str, mock := getDbMock(t)
|
|
|
|
mock.ExpectQuery(`^SELECT user_id, username, display_name, password FROM users WHERE user_id = \$1`).WithArgs(idToUse).WillReturnError(fmt.Errorf("example error"))
|
|
|
|
user, err := str.SelectUserByID(idToUse)
|
|
assert.NotNil(err)
|
|
assert.Nil(user)
|
|
|
|
if err := mock.ExpectationsWereMet(); err != nil {
|
|
t.Errorf("unfulfilled expectations: %s", err)
|
|
}
|
|
}
|