Library/models/publisher_test.go

79 lines
2.0 KiB
Go
Raw Normal View History

2018-01-16 13:28:22 +00:00
package models
import (
"github.com/stretchr/testify/assert"
"testing"
)
func TestAddOrUpdatePublisher(t *testing.T) {
// Create test database
assert.NoError(t, PrepareTestDatabase())
2018-04-13 13:03:36 +00:00
// Get our doer
doer, _, err := GetUserByID(1)
assert.NoError(t, err)
2018-01-16 13:28:22 +00:00
// Bootstrap our test publisher
testpublisher := Publisher{
2018-01-16 13:28:44 +00:00
Name: "Testpublisher",
2018-01-16 13:28:22 +00:00
}
// Delete every prexisting publisher to have a fresh start
allpublishers, err := ListPublishers("")
assert.NoError(t, err)
for _, publisher := range allpublishers {
// Delete
2018-04-13 13:03:36 +00:00
err = DeletePublisherByID(publisher.ID, &doer)
2018-01-16 13:28:22 +00:00
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
2018-04-13 13:03:36 +00:00
publisher1, err := AddOrUpdatePublisher(testpublisher, &doer)
2018-01-16 13:28:22 +00:00
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
2018-04-13 13:03:36 +00:00
_, err = AddOrUpdatePublisher(Publisher{}, &doer)
2018-01-16 13:28:22 +00:00
assert.Error(t, err)
assert.True(t, IsErrNoPublisherName(err))
2018-01-16 13:28:22 +00:00
// Update the publisher
testpublisher.ID = publisher1.ID
testpublisher.Name = "Lorem Ipsum"
2018-04-13 13:03:36 +00:00
publisher1updated, err := AddOrUpdatePublisher(testpublisher, &doer)
2018-01-16 13:28:22 +00:00
assert.NoError(t, err)
assert.Equal(t, testpublisher.Name, publisher1updated.Name)
2018-01-25 13:39:27 +00:00
// Search
allpublishers, err = ListPublishers("rem")
assert.NoError(t, err)
assert.NotNil(t, allpublishers[0])
2018-01-16 13:28:22 +00:00
// Delete the publisher
2018-04-13 13:03:36 +00:00
err = DeletePublisherByID(publisher1.ID, &doer)
2018-01-16 13:28:22 +00:00
assert.NoError(t, err)
// Check if it is gone
_, exists, err = GetPublisherByID(publisher1.ID)
assert.NoError(t, err)
assert.False(t, exists)
// Try deleting one with ID = 0
2018-04-13 13:03:36 +00:00
err = DeletePublisherByID(0, &doer)
assert.Error(t, err)
assert.True(t, IsErrIDCannotBeZero(err))
2018-01-16 13:28:22 +00:00
}