Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
252
pkg/db/queries/subscription_packages_test.go
Normal file
252
pkg/db/queries/subscription_packages_test.go
Normal file
@@ -0,0 +1,252 @@
|
||||
package queries_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
m "fiskerinc.com/modules/common"
|
||||
"fiskerinc.com/modules/db"
|
||||
"fiskerinc.com/modules/db/queries"
|
||||
th "fiskerinc.com/modules/testhelper"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
const testSubPackageName = "TESTSUBPACKAGE"
|
||||
|
||||
func TestSubscriptionPackagesIntegration(t *testing.T) {
|
||||
t.Skip()
|
||||
qsp := setupSubscriptionPackages()
|
||||
qsf := &queries.SubscriptionFeatures{}
|
||||
qsc := &queries.SubscriptionConfigurations{}
|
||||
|
||||
pack := testSubscriptionPackageInsert(t, qsp)
|
||||
if pack.ID == uuid.Nil {
|
||||
t.Error("unable to create package")
|
||||
return
|
||||
}
|
||||
|
||||
feature := testSubscriptionPackageFeatureInsert(t, qsf)
|
||||
if feature.ID == uuid.Nil {
|
||||
t.Error("unable to create feature")
|
||||
return
|
||||
}
|
||||
|
||||
config, err := testSubscriptionAddConfiguration(t, qsc, &feature)
|
||||
if err != nil {
|
||||
t.Error("unable to create configuration")
|
||||
return
|
||||
}
|
||||
|
||||
testSubscriptionAddFeature(t, qsp, &pack, &feature)
|
||||
testSubscriptionPackageSelect(t, qsp, &pack)
|
||||
testSubscriptionFeatureSelect(t, qsf, &feature)
|
||||
testSubscriptionConfigurationSelect(t, qsc, &config)
|
||||
testSubscriptionPackageCount(t, qsp, &pack)
|
||||
testSubscriptionFeatureCount(t, qsf, &feature)
|
||||
testSubscriptionConfigurationCount(t, qsc, &config)
|
||||
testSubscriptionPackageUpdate(t, qsp, &pack)
|
||||
testSubscriptionFeatureUpdate(t, qsf, &feature)
|
||||
testSubscriptionConfigurationUpdate(t, qsc, &config)
|
||||
testSubscriptionFeatureLoad(t, qsf, &feature)
|
||||
testSubscriptionPackageLoad(t, qsp, &pack)
|
||||
testSubscriptionPackageDelete(t, qsp, &pack)
|
||||
testSubscriptionFeatureDelete(t, qsf, &feature)
|
||||
testSubscriptionConfigDelete(t, qsc, &config)
|
||||
}
|
||||
|
||||
func setupSubscriptionPackages() queries.SubscriptionPackagesInterface {
|
||||
instance := &queries.SubscriptionPackages{}
|
||||
conn = instance.GetDBConn()
|
||||
conn.AddQueryHook(db.SQLLogger{})
|
||||
client := instance.GetClient()
|
||||
client.InitSchema([]interface{}{
|
||||
(*m.SubscriptionPackageToFeature)(nil),
|
||||
(*m.SubscriptionPackage)(nil),
|
||||
(*m.SubscriptionFeature)(nil),
|
||||
(*m.SubscriptionConfiguration)(nil),
|
||||
})
|
||||
|
||||
return instance
|
||||
}
|
||||
|
||||
func testSubscriptionPackageInsert(t *testing.T, q queries.SubscriptionPackagesInterface) m.SubscriptionPackage {
|
||||
model := m.SubscriptionPackage{Name: testSubPackageName}
|
||||
|
||||
result, err := q.Insert(&model)
|
||||
|
||||
if th.NoError(t, "Insert Package error", err) {
|
||||
return model
|
||||
}
|
||||
th.Equal(t, "Insert Package affected", 1, result.RowsAffected())
|
||||
th.Equal(t, "Insert Package returned", 1, result.RowsReturned())
|
||||
|
||||
return model
|
||||
}
|
||||
|
||||
func testSubscriptionPackageFeatureInsert(t *testing.T, q queries.SubscriptionFeaturesInterface) m.SubscriptionFeature {
|
||||
feature := m.SubscriptionFeature{
|
||||
Name: testSubPackageName,
|
||||
Description: "Test Description",
|
||||
}
|
||||
|
||||
result, err := q.Insert(&feature)
|
||||
|
||||
if th.NoError(t, "Insert Feature error", err) {
|
||||
return feature
|
||||
}
|
||||
th.Equal(t, "Insert Feature affected", 1, result.RowsAffected())
|
||||
th.Equal(t, "Insert Feature returned", 1, result.RowsReturned())
|
||||
|
||||
return feature
|
||||
}
|
||||
|
||||
func testSubscriptionAddFeature(t *testing.T, q queries.SubscriptionPackagesInterface, p *m.SubscriptionPackage, f *m.SubscriptionFeature) {
|
||||
result, err := q.AddFeature(p, f)
|
||||
|
||||
th.NoError(t, "AddFeature error", err)
|
||||
th.True(t, "AddFeature result", result)
|
||||
}
|
||||
|
||||
func testSubscriptionAddConfiguration(t *testing.T, q queries.SubscriptionConfigurationsInterface, f *m.SubscriptionFeature) (m.SubscriptionConfiguration, error) {
|
||||
model := m.SubscriptionConfiguration{
|
||||
SubscriptionFeatureID: f.ID,
|
||||
ECU: "TEST",
|
||||
SoftwareVersion: "SOFTWAREVERSION",
|
||||
HardwareVersion: "HARDWAREVERSION",
|
||||
Configuration: &m.BinaryHex{0x99},
|
||||
DID: &m.BinaryHex{0x01},
|
||||
PID: &m.BinaryHex{0x02},
|
||||
Mask: &m.BinaryHex{0x03},
|
||||
}
|
||||
|
||||
result, err := q.Insert(&model)
|
||||
|
||||
if th.NoError(t, "Insert Config error", err) {
|
||||
return model, err
|
||||
}
|
||||
th.Equal(t, "Insert Config affected", 1, result.RowsAffected())
|
||||
th.Equal(t, "Insert Config returned", 1, result.RowsReturned())
|
||||
|
||||
return model, nil
|
||||
}
|
||||
|
||||
func testSubscriptionPackageUpdate(t *testing.T, q queries.SubscriptionPackagesInterface, model *m.SubscriptionPackage) {
|
||||
model.Name = model.Name + "X"
|
||||
result, err := q.Update(model)
|
||||
|
||||
if th.NoError(t, "Update Package error", err) {
|
||||
return
|
||||
}
|
||||
th.Equal(t, "Update Package affected", 1, result.RowsAffected())
|
||||
th.Equal(t, "Update Package returned", 0, result.RowsReturned())
|
||||
}
|
||||
|
||||
func testSubscriptionFeatureUpdate(t *testing.T, q queries.SubscriptionFeaturesInterface, model *m.SubscriptionFeature) {
|
||||
result, err := q.Update(model)
|
||||
|
||||
if th.NoError(t, "Update Feature error", err) {
|
||||
return
|
||||
}
|
||||
th.Equal(t, "Update Feature affected", 1, result.RowsAffected())
|
||||
th.Equal(t, "Update Feature returned", 0, result.RowsReturned())
|
||||
}
|
||||
|
||||
func testSubscriptionConfigurationUpdate(t *testing.T, q queries.SubscriptionConfigurationsInterface, model *m.SubscriptionConfiguration) {
|
||||
result, err := q.Update(model)
|
||||
|
||||
if th.NoError(t, "Update Config error", err) {
|
||||
return
|
||||
}
|
||||
th.Equal(t, "Update Config affected", 1, result.RowsAffected())
|
||||
th.Equal(t, "Update Config returned", 0, result.RowsReturned())
|
||||
}
|
||||
|
||||
func testSubscriptionPackageCount(t *testing.T, q queries.SubscriptionPackagesInterface, model *m.SubscriptionPackage) {
|
||||
result, err := q.Count(model)
|
||||
|
||||
if th.NoError(t, "Count Package error", err) {
|
||||
return
|
||||
}
|
||||
th.Equal(t, "Count Package result", 1, result)
|
||||
}
|
||||
|
||||
func testSubscriptionFeatureCount(t *testing.T, q queries.SubscriptionFeaturesInterface, model *m.SubscriptionFeature) {
|
||||
result, err := q.Count(model)
|
||||
|
||||
th.NoError(t, "Count Feature error", err)
|
||||
th.Equal(t, "Count Feature result", 1, result)
|
||||
}
|
||||
|
||||
func testSubscriptionConfigurationCount(t *testing.T, q queries.SubscriptionConfigurationsInterface, model *m.SubscriptionConfiguration) {
|
||||
result, err := q.Count(model)
|
||||
|
||||
th.NoError(t, "Count Config error", err)
|
||||
th.Equal(t, "Count Config result", 1, result)
|
||||
}
|
||||
|
||||
func testSubscriptionPackageSelect(t *testing.T, q queries.SubscriptionPackagesInterface, model *m.SubscriptionPackage) {
|
||||
result, err := q.Select(model, nil)
|
||||
|
||||
th.NoError(t, "Select Package error", err)
|
||||
th.Equal(t, "Select Package result", 1, len(result))
|
||||
}
|
||||
|
||||
func testSubscriptionFeatureSelect(t *testing.T, q queries.SubscriptionFeaturesInterface, model *m.SubscriptionFeature) {
|
||||
result, err := q.Select(model, nil)
|
||||
|
||||
th.NoError(t, "Select Feature error", err)
|
||||
th.Equal(t, "Select Feature result", 1, len(result))
|
||||
}
|
||||
|
||||
func testSubscriptionConfigurationSelect(t *testing.T, q queries.SubscriptionConfigurationsInterface, model *m.SubscriptionConfiguration) {
|
||||
result, err := q.Select(model, nil)
|
||||
|
||||
th.NoError(t, "Select Config error", err)
|
||||
th.Equal(t, "Select Config result", 1, len(result))
|
||||
}
|
||||
|
||||
func testSubscriptionFeatureLoad(t *testing.T, q queries.SubscriptionFeaturesInterface, model *m.SubscriptionFeature) {
|
||||
item := m.SubscriptionFeature{ID: model.ID}
|
||||
err := q.Load(&item)
|
||||
|
||||
th.NoError(t, "Load Feature error", err)
|
||||
th.Equal(t, "Load Feature configurations", 1, len(item.Configurations))
|
||||
}
|
||||
|
||||
func testSubscriptionPackageLoad(t *testing.T, q queries.SubscriptionPackagesInterface, model *m.SubscriptionPackage) {
|
||||
item := m.SubscriptionPackage{ID: model.ID}
|
||||
err := q.Load(&item)
|
||||
|
||||
th.NoError(t, "Load Package error", err)
|
||||
th.Equal(t, "Load Package features", 1, len(item.Features))
|
||||
}
|
||||
|
||||
func testSubscriptionPackageDelete(t *testing.T, q queries.SubscriptionPackagesInterface, model *m.SubscriptionPackage) {
|
||||
result, err := q.Delete(model)
|
||||
|
||||
if th.NoError(t, "Delete Package error", err) {
|
||||
return
|
||||
}
|
||||
th.Equal(t, "Delete Package affected", 2, result.RowsAffected())
|
||||
th.Equal(t, "Delete Package returned", 0, result.RowsReturned())
|
||||
}
|
||||
|
||||
func testSubscriptionFeatureDelete(t *testing.T, q queries.SubscriptionFeaturesInterface, model *m.SubscriptionFeature) {
|
||||
result, err := q.Delete(model)
|
||||
|
||||
if th.NoError(t, "Delete Feature error", err) {
|
||||
return
|
||||
}
|
||||
th.Equal(t, "Delete Feature affected", 2, result.RowsAffected())
|
||||
th.Equal(t, "Delete Feature returned", 0, result.RowsReturned())
|
||||
}
|
||||
|
||||
func testSubscriptionConfigDelete(t *testing.T, q queries.SubscriptionConfigurationsInterface, model *m.SubscriptionConfiguration) {
|
||||
result, err := q.Delete(model)
|
||||
|
||||
if th.NoError(t, "Delete Config error", err) {
|
||||
return
|
||||
}
|
||||
th.Equal(t, "Delete Config affected", 0, result.RowsAffected())
|
||||
th.Equal(t, "Delete Config returned", 0, result.RowsReturned())
|
||||
}
|
||||
Reference in New Issue
Block a user