Added unit tests for publishers

This commit is contained in:
konrad 2018-01-16 14:28:22 +01:00 committed by kolaente
parent 7e40119014
commit 9c7d2ca000
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
1 changed files with 63 additions and 0 deletions

63
models/publisher_test.go Normal file
View File

@ -0,0 +1,63 @@
package models
import (
"github.com/stretchr/testify/assert"
"testing"
)
func TestAddOrUpdatePublisher(t *testing.T) {
// Create test database
assert.NoError(t, PrepareTestDatabase())
// Bootstrap our test publisher
testpublisher := Publisher{
Name: "Testpublisher",
}
// Delete every prexisting publisher to have a fresh start
allpublishers, err := ListPublishers("")
assert.NoError(t, err)
for _, publisher := range allpublishers {
// Delete
err = DeletePublisherByID(publisher.ID)
assert.NoError(t, err)
// Check if it is gone
_, exists, err := GetPublisherByID(publisher.ID)
assert.NoError(t, err)
assert.False(t, exists)
}
// Create a new publisher
publisher1, err := AddOrUpdatePublisher(testpublisher)
assert.NoError(t, err)
assert.Equal(t, testpublisher.Name, publisher1.Name)
// Get the new publisher
gotpublisher, exists, err := GetPublisherByID(publisher1.ID)
assert.NoError(t, err)
assert.True(t, exists)
assert.Equal(t, testpublisher.Name, gotpublisher.Name)
// Pass an empty publisher to see if it fails
_, err = AddOrUpdatePublisher(Publisher{})
assert.Error(t, err)
// Update the publisher
testpublisher.ID = publisher1.ID
testpublisher.Name = "Lorem Ipsum"
publisher1updated, err := AddOrUpdatePublisher(testpublisher)
assert.NoError(t, err)
assert.Equal(t, testpublisher.Name, publisher1updated.Name)
// Delete the publisher
err = DeletePublisherByID(publisher1.ID)
assert.NoError(t, err)
// Check if it is gone
_, exists, err = GetPublisherByID(publisher1.ID)
assert.NoError(t, err)
assert.False(t, exists)
}