Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
182
pkg/db/queries/subscriptions._test.go
Normal file
182
pkg/db/queries/subscriptions._test.go
Normal file
@@ -0,0 +1,182 @@
|
||||
package queries_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"fiskerinc.com/modules/common"
|
||||
"fiskerinc.com/modules/db"
|
||||
"fiskerinc.com/modules/db/queries"
|
||||
"fiskerinc.com/modules/testhelper"
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func TestSubscriptions(t *testing.T) {
|
||||
t.Skip()
|
||||
query, carToDriver, subtype := setupSubscriptions(t)
|
||||
defer cleanUpSubscriptionTest(carToDriver, subtype)
|
||||
if query == nil || carToDriver == nil || subtype == nil {
|
||||
t.Error("setupSubscriptions error")
|
||||
return
|
||||
}
|
||||
|
||||
subID := createSubscription(t, query, carToDriver, subtype)
|
||||
if subID == 0 {
|
||||
return
|
||||
}
|
||||
selectSubscription(t, query, subID)
|
||||
updateSubscription(t, query, subID)
|
||||
deleteSubscription(t, query, subID)
|
||||
}
|
||||
|
||||
func setupSubscriptions(t *testing.T) (queries.SubscriptionsInterface, *common.CarToDriver, *common.SubscriptionType) {
|
||||
subtype := createTestSubscriptionType(t)
|
||||
carToDriver, err := createTestCarDriver(t)
|
||||
if err != nil {
|
||||
return nil, nil, nil
|
||||
}
|
||||
instance := &queries.Subscriptions{}
|
||||
conn = instance.GetDBConn()
|
||||
conn.AddQueryHook(db.SQLLogger{})
|
||||
|
||||
return instance, carToDriver, subtype
|
||||
}
|
||||
|
||||
func createTestSubscriptionType(t *testing.T) *common.SubscriptionType {
|
||||
subtypes := setupSubscriptionTypes(t)
|
||||
subtype := insertSubscriptionType(t, subtypes)
|
||||
|
||||
return subtype
|
||||
}
|
||||
|
||||
func createTestCarDriver(t *testing.T) (*common.CarToDriver, error) {
|
||||
driver := common.Driver{
|
||||
ID: uuid.New().String(),
|
||||
}
|
||||
drivers := queries.Drivers{}
|
||||
_, err := drivers.Insert(&driver)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
cars := queries.Cars{}
|
||||
car := common.Car{
|
||||
VIN: "4S3BJ6332P6953766",
|
||||
}
|
||||
_, err = cars.Insert(&car)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
carToDriver, err := cars.AddDriver(&car, &driver, "driver")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return carToDriver, nil
|
||||
}
|
||||
|
||||
func createSubscription(t *testing.T, query queries.SubscriptionsInterface, carToDriver *common.CarToDriver, subtype *common.SubscriptionType) int64 {
|
||||
sub, err := query.Create(subtype, carToDriver)
|
||||
if err != nil {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscription insert", nil, err)
|
||||
return 0
|
||||
}
|
||||
|
||||
return sub.ID
|
||||
}
|
||||
|
||||
func selectSubscription(t *testing.T, query queries.SubscriptionsInterface, subID int64) {
|
||||
sub := common.Subscription{ID: subID}
|
||||
err := query.Load(&sub)
|
||||
if err != nil {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscriptions Load", nil, err)
|
||||
}
|
||||
if sub.Name == "" {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscriptions Load Name", "not empty", sub.Name)
|
||||
}
|
||||
|
||||
subTypeValues := map[string]interface{}{
|
||||
"Name": "NAME",
|
||||
"Destination": "ICC",
|
||||
}
|
||||
testhelper.PropsTester(t, &sub, subTypeValues)
|
||||
|
||||
subtypes, err := query.Select(&common.Subscription{ID: subID})
|
||||
if err != nil {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscriptions Select", nil, err)
|
||||
}
|
||||
if len(subtypes) != 1 {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscriptions Select count", 1, len(subtypes))
|
||||
} else {
|
||||
testhelper.PropsTester(t, &subtypes[0], subTypeValues)
|
||||
}
|
||||
|
||||
count, err := query.Count(&common.Subscription{ID: subID})
|
||||
if err != nil {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscriptions Count", nil, err)
|
||||
}
|
||||
if count != 1 {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscriptions Count", 1, count)
|
||||
}
|
||||
}
|
||||
|
||||
func updateSubscription(t *testing.T, query queries.SubscriptionsInterface, subID int64) {
|
||||
sub := common.Subscription{ID: subID}
|
||||
err := query.Load(&sub)
|
||||
if err != nil {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscriptions Update Load", nil, err)
|
||||
}
|
||||
|
||||
sub.Name = "NAME2"
|
||||
result, err := query.Update(&sub)
|
||||
if err != nil {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscriptions Update", nil, err)
|
||||
} else {
|
||||
if result.RowsAffected() != 1 {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscriptions Update RowsAffected", 1, result.RowsAffected())
|
||||
}
|
||||
if result.RowsReturned() != 0 {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscriptions Update RowsReturned", 0, result.RowsReturned())
|
||||
}
|
||||
}
|
||||
|
||||
sub = common.Subscription{ID: subID}
|
||||
err = query.Load(&sub)
|
||||
if err != nil {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscriptions Update Reload", nil, err)
|
||||
}
|
||||
if sub.Name != "NAME2" {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscriptions Update", "NAME2", sub.Name)
|
||||
}
|
||||
}
|
||||
|
||||
func deleteSubscription(t *testing.T, query queries.SubscriptionsInterface, subID int64) {
|
||||
result, err := query.Delete(&queries.SubscriptionDeleteRequest{VIN: "4S3BJ6332P6953766", Name: "NAME2"})
|
||||
if err != nil {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscriptions delete", nil, err)
|
||||
return
|
||||
}
|
||||
|
||||
if result.RowsAffected() != 1 {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscriptions delete RowsAffected", 1, result.RowsAffected())
|
||||
}
|
||||
|
||||
if result.RowsReturned() != 0 {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Subscriptions delete RowsReturned", 0, result.RowsReturned())
|
||||
}
|
||||
}
|
||||
|
||||
func cleanUpSubscriptionTest(carToDriver *common.CarToDriver, subtype *common.SubscriptionType) {
|
||||
drivers := queries.Drivers{}
|
||||
cars := queries.Cars{}
|
||||
|
||||
cars.RemoveDriver(carToDriver.VIN, carToDriver.DriverID)
|
||||
cars.Delete(&common.Car{VIN: carToDriver.VIN})
|
||||
|
||||
drivers.Delete(&common.Driver{ID: carToDriver.DriverID})
|
||||
|
||||
if subtype.ID != uuid.Nil {
|
||||
subtypes := queries.SubscriptionTypes{}
|
||||
subtypes.Delete(subtype)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user