Improved author unit test

This commit is contained in:
konrad 2018-01-16 13:19:49 +01:00 committed by kolaente
parent bd261ca375
commit a315f71144
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
2 changed files with 79 additions and 0 deletions

View File

@ -16,11 +16,13 @@ func TestAddOrUpdateAuthor(t *testing.T) {
author1, err := AddOrUpdateAuthor(testauthor)
assert.NoError(t, err)
assert.Equal(t, testauthor.Forename, author1.Forename)
assert.Equal(t, testauthor.Lastname, author1.Lastname)
// And anotherone
author2, err := AddOrUpdateAuthor(testauthor)
assert.NoError(t, err)
assert.Equal(t, testauthor.Forename, author2.Forename)
assert.Equal(t, testauthor.Lastname, author2.Lastname)
// As of now, we should have 2 authors in total. Get the list and check.
allauthors, err := ListAuthors("")
@ -36,6 +38,7 @@ func TestAddOrUpdateAuthor(t *testing.T) {
assert.NoError(t, err)
assert.True(t, exists)
assert.Equal(t, gotauthor.Forename, testauthor.Forename)
assert.Equal(t, gotauthor.Lastname, testauthor.Lastname)
// Pass an empty author to see if it fails
_, err = AddOrUpdateAuthor(Author{})
@ -47,6 +50,7 @@ func TestAddOrUpdateAuthor(t *testing.T) {
author1updated, err := AddOrUpdateAuthor(testauthor)
assert.NoError(t, err)
assert.Equal(t, testauthor.Forename, author1updated.Forename)
assert.Equal(t, testauthor.Lastname, author1updated.Lastname)
// Delete the author
err = DeleteAuthorByID(author1.ID)

75
models/item_test.go Normal file
View File

@ -0,0 +1,75 @@
package models
import (
"github.com/stretchr/testify/assert"
"testing"
)
func TestAddOrUpdateItem(t *testing.T) {
// Create test database
assert.NoError(t, PrepareTestDatabase())
// Bootstrap our test item
testitem := Item{
Title:"Testitem",
Price:9.999,
Description: "Lorem Ipsum",
Other: "bs",
}
// Create a new item
item1, err := AddOrUpdateItem(testitem)
assert.NoError(t, err)
assert.Equal(t, testitem.Title, item1.Title)
assert.Equal(t, testitem.Price, item1.Price)
assert.Equal(t, testitem.Description, item1.Description)
assert.Equal(t, testitem.Other, item1.Other)
// And anotherone
item2, err := AddOrUpdateItem(testitem)
assert.NoError(t, err)
assert.Equal(t, testitem.Title, item2.Title)
// As of now, we should have 2 items in total. Get the list and check.
allitems, err := ListItems("")
assert.NoError(t, err)
for _, item := range allitems {
assert.Equal(t, testitem.Title, item.Title)
assert.Equal(t, testitem.Price, item.Price)
assert.Equal(t, testitem.Description, item.Description)
assert.Equal(t, testitem.Other, item.Other)
}
// Get the new item
gotitem, exists, err := GetItemByID(item1.ID)
assert.NoError(t, err)
assert.True(t, exists)
assert.Equal(t, testitem.Title, gotitem.Title)
assert.Equal(t, testitem.Price, gotitem.Price)
assert.Equal(t, testitem.Description, gotitem.Description)
assert.Equal(t, testitem.Other, gotitem.Other)
// Pass an empty item to see if it fails
_, err = AddOrUpdateItem(Item{})
assert.Error(t, err)
// Update the item
testitem.ID = item1.ID
testitem.Title = "Lorem Ipsum"
item1updated, err := AddOrUpdateItem(testitem)
assert.NoError(t, err)
assert.Equal(t, testitem.Title, item1updated.Title)
assert.Equal(t, testitem.Price, item1updated.Price)
assert.Equal(t, testitem.Description, item1updated.Description)
assert.Equal(t, testitem.Other, item1updated.Other)
// Delete the item
err = DeleteItemByID(item1.ID)
assert.NoError(t, err)
// Check if it is gone
_, exists, err = GetItemByID(item1.ID)
assert.NoError(t, err)
assert.False(t, exists)
}