mirror of
https://git.rwth-aachen.de/acs/public/villas/web-backend-go/
synced 2025-03-30 00:00:12 +01:00
WIP: scenario tests and IC tests independent of hard coded data #44
This commit is contained in:
parent
616a1c74dc
commit
d1cb79ffba
4 changed files with 128 additions and 390 deletions
|
@ -24,7 +24,6 @@ package helper
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"git.rwth-aachen.de/acs/public/villas/web-backend-go/configuration"
|
|
||||||
"git.rwth-aachen.de/acs/public/villas/web-backend-go/database"
|
"git.rwth-aachen.de/acs/public/villas/web-backend-go/database"
|
||||||
"github.com/jinzhu/gorm/dialects/postgres"
|
"github.com/jinzhu/gorm/dialects/postgres"
|
||||||
"golang.org/x/crypto/bcrypt"
|
"golang.org/x/crypto/bcrypt"
|
||||||
|
@ -63,10 +62,13 @@ var StrPasswordC = "guestpw"
|
||||||
|
|
||||||
// Hash passwords with bcrypt algorithm
|
// Hash passwords with bcrypt algorithm
|
||||||
var bcryptCost = 10
|
var bcryptCost = 10
|
||||||
|
var pw0, _ = bcrypt.GenerateFromPassword([]byte(StrPassword0), bcryptCost)
|
||||||
var pwA, _ = bcrypt.GenerateFromPassword([]byte(StrPasswordA), bcryptCost)
|
var pwA, _ = bcrypt.GenerateFromPassword([]byte(StrPasswordA), bcryptCost)
|
||||||
var pwB, _ = bcrypt.GenerateFromPassword([]byte(StrPasswordB), bcryptCost)
|
var pwB, _ = bcrypt.GenerateFromPassword([]byte(StrPasswordB), bcryptCost)
|
||||||
var pwC, _ = bcrypt.GenerateFromPassword([]byte(StrPasswordC), bcryptCost)
|
var pwC, _ = bcrypt.GenerateFromPassword([]byte(StrPasswordC), bcryptCost)
|
||||||
|
|
||||||
|
var User0 = database.User{Username: "User_0", Password: string(pw0),
|
||||||
|
Role: "Admin", Mail: "User_0@example.com"}
|
||||||
var UserA = database.User{Username: "User_A", Password: string(pwA),
|
var UserA = database.User{Username: "User_A", Password: string(pwA),
|
||||||
Role: "User", Mail: "User_A@example.com", Active: true}
|
Role: "User", Mail: "User_A@example.com", Active: true}
|
||||||
var UserB = database.User{Username: "User_B", Password: string(pwB),
|
var UserB = database.User{Username: "User_B", Password: string(pwB),
|
||||||
|
@ -83,27 +85,6 @@ type UserRequest struct {
|
||||||
Active string `json:"active,omitempty"`
|
Active string `json:"active,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var NewUserA = UserRequest{
|
|
||||||
Username: UserA.Username,
|
|
||||||
Password: StrPasswordA,
|
|
||||||
Role: UserA.Role,
|
|
||||||
Mail: UserA.Mail,
|
|
||||||
}
|
|
||||||
|
|
||||||
var NewUserB = UserRequest{
|
|
||||||
Username: UserB.Username,
|
|
||||||
Password: StrPasswordB,
|
|
||||||
Role: UserB.Role,
|
|
||||||
Mail: UserB.Mail,
|
|
||||||
}
|
|
||||||
|
|
||||||
var NewUserC = UserRequest{
|
|
||||||
Username: UserC.Username,
|
|
||||||
Password: StrPasswordC,
|
|
||||||
Role: UserC.Role,
|
|
||||||
Mail: UserC.Mail,
|
|
||||||
}
|
|
||||||
|
|
||||||
// Infrastructure components
|
// Infrastructure components
|
||||||
|
|
||||||
var propertiesA = json.RawMessage(`{"prop1" : "a nice prop"}`)
|
var propertiesA = json.RawMessage(`{"prop1" : "a nice prop"}`)
|
||||||
|
@ -148,11 +129,6 @@ var ScenarioA = database.Scenario{
|
||||||
Running: true,
|
Running: true,
|
||||||
StartParameters: postgres.Jsonb{startParametersA},
|
StartParameters: postgres.Jsonb{startParametersA},
|
||||||
}
|
}
|
||||||
var ScenarioB = database.Scenario{
|
|
||||||
Name: "Scenario_B",
|
|
||||||
Running: false,
|
|
||||||
StartParameters: postgres.Jsonb{startParametersB},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Component Configuration
|
// Component Configuration
|
||||||
|
|
||||||
|
@ -184,27 +160,6 @@ var OutSignalB = database.Signal{
|
||||||
Unit: "V",
|
Unit: "V",
|
||||||
}
|
}
|
||||||
|
|
||||||
var OutSignalC = database.Signal{
|
|
||||||
Name: "outSignal_C",
|
|
||||||
Direction: "out",
|
|
||||||
Index: 3,
|
|
||||||
Unit: "---",
|
|
||||||
}
|
|
||||||
|
|
||||||
var OutSignalD = database.Signal{
|
|
||||||
Name: "outSignal_D",
|
|
||||||
Direction: "out",
|
|
||||||
Index: 4,
|
|
||||||
Unit: "---",
|
|
||||||
}
|
|
||||||
|
|
||||||
var OutSignalE = database.Signal{
|
|
||||||
Name: "outSignal_E",
|
|
||||||
Direction: "out",
|
|
||||||
Index: 5,
|
|
||||||
Unit: "---",
|
|
||||||
}
|
|
||||||
|
|
||||||
var InSignalA = database.Signal{
|
var InSignalA = database.Signal{
|
||||||
Name: "inSignal_A",
|
Name: "inSignal_A",
|
||||||
Direction: "in",
|
Direction: "in",
|
||||||
|
@ -231,11 +186,8 @@ var DashboardB = database.Dashboard{
|
||||||
}
|
}
|
||||||
|
|
||||||
// Widgets
|
// Widgets
|
||||||
var customPropertiesBox = json.RawMessage(`{"border_color" : "#4287f5", "border_color_opacity": 1, "background_color" : "#961520", "background_color_opacity" : 1}`)
|
|
||||||
var customPropertiesSlider = json.RawMessage(`{"default_value" : 0, "orientation" : 0, "rangeUseMinMax": false, "rangeMin" : 0, "rangeMax": 200, "rangeUseMinMax" : true, "showUnit": true, "continous_update": false, "value": "", "resizeLeftRightLock": false, "resizeTopBottomLock": true, "step": 0.1 }`)
|
var customPropertiesSlider = json.RawMessage(`{"default_value" : 0, "orientation" : 0, "rangeUseMinMax": false, "rangeMin" : 0, "rangeMax": 200, "rangeUseMinMax" : true, "showUnit": true, "continous_update": false, "value": "", "resizeLeftRightLock": false, "resizeTopBottomLock": true, "step": 0.1 }`)
|
||||||
var customPropertiesLabel = json.RawMessage(`{"textSize" : "20", "fontColor" : "#4287f5", "fontColor_opacity": 1}`)
|
var customPropertiesLabel = json.RawMessage(`{"textSize" : "20", "fontColor" : "#4287f5", "fontColor_opacity": 1}`)
|
||||||
var customPropertiesButton = json.RawMessage(`{"pressed": false, "toggle" : false, "on_value" : 1, "off_value" : 0, "background_color": "#961520", "font_color": "#4287f5", "border_color": "#4287f5", "background_color_opacity": 1}`)
|
|
||||||
var customPropertiesLamp = json.RawMessage(`{"signal" : 0, "on_color" : "#4287f5", "off_color": "#961520", "threshold" : 0.5, "on_color_opacity": 1, "off_color_opacity": 1}`)
|
|
||||||
|
|
||||||
var WidgetA = database.Widget{
|
var WidgetA = database.Widget{
|
||||||
Name: "Label",
|
Name: "Label",
|
||||||
|
@ -267,51 +219,6 @@ var WidgetB = database.Widget{
|
||||||
SignalIDs: []int64{},
|
SignalIDs: []int64{},
|
||||||
}
|
}
|
||||||
|
|
||||||
var WidgetC = database.Widget{
|
|
||||||
Name: "Box",
|
|
||||||
Type: "Box",
|
|
||||||
Width: 200,
|
|
||||||
Height: 200,
|
|
||||||
MinHeight: 10,
|
|
||||||
MinWidth: 50,
|
|
||||||
X: 300,
|
|
||||||
Y: 10,
|
|
||||||
Z: 0,
|
|
||||||
IsLocked: false,
|
|
||||||
CustomProperties: postgres.Jsonb{customPropertiesBox},
|
|
||||||
SignalIDs: []int64{},
|
|
||||||
}
|
|
||||||
|
|
||||||
var WidgetD = database.Widget{
|
|
||||||
Name: "Button",
|
|
||||||
Type: "Button",
|
|
||||||
Width: 100,
|
|
||||||
Height: 100,
|
|
||||||
MinHeight: 50,
|
|
||||||
MinWidth: 100,
|
|
||||||
X: 10,
|
|
||||||
Y: 50,
|
|
||||||
Z: 0,
|
|
||||||
IsLocked: false,
|
|
||||||
CustomProperties: postgres.Jsonb{customPropertiesButton},
|
|
||||||
SignalIDs: []int64{},
|
|
||||||
}
|
|
||||||
|
|
||||||
var WidgetE = database.Widget{
|
|
||||||
Name: "Lamp",
|
|
||||||
Type: "Lamp",
|
|
||||||
Width: 200,
|
|
||||||
Height: 20,
|
|
||||||
MinHeight: 10,
|
|
||||||
MinWidth: 50,
|
|
||||||
X: 50,
|
|
||||||
Y: 300,
|
|
||||||
Z: 0,
|
|
||||||
IsLocked: false,
|
|
||||||
CustomProperties: postgres.Jsonb{customPropertiesLamp},
|
|
||||||
SignalIDs: []int64{},
|
|
||||||
}
|
|
||||||
|
|
||||||
func ReadTestDataFromJson(path string) error {
|
func ReadTestDataFromJson(path string) error {
|
||||||
|
|
||||||
jsonFile, err := os.Open(path)
|
jsonFile, err := os.Open(path)
|
||||||
|
@ -334,40 +241,18 @@ func ReadTestDataFromJson(path string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// add default admin user, normal users and a guest to the DB
|
// add test users defined above
|
||||||
func AddTestUsers() error {
|
func AddTestUsers() error {
|
||||||
|
|
||||||
err := ReadTestDataFromJson("../../testdata/testdata.json")
|
testUsers := []database.User{User0, UserA, UserB, UserC}
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
//create a copy of global test data
|
|
||||||
if len(GlobalTestData.Users) == 0 {
|
|
||||||
return fmt.Errorf("no users in test data")
|
|
||||||
}
|
|
||||||
|
|
||||||
database.DBpool.AutoMigrate(&database.User{})
|
database.DBpool.AutoMigrate(&database.User{})
|
||||||
err, _ = database.DBAddAdminUser(configuration.GlobalConfig)
|
|
||||||
|
for _, user := range testUsers {
|
||||||
|
err := database.DBpool.Create(&user).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, user := range GlobalTestData.Users {
|
|
||||||
if user.Role != "Admin" {
|
|
||||||
// add users to DB that are not admin users
|
|
||||||
var newUser database.User
|
|
||||||
newUser.Username = user.Username
|
|
||||||
newUser.Role = user.Role
|
|
||||||
newUser.Mail = user.Mail
|
|
||||||
|
|
||||||
pwEnc, _ := bcrypt.GenerateFromPassword([]byte(user.Password), 10)
|
|
||||||
newUser.Password = string(pwEnc)
|
|
||||||
err = database.DBpool.Create(&newUser).Error
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -46,8 +46,8 @@ type Credentials struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
var AdminCredentials = Credentials{
|
var AdminCredentials = Credentials{
|
||||||
Username: "admin",
|
Username: "User_0",
|
||||||
Password: "xyz789",
|
Password: StrPassword0,
|
||||||
}
|
}
|
||||||
|
|
||||||
var UserACredentials = Credentials{
|
var UserACredentials = Credentials{
|
||||||
|
|
|
@ -89,6 +89,34 @@ type ICAction struct {
|
||||||
} `json:"properties,omitempty"`
|
} `json:"properties,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var newIC1 = ICRequest{
|
||||||
|
UUID: "7be0322d-354e-431e-84bd-ae4c9633138b",
|
||||||
|
WebsocketURL: "https://villas.k8s.eonerc.rwth-aachen.de/ws/ws_sig",
|
||||||
|
APIURL: "https://villas.k8s.eonerc.rwth-aachen.de/ws/api/v2",
|
||||||
|
Type: "villas-node",
|
||||||
|
Name: "ACS Demo Signals",
|
||||||
|
Category: "gateway",
|
||||||
|
State: "idle",
|
||||||
|
Location: "k8s",
|
||||||
|
Description: "A signal generator for testing purposes",
|
||||||
|
StartParameterScheme: postgres.Jsonb{json.RawMessage(`{"prop1" : "a nice prop"}`)},
|
||||||
|
ManagedExternally: newFalse(),
|
||||||
|
}
|
||||||
|
|
||||||
|
var newIC2 = ICRequest{
|
||||||
|
UUID: "4854af30-325f-44a5-ad59-b67b2597de68",
|
||||||
|
WebsocketURL: "xxx.yyy.zzz.aaa",
|
||||||
|
APIURL: "https://villas.k8s.eonerc.rwth-aachen.de/ws/api/v2",
|
||||||
|
Type: "dpsim",
|
||||||
|
Name: "Test DPsim Simulator",
|
||||||
|
Category: "simulator",
|
||||||
|
State: "running",
|
||||||
|
Location: "k8s",
|
||||||
|
Description: "This is a test description",
|
||||||
|
StartParameterScheme: postgres.Jsonb{json.RawMessage(`{"prop1" : "a nice prop"}`)},
|
||||||
|
ManagedExternally: newTrue(),
|
||||||
|
}
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
err := configuration.InitConfig()
|
err := configuration.InitConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -152,7 +180,7 @@ func TestAddICAsAdmin(t *testing.T) {
|
||||||
// try to POST malformed IC (required fields missing, validation should fail)
|
// try to POST malformed IC (required fields missing, validation should fail)
|
||||||
// should result in an unprocessable entity
|
// should result in an unprocessable entity
|
||||||
newMalformedIC := ICRequest{
|
newMalformedIC := ICRequest{
|
||||||
UUID: helper.ICB.UUID,
|
UUID: newIC2.UUID,
|
||||||
}
|
}
|
||||||
code, resp, err = helper.TestEndpoint(router, token,
|
code, resp, err = helper.TestEndpoint(router, token,
|
||||||
"/api/ic", "POST", helper.KeyModels{"ic": newMalformedIC})
|
"/api/ic", "POST", helper.KeyModels{"ic": newMalformedIC})
|
||||||
|
@ -160,26 +188,13 @@ func TestAddICAsAdmin(t *testing.T) {
|
||||||
assert.Equalf(t, 422, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 422, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
// test POST ic/ $newIC
|
// test POST ic/ $newIC
|
||||||
newIC := ICRequest{
|
|
||||||
UUID: helper.ICA.UUID,
|
|
||||||
WebsocketURL: helper.ICA.WebsocketURL,
|
|
||||||
APIURL: helper.ICB.APIURL,
|
|
||||||
Type: helper.ICA.Type,
|
|
||||||
Name: helper.ICA.Name,
|
|
||||||
Category: helper.ICA.Category,
|
|
||||||
State: helper.ICA.State,
|
|
||||||
Location: helper.ICA.Location,
|
|
||||||
Description: helper.ICA.Description,
|
|
||||||
StartParameterScheme: helper.ICA.StartParameterScheme,
|
|
||||||
ManagedExternally: newFalse(),
|
|
||||||
}
|
|
||||||
code, resp, err = helper.TestEndpoint(router, token,
|
code, resp, err = helper.TestEndpoint(router, token,
|
||||||
"/api/ic", "POST", helper.KeyModels{"ic": newIC})
|
"/api/ic", "POST", helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
// Compare POST's response with the newIC
|
// Compare POST's response with the newIC
|
||||||
err = helper.CompareResponse(resp, helper.KeyModels{"ic": newIC})
|
err = helper.CompareResponse(resp, helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Read newIC's ID from the response
|
// Read newIC's ID from the response
|
||||||
|
@ -194,7 +209,7 @@ func TestAddICAsAdmin(t *testing.T) {
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
// Compare GET's response with the newIC
|
// Compare GET's response with the newIC
|
||||||
err = helper.CompareResponse(resp, helper.KeyModels{"ic": newIC})
|
err = helper.CompareResponse(resp, helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Try to GET a IC that does not exist
|
// Try to GET a IC that does not exist
|
||||||
|
@ -204,28 +219,14 @@ func TestAddICAsAdmin(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 404, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 404, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
newExternalIC := ICRequest{
|
|
||||||
UUID: helper.ICB.UUID,
|
|
||||||
WebsocketURL: helper.ICB.WebsocketURL,
|
|
||||||
APIURL: helper.ICB.APIURL,
|
|
||||||
Type: helper.ICB.Type,
|
|
||||||
Name: helper.ICB.Name,
|
|
||||||
Category: helper.ICB.Category,
|
|
||||||
State: helper.ICB.State,
|
|
||||||
Location: helper.ICB.Location,
|
|
||||||
Description: helper.ICB.Description,
|
|
||||||
StartParameterScheme: helper.ICB.StartParameterScheme,
|
|
||||||
ManagedExternally: newTrue(),
|
|
||||||
}
|
|
||||||
|
|
||||||
// test creation of external IC (should lead to emission of AMQP message to VILLAS)
|
// test creation of external IC (should lead to emission of AMQP message to VILLAS)
|
||||||
code, resp, err = helper.TestEndpoint(router, token,
|
code, resp, err = helper.TestEndpoint(router, token,
|
||||||
"/api/ic", "POST", helper.KeyModels{"ic": newExternalIC})
|
"/api/ic", "POST", helper.KeyModels{"ic": newIC2})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
// Compare POST's response with the newExternalIC
|
// Compare POST's response with the newExternalIC
|
||||||
err = helper.CompareResponse(resp, helper.KeyModels{"ic": newExternalIC})
|
err = helper.CompareResponse(resp, helper.KeyModels{"ic": newIC2})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -240,23 +241,10 @@ func TestAddICAsUser(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST ic/ $newIC
|
// test POST ic/ $newIC
|
||||||
newIC := ICRequest{
|
|
||||||
UUID: helper.ICA.UUID,
|
|
||||||
WebsocketURL: helper.ICA.WebsocketURL,
|
|
||||||
Type: helper.ICA.Type,
|
|
||||||
Name: helper.ICA.Name,
|
|
||||||
Category: helper.ICA.Category,
|
|
||||||
State: helper.ICA.State,
|
|
||||||
Location: helper.ICA.Location,
|
|
||||||
Description: helper.ICA.Description,
|
|
||||||
StartParameterScheme: helper.ICA.StartParameterScheme,
|
|
||||||
ManagedExternally: newFalse(),
|
|
||||||
}
|
|
||||||
|
|
||||||
// This should fail with unprocessable entity 422 error code
|
// This should fail with unprocessable entity 422 error code
|
||||||
// Normal users are not allowed to add ICs
|
// Normal users are not allowed to add ICs
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
"/api/ic", "POST", helper.KeyModels{"ic": newIC})
|
"/api/ic", "POST", helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 422, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 422, code, "Response body: \n%v\n", resp)
|
||||||
}
|
}
|
||||||
|
@ -272,25 +260,13 @@ func TestUpdateICAsAdmin(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST ic/ $newIC
|
// test POST ic/ $newIC
|
||||||
newIC := ICRequest{
|
|
||||||
UUID: helper.ICA.UUID,
|
|
||||||
WebsocketURL: helper.ICA.WebsocketURL,
|
|
||||||
Type: helper.ICA.Type,
|
|
||||||
Name: helper.ICA.Name,
|
|
||||||
Category: helper.ICA.Category,
|
|
||||||
State: helper.ICA.State,
|
|
||||||
Location: helper.ICA.Location,
|
|
||||||
Description: helper.ICA.Description,
|
|
||||||
StartParameterScheme: helper.ICA.StartParameterScheme,
|
|
||||||
ManagedExternally: newFalse(),
|
|
||||||
}
|
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
"/api/ic", "POST", helper.KeyModels{"ic": newIC})
|
"/api/ic", "POST", helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
// Compare POST's response with the newIC
|
// Compare POST's response with the newIC
|
||||||
err = helper.CompareResponse(resp, helper.KeyModels{"ic": newIC})
|
err = helper.CompareResponse(resp, helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Read newIC's ID from the response
|
// Read newIC's ID from the response
|
||||||
|
@ -305,14 +281,14 @@ func TestUpdateICAsAdmin(t *testing.T) {
|
||||||
assert.Equalf(t, 400, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 400, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
// Test PUT IC
|
// Test PUT IC
|
||||||
newIC.WebsocketURL = "ThisIsMyNewURL"
|
newIC1.WebsocketURL = "ThisIsMyNewURL"
|
||||||
code, resp, err = helper.TestEndpoint(router, token,
|
code, resp, err = helper.TestEndpoint(router, token,
|
||||||
fmt.Sprintf("/api/ic/%v", newICID), "PUT", helper.KeyModels{"ic": newIC})
|
fmt.Sprintf("/api/ic/%v", newICID), "PUT", helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
// Compare PUT's response with the updated newIC
|
// Compare PUT's response with the updated newIC
|
||||||
err = helper.CompareResponse(resp, helper.KeyModels{"ic": newIC})
|
err = helper.CompareResponse(resp, helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Get the updated newIC
|
// Get the updated newIC
|
||||||
|
@ -323,7 +299,7 @@ func TestUpdateICAsAdmin(t *testing.T) {
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
// Compare GET's response with the updated newIC
|
// Compare GET's response with the updated newIC
|
||||||
err = helper.CompareResponse(resp, helper.KeyModels{"ic": newIC})
|
err = helper.CompareResponse(resp, helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// fake an IC update (create) message
|
// fake an IC update (create) message
|
||||||
|
@ -332,18 +308,18 @@ func TestUpdateICAsAdmin(t *testing.T) {
|
||||||
update.Status.State = new(string)
|
update.Status.State = new(string)
|
||||||
*update.Status.State = "idle"
|
*update.Status.State = "idle"
|
||||||
update.Status.Name = new(string)
|
update.Status.Name = new(string)
|
||||||
*update.Status.Name = helper.ICB.Name
|
*update.Status.Name = newIC2.Name
|
||||||
update.Status.Category = new(string)
|
update.Status.Category = new(string)
|
||||||
*update.Status.Category = helper.ICB.Category
|
*update.Status.Category = newIC2.Category
|
||||||
update.Status.Type = new(string)
|
update.Status.Type = new(string)
|
||||||
*update.Status.Type = helper.ICB.Type
|
*update.Status.Type = newIC2.Type
|
||||||
|
|
||||||
payload, err := json.Marshal(update)
|
payload, err := json.Marshal(update)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
var headers map[string]interface{}
|
var headers map[string]interface{}
|
||||||
headers = make(map[string]interface{}) // empty map
|
headers = make(map[string]interface{}) // empty map
|
||||||
headers["uuid"] = helper.ICB.UUID // set uuid
|
headers["uuid"] = newIC2.UUID // set uuid
|
||||||
|
|
||||||
msg := amqp.Publishing{
|
msg := amqp.Publishing{
|
||||||
DeliveryMode: 2,
|
DeliveryMode: 2,
|
||||||
|
@ -390,20 +366,8 @@ func TestUpdateICAsUser(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST ic/ $newIC
|
// test POST ic/ $newIC
|
||||||
newIC := ICRequest{
|
|
||||||
UUID: helper.ICA.UUID,
|
|
||||||
WebsocketURL: helper.ICA.WebsocketURL,
|
|
||||||
Type: helper.ICA.Type,
|
|
||||||
Name: helper.ICA.Name,
|
|
||||||
Category: helper.ICA.Category,
|
|
||||||
State: helper.ICA.State,
|
|
||||||
Location: helper.ICA.Location,
|
|
||||||
Description: helper.ICA.Description,
|
|
||||||
StartParameterScheme: helper.ICA.StartParameterScheme,
|
|
||||||
ManagedExternally: newFalse(),
|
|
||||||
}
|
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
"/api/ic", "POST", helper.KeyModels{"ic": newIC})
|
"/api/ic", "POST", helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
@ -418,9 +382,9 @@ func TestUpdateICAsUser(t *testing.T) {
|
||||||
|
|
||||||
// Test PUT IC
|
// Test PUT IC
|
||||||
// This should fail with unprocessable entity status code 422
|
// This should fail with unprocessable entity status code 422
|
||||||
newIC.WebsocketURL = "ThisIsMyNewURL"
|
newIC1.WebsocketURL = "ThisIsMyNewURL2"
|
||||||
code, resp, err = helper.TestEndpoint(router, token,
|
code, resp, err = helper.TestEndpoint(router, token,
|
||||||
fmt.Sprintf("/api/ic/%v", newICID), "PUT", helper.KeyModels{"ic": newIC})
|
fmt.Sprintf("/api/ic/%v", newICID), "PUT", helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 422, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 422, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
@ -437,20 +401,8 @@ func TestDeleteICAsAdmin(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST ic/ $newIC
|
// test POST ic/ $newIC
|
||||||
newIC := ICRequest{
|
|
||||||
UUID: helper.ICA.UUID,
|
|
||||||
WebsocketURL: helper.ICA.WebsocketURL,
|
|
||||||
Type: helper.ICA.Type,
|
|
||||||
Name: helper.ICA.Name,
|
|
||||||
Category: helper.ICA.Category,
|
|
||||||
State: helper.ICA.State,
|
|
||||||
Location: helper.ICA.Location,
|
|
||||||
Description: helper.ICA.Description,
|
|
||||||
StartParameterScheme: helper.ICA.StartParameterScheme,
|
|
||||||
ManagedExternally: newFalse(),
|
|
||||||
}
|
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
"/api/ic", "POST", helper.KeyModels{"ic": newIC})
|
"/api/ic", "POST", helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
@ -470,7 +422,7 @@ func TestDeleteICAsAdmin(t *testing.T) {
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
// Compare DELETE's response with the newIC
|
// Compare DELETE's response with the newIC
|
||||||
err = helper.CompareResponse(resp, helper.KeyModels{"ic": newIC})
|
err = helper.CompareResponse(resp, helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Again count the number of all the ICs returned
|
// Again count the number of all the ICs returned
|
||||||
|
@ -486,18 +438,18 @@ func TestDeleteICAsAdmin(t *testing.T) {
|
||||||
update.Status.State = new(string)
|
update.Status.State = new(string)
|
||||||
*update.Status.State = "idle"
|
*update.Status.State = "idle"
|
||||||
update.Status.Name = new(string)
|
update.Status.Name = new(string)
|
||||||
*update.Status.Name = helper.ICB.Name
|
*update.Status.Name = newIC2.Name
|
||||||
update.Status.Category = new(string)
|
update.Status.Category = new(string)
|
||||||
*update.Status.Category = helper.ICB.Category
|
*update.Status.Category = newIC2.Category
|
||||||
update.Status.Type = new(string)
|
update.Status.Type = new(string)
|
||||||
*update.Status.Type = helper.ICB.Type
|
*update.Status.Type = newIC2.Type
|
||||||
|
|
||||||
payload, err := json.Marshal(update)
|
payload, err := json.Marshal(update)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
var headers map[string]interface{}
|
var headers map[string]interface{}
|
||||||
headers = make(map[string]interface{}) // empty map
|
headers = make(map[string]interface{}) // empty map
|
||||||
headers["uuid"] = helper.ICB.UUID // set uuid
|
headers["uuid"] = newIC2.UUID // set uuid
|
||||||
|
|
||||||
msg := amqp.Publishing{
|
msg := amqp.Publishing{
|
||||||
DeliveryMode: 2,
|
DeliveryMode: 2,
|
||||||
|
@ -548,20 +500,8 @@ func TestDeleteICAsUser(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST ic/ $newIC
|
// test POST ic/ $newIC
|
||||||
newIC := ICRequest{
|
|
||||||
UUID: helper.ICA.UUID,
|
|
||||||
WebsocketURL: helper.ICA.WebsocketURL,
|
|
||||||
Type: helper.ICA.Type,
|
|
||||||
Name: helper.ICA.Name,
|
|
||||||
Category: helper.ICA.Category,
|
|
||||||
State: helper.ICA.State,
|
|
||||||
Location: helper.ICA.Location,
|
|
||||||
Description: helper.ICA.Description,
|
|
||||||
StartParameterScheme: helper.ICA.StartParameterScheme,
|
|
||||||
ManagedExternally: newFalse(),
|
|
||||||
}
|
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
"/api/ic", "POST", helper.KeyModels{"ic": newIC})
|
"/api/ic", "POST", helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
@ -576,7 +516,7 @@ func TestDeleteICAsUser(t *testing.T) {
|
||||||
|
|
||||||
// Test DELETE ICs
|
// Test DELETE ICs
|
||||||
// This should fail with unprocessable entity status code 422
|
// This should fail with unprocessable entity status code 422
|
||||||
newIC.WebsocketURL = "ThisIsMyNewURL"
|
newIC1.WebsocketURL = "ThisIsMyNewURL3"
|
||||||
code, resp, err = helper.TestEndpoint(router, token,
|
code, resp, err = helper.TestEndpoint(router, token,
|
||||||
fmt.Sprintf("/api/ic/%v", newICID), "DELETE", nil)
|
fmt.Sprintf("/api/ic/%v", newICID), "DELETE", nil)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
@ -599,39 +539,15 @@ func TestGetAllICs(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST ic/ $newICA
|
// test POST ic/ $newICA
|
||||||
newICA := ICRequest{
|
|
||||||
UUID: helper.ICA.UUID,
|
|
||||||
WebsocketURL: helper.ICA.WebsocketURL,
|
|
||||||
Type: helper.ICA.Type,
|
|
||||||
Name: helper.ICA.Name,
|
|
||||||
Category: helper.ICA.Category,
|
|
||||||
State: helper.ICA.State,
|
|
||||||
Location: helper.ICA.Location,
|
|
||||||
Description: helper.ICA.Description,
|
|
||||||
StartParameterScheme: helper.ICA.StartParameterScheme,
|
|
||||||
ManagedExternally: newFalse(),
|
|
||||||
}
|
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
"/api/ic", "POST", helper.KeyModels{"ic": newICA})
|
"/api/ic", "POST", helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
// test POST ic/ $newICB
|
// test POST ic/ $newICB
|
||||||
newICB := ICRequest{
|
|
||||||
UUID: helper.ICB.UUID,
|
|
||||||
WebsocketURL: helper.ICB.WebsocketURL,
|
|
||||||
Type: helper.ICB.Type,
|
|
||||||
Name: helper.ICB.Name,
|
|
||||||
Category: helper.ICB.Category,
|
|
||||||
State: helper.ICB.State,
|
|
||||||
Location: helper.ICB.Location,
|
|
||||||
Description: helper.ICB.Description,
|
|
||||||
StartParameterScheme: helper.ICB.StartParameterScheme,
|
|
||||||
ManagedExternally: newFalse(),
|
|
||||||
}
|
|
||||||
|
|
||||||
code, resp, err = helper.TestEndpoint(router, token,
|
code, resp, err = helper.TestEndpoint(router, token,
|
||||||
"/api/ic", "POST", helper.KeyModels{"ic": newICB})
|
"/api/ic", "POST", helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
@ -666,20 +582,8 @@ func TestGetConfigsOfIC(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST ic/ $newICA
|
// test POST ic/ $newICA
|
||||||
newICA := ICRequest{
|
|
||||||
UUID: helper.ICA.UUID,
|
|
||||||
WebsocketURL: helper.ICA.WebsocketURL,
|
|
||||||
Type: helper.ICA.Type,
|
|
||||||
Name: helper.ICA.Name,
|
|
||||||
Category: helper.ICA.Category,
|
|
||||||
State: helper.ICA.State,
|
|
||||||
Location: helper.ICA.Location,
|
|
||||||
Description: helper.ICA.Description,
|
|
||||||
StartParameterScheme: helper.ICA.StartParameterScheme,
|
|
||||||
ManagedExternally: newFalse(),
|
|
||||||
}
|
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
"/api/ic", "POST", helper.KeyModels{"ic": newICA})
|
"/api/ic", "POST", helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
@ -727,20 +631,8 @@ func TestSendActionToIC(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST ic/ $newICA
|
// test POST ic/ $newICA
|
||||||
newICA := ICRequest{
|
|
||||||
UUID: helper.ICA.UUID,
|
|
||||||
WebsocketURL: helper.ICA.WebsocketURL,
|
|
||||||
Type: helper.ICA.Type,
|
|
||||||
Name: helper.ICA.Name,
|
|
||||||
Category: helper.ICA.Category,
|
|
||||||
State: helper.ICA.State,
|
|
||||||
Location: helper.ICA.Location,
|
|
||||||
Description: helper.ICA.Description,
|
|
||||||
StartParameterScheme: helper.ICA.StartParameterScheme,
|
|
||||||
ManagedExternally: newFalse(),
|
|
||||||
}
|
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
"/api/ic", "POST", helper.KeyModels{"ic": newICA})
|
"/api/ic", "POST", helper.KeyModels{"ic": newIC1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
@ -754,7 +646,7 @@ func TestSendActionToIC(t *testing.T) {
|
||||||
When: time.Now().Unix(),
|
When: time.Now().Unix(),
|
||||||
}
|
}
|
||||||
action1.Properties.UUID = new(string)
|
action1.Properties.UUID = new(string)
|
||||||
*action1.Properties.UUID = newICA.UUID
|
*action1.Properties.UUID = newIC1.UUID
|
||||||
actions := [1]ICAction{action1}
|
actions := [1]ICAction{action1}
|
||||||
|
|
||||||
// Send action to IC
|
// Send action to IC
|
||||||
|
@ -792,7 +684,7 @@ func TestCreateUpdateViaAMQPRecv(t *testing.T) {
|
||||||
|
|
||||||
var headers map[string]interface{}
|
var headers map[string]interface{}
|
||||||
headers = make(map[string]interface{}) // empty map
|
headers = make(map[string]interface{}) // empty map
|
||||||
headers["uuid"] = helper.ICB.UUID // set uuid
|
headers["uuid"] = newIC2.UUID // set uuid
|
||||||
|
|
||||||
msg := amqp.Publishing{
|
msg := amqp.Publishing{
|
||||||
DeliveryMode: 2,
|
DeliveryMode: 2,
|
||||||
|
@ -824,28 +716,28 @@ func TestCreateUpdateViaAMQPRecv(t *testing.T) {
|
||||||
|
|
||||||
// complete the (required) data of an IC
|
// complete the (required) data of an IC
|
||||||
update.Status.Name = new(string)
|
update.Status.Name = new(string)
|
||||||
*update.Status.Name = helper.ICA.Name
|
*update.Status.Name = newIC1.Name
|
||||||
update.Status.Category = new(string)
|
update.Status.Category = new(string)
|
||||||
*update.Status.Category = helper.ICA.Category
|
*update.Status.Category = newIC1.Category
|
||||||
update.Status.Type = new(string)
|
update.Status.Type = new(string)
|
||||||
*update.Status.Type = helper.ICA.Type
|
*update.Status.Type = newIC1.Type
|
||||||
update.Status.Uptime = new(float64)
|
update.Status.Uptime = new(float64)
|
||||||
*update.Status.Uptime = -1.0
|
*update.Status.Uptime = -1.0
|
||||||
update.Status.WS_url = new(string)
|
update.Status.WS_url = new(string)
|
||||||
*update.Status.WS_url = helper.ICA.WebsocketURL
|
*update.Status.WS_url = newIC1.WebsocketURL
|
||||||
update.Status.API_url = new(string)
|
update.Status.API_url = new(string)
|
||||||
*update.Status.API_url = helper.ICA.APIURL
|
*update.Status.API_url = newIC1.APIURL
|
||||||
update.Status.Description = new(string)
|
update.Status.Description = new(string)
|
||||||
*update.Status.Description = helper.ICA.Description
|
*update.Status.Description = newIC1.Description
|
||||||
update.Status.Location = new(string)
|
update.Status.Location = new(string)
|
||||||
*update.Status.Location = helper.ICA.Location
|
*update.Status.Location = newIC1.Location
|
||||||
|
|
||||||
payload, err = json.Marshal(update)
|
payload, err = json.Marshal(update)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
var headersA map[string]interface{}
|
var headersA map[string]interface{}
|
||||||
headersA = make(map[string]interface{}) // empty map
|
headersA = make(map[string]interface{}) // empty map
|
||||||
headersA["uuid"] = helper.ICA.UUID
|
headersA["uuid"] = newIC1.UUID
|
||||||
|
|
||||||
msg = amqp.Publishing{
|
msg = amqp.Publishing{
|
||||||
DeliveryMode: 2,
|
DeliveryMode: 2,
|
||||||
|
@ -922,28 +814,28 @@ func TestDeleteICViaAMQPRecv(t *testing.T) {
|
||||||
*update.Status.State = "idle"
|
*update.Status.State = "idle"
|
||||||
// complete the (required) data of an IC
|
// complete the (required) data of an IC
|
||||||
update.Status.Name = new(string)
|
update.Status.Name = new(string)
|
||||||
*update.Status.Name = helper.ICA.Name
|
*update.Status.Name = newIC1.Name
|
||||||
update.Status.Category = new(string)
|
update.Status.Category = new(string)
|
||||||
*update.Status.Category = helper.ICA.Category
|
*update.Status.Category = newIC1.Category
|
||||||
update.Status.Type = new(string)
|
update.Status.Type = new(string)
|
||||||
*update.Status.Type = helper.ICA.Type
|
*update.Status.Type = newIC1.Type
|
||||||
update.Status.Uptime = new(float64)
|
update.Status.Uptime = new(float64)
|
||||||
*update.Status.Uptime = -1.0
|
*update.Status.Uptime = -1.0
|
||||||
update.Status.WS_url = new(string)
|
update.Status.WS_url = new(string)
|
||||||
*update.Status.WS_url = helper.ICA.WebsocketURL
|
*update.Status.WS_url = newIC1.WebsocketURL
|
||||||
update.Status.API_url = new(string)
|
update.Status.API_url = new(string)
|
||||||
*update.Status.API_url = helper.ICA.APIURL
|
*update.Status.API_url = newIC1.APIURL
|
||||||
update.Status.Description = new(string)
|
update.Status.Description = new(string)
|
||||||
*update.Status.Description = helper.ICA.Description
|
*update.Status.Description = newIC1.Description
|
||||||
update.Status.Location = new(string)
|
update.Status.Location = new(string)
|
||||||
*update.Status.Location = helper.ICA.Location
|
*update.Status.Location = newIC1.Location
|
||||||
|
|
||||||
payload, err := json.Marshal(update)
|
payload, err := json.Marshal(update)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
var headers map[string]interface{}
|
var headers map[string]interface{}
|
||||||
headers = make(map[string]interface{}) // empty map
|
headers = make(map[string]interface{}) // empty map
|
||||||
headers["uuid"] = helper.ICB.UUID // set uuid
|
headers["uuid"] = newIC2.UUID // set uuid
|
||||||
|
|
||||||
msg := amqp.Publishing{
|
msg := amqp.Publishing{
|
||||||
DeliveryMode: 2,
|
DeliveryMode: 2,
|
||||||
|
@ -974,9 +866,9 @@ func TestDeleteICViaAMQPRecv(t *testing.T) {
|
||||||
|
|
||||||
// add scenario
|
// add scenario
|
||||||
newScenario := ScenarioRequest{
|
newScenario := ScenarioRequest{
|
||||||
Name: helper.ScenarioA.Name,
|
Name: "ScenarioA",
|
||||||
Running: helper.ScenarioA.Running,
|
Running: true,
|
||||||
StartParameters: helper.ScenarioA.StartParameters,
|
StartParameters: postgres.Jsonb{RawMessage: json.RawMessage(`{"parameter1" : "testValue1B", "parameter2" : "testValue2B", "parameter3" : 55}`)},
|
||||||
}
|
}
|
||||||
|
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
|
@ -994,11 +886,11 @@ func TestDeleteICViaAMQPRecv(t *testing.T) {
|
||||||
|
|
||||||
// Add component config and associate with IC and scenario
|
// Add component config and associate with IC and scenario
|
||||||
newConfig := ConfigRequest{
|
newConfig := ConfigRequest{
|
||||||
Name: helper.ConfigA.Name,
|
Name: "ConfigA",
|
||||||
ScenarioID: uint(newScenarioID),
|
ScenarioID: uint(newScenarioID),
|
||||||
ICID: 1,
|
ICID: 1,
|
||||||
StartParameters: helper.ConfigA.StartParameters,
|
StartParameters: postgres.Jsonb{json.RawMessage(`{"parameter1" : "testValue1B", "parameter2" : "testValue2B", "parameter3" : 55}`)},
|
||||||
FileIDs: helper.ConfigA.FileIDs,
|
FileIDs: []int64{},
|
||||||
}
|
}
|
||||||
|
|
||||||
code, resp, err = helper.TestEndpoint(router, token,
|
code, resp, err = helper.TestEndpoint(router, token,
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
package scenario
|
package scenario
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
@ -51,6 +52,18 @@ type UserRequest struct {
|
||||||
Active string `json:"active,omitempty"`
|
Active string `json:"active,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var newScenario1 = ScenarioRequest{
|
||||||
|
Name: "Scenario1",
|
||||||
|
Running: true,
|
||||||
|
StartParameters: postgres.Jsonb{json.RawMessage(`{"parameter1" : "testValue1A", "parameter2" : "testValue2A", "parameter3" : 42}`)},
|
||||||
|
}
|
||||||
|
|
||||||
|
var newScenario2 = ScenarioRequest{
|
||||||
|
Name: "Scenario2",
|
||||||
|
Running: false,
|
||||||
|
StartParameters: postgres.Jsonb{json.RawMessage(`{"parameter1" : "testValue1B", "parameter2" : "testValue2B", "parameter3" : 55}`)},
|
||||||
|
}
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
err := configuration.InitConfig()
|
err := configuration.InitConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -82,12 +95,6 @@ func TestAddScenario(t *testing.T) {
|
||||||
database.MigrateModels()
|
database.MigrateModels()
|
||||||
assert.NoError(t, helper.AddTestUsers())
|
assert.NoError(t, helper.AddTestUsers())
|
||||||
|
|
||||||
newScenario := ScenarioRequest{
|
|
||||||
Name: helper.ScenarioA.Name,
|
|
||||||
Running: helper.ScenarioA.Running,
|
|
||||||
StartParameters: helper.ScenarioA.StartParameters,
|
|
||||||
}
|
|
||||||
|
|
||||||
// authenticate as normal user
|
// authenticate as normal user
|
||||||
token, err := helper.AuthenticateForTest(router,
|
token, err := helper.AuthenticateForTest(router,
|
||||||
"/api/authenticate", "POST", helper.UserACredentials)
|
"/api/authenticate", "POST", helper.UserACredentials)
|
||||||
|
@ -102,12 +109,12 @@ func TestAddScenario(t *testing.T) {
|
||||||
|
|
||||||
// test POST scenarios/ $newScenario as normal user
|
// test POST scenarios/ $newScenario as normal user
|
||||||
code, resp, err = helper.TestEndpoint(router, token,
|
code, resp, err = helper.TestEndpoint(router, token,
|
||||||
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario})
|
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
// Compare POST's response with the newScenario
|
// Compare POST's response with the newScenario
|
||||||
err = helper.CompareResponse(resp, helper.KeyModels{"scenario": newScenario})
|
err = helper.CompareResponse(resp, helper.KeyModels{"scenario": newScenario1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Read newScenario's ID from the response
|
// Read newScenario's ID from the response
|
||||||
|
@ -121,7 +128,7 @@ func TestAddScenario(t *testing.T) {
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
// Compare GET's response with the newScenario
|
// Compare GET's response with the newScenario
|
||||||
err = helper.CompareResponse(resp, helper.KeyModels{"scenario": newScenario})
|
err = helper.CompareResponse(resp, helper.KeyModels{"scenario": newScenario1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// try to POST a malformed scenario
|
// try to POST a malformed scenario
|
||||||
|
@ -150,7 +157,7 @@ func TestAddScenario(t *testing.T) {
|
||||||
// try to add scenario as guest user
|
// try to add scenario as guest user
|
||||||
// should return an unprocessable entity error
|
// should return an unprocessable entity error
|
||||||
code, resp, err = helper.TestEndpoint(router, token,
|
code, resp, err = helper.TestEndpoint(router, token,
|
||||||
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario})
|
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 422, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 422, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
@ -190,18 +197,13 @@ func TestUpdateScenario(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST scenarios/ $newScenario
|
// test POST scenarios/ $newScenario
|
||||||
newScenario := ScenarioRequest{
|
|
||||||
Name: helper.ScenarioA.Name,
|
|
||||||
Running: helper.ScenarioA.Running,
|
|
||||||
StartParameters: helper.ScenarioA.StartParameters,
|
|
||||||
}
|
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario})
|
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
// Compare POST's response with the newScenario
|
// Compare POST's response with the newScenario
|
||||||
err = helper.CompareResponse(resp, helper.KeyModels{"scenario": newScenario})
|
err = helper.CompareResponse(resp, helper.KeyModels{"scenario": newScenario1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Read newScenario's ID from the response
|
// Read newScenario's ID from the response
|
||||||
|
@ -269,14 +271,9 @@ func TestGetAllScenariosAsAdmin(t *testing.T) {
|
||||||
"/api/authenticate", "POST", helper.UserBCredentials)
|
"/api/authenticate", "POST", helper.UserBCredentials)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST scenarios/ $newScenarioB
|
// test POST scenarios/ $newScenario1
|
||||||
newScenarioB := ScenarioRequest{
|
|
||||||
Name: helper.ScenarioB.Name,
|
|
||||||
Running: helper.ScenarioB.Running,
|
|
||||||
StartParameters: helper.ScenarioB.StartParameters,
|
|
||||||
}
|
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenarioB})
|
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
@ -285,14 +282,9 @@ func TestGetAllScenariosAsAdmin(t *testing.T) {
|
||||||
"/api/authenticate", "POST", helper.UserACredentials)
|
"/api/authenticate", "POST", helper.UserACredentials)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST scenarios/ $newScenarioA
|
// test POST scenarios/ $newScenario2
|
||||||
newScenarioA := ScenarioRequest{
|
|
||||||
Name: helper.ScenarioA.Name,
|
|
||||||
Running: helper.ScenarioA.Running,
|
|
||||||
StartParameters: helper.ScenarioA.StartParameters,
|
|
||||||
}
|
|
||||||
code, resp, err = helper.TestEndpoint(router, token,
|
code, resp, err = helper.TestEndpoint(router, token,
|
||||||
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenarioA})
|
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario2})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
@ -325,15 +317,9 @@ func TestGetAllScenariosAsUser(t *testing.T) {
|
||||||
"/api/scenarios", "GET", nil)
|
"/api/scenarios", "GET", nil)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST scenarios/ $newScenarioB
|
// test POST scenarios/ $newScenario2
|
||||||
newScenarioB := ScenarioRequest{
|
|
||||||
Name: helper.ScenarioB.Name,
|
|
||||||
Running: helper.ScenarioB.Running,
|
|
||||||
StartParameters: helper.ScenarioB.StartParameters,
|
|
||||||
}
|
|
||||||
|
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenarioB})
|
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario2})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
@ -342,14 +328,9 @@ func TestGetAllScenariosAsUser(t *testing.T) {
|
||||||
"/api/authenticate", "POST", helper.UserACredentials)
|
"/api/authenticate", "POST", helper.UserACredentials)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST scenarios/ $newScenarioA
|
// test POST scenarios/ $newScenario1
|
||||||
newScenarioA := ScenarioRequest{
|
|
||||||
Name: helper.ScenarioA.Name,
|
|
||||||
Running: helper.ScenarioA.Running,
|
|
||||||
StartParameters: helper.ScenarioA.StartParameters,
|
|
||||||
}
|
|
||||||
code, resp, err = helper.TestEndpoint(router, token,
|
code, resp, err = helper.TestEndpoint(router, token,
|
||||||
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenarioA})
|
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
@ -378,13 +359,8 @@ func TestDeleteScenario(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST scenarios/ $newScenario
|
// test POST scenarios/ $newScenario
|
||||||
newScenario := ScenarioRequest{
|
|
||||||
Name: helper.ScenarioA.Name,
|
|
||||||
Running: helper.ScenarioA.Running,
|
|
||||||
StartParameters: helper.ScenarioA.StartParameters,
|
|
||||||
}
|
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario})
|
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
@ -427,7 +403,7 @@ func TestDeleteScenario(t *testing.T) {
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
// Compare DELETE's response with the newScenario
|
// Compare DELETE's response with the newScenario
|
||||||
err = helper.CompareResponse(resp, helper.KeyModels{"scenario": newScenario})
|
err = helper.CompareResponse(resp, helper.KeyModels{"scenario": newScenario1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Again count the number of all the scenarios returned
|
// Again count the number of all the scenarios returned
|
||||||
|
@ -450,13 +426,8 @@ func TestAddUserToScenario(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST scenarios/ $newScenario
|
// test POST scenarios/ $newScenario
|
||||||
newScenario := ScenarioRequest{
|
|
||||||
Name: helper.ScenarioA.Name,
|
|
||||||
Running: helper.ScenarioA.Running,
|
|
||||||
StartParameters: helper.ScenarioA.StartParameters,
|
|
||||||
}
|
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario})
|
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
@ -535,13 +506,8 @@ func TestGetAllUsersOfScenario(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST scenarios/ $newScenario
|
// test POST scenarios/ $newScenario
|
||||||
newScenario := ScenarioRequest{
|
|
||||||
Name: helper.ScenarioA.Name,
|
|
||||||
Running: helper.ScenarioA.Running,
|
|
||||||
StartParameters: helper.ScenarioA.StartParameters,
|
|
||||||
}
|
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario})
|
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
@ -620,13 +586,8 @@ func TestRemoveUserFromScenario(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test POST scenarios/ $newScenario
|
// test POST scenarios/ $newScenario
|
||||||
newScenario := ScenarioRequest{
|
|
||||||
Name: helper.ScenarioA.Name,
|
|
||||||
Running: helper.ScenarioA.Running,
|
|
||||||
StartParameters: helper.ScenarioA.StartParameters,
|
|
||||||
}
|
|
||||||
code, resp, err := helper.TestEndpoint(router, token,
|
code, resp, err := helper.TestEndpoint(router, token,
|
||||||
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario})
|
"/api/scenarios", "POST", helper.KeyModels{"scenario": newScenario1})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
assert.Equalf(t, 200, code, "Response body: \n%v\n", resp)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue