Newer
Older
ue_data = dataModel.NodeDataUnion{}
ue_node = dataModel.ScenarioNode{Type_: NodeTypeUE, NodeDataUnion: &ue_data}
Kevin Di Lallo
committed
err = m.AddScenarioNode(&ue_node)
if err == nil {
t.Fatalf("Action should have failed")
}
ue_data = dataModel.NodeDataUnion{}
ue_node = dataModel.ScenarioNode{Type_: NodeTypeUE, NodeDataUnion: &ue_data, Parent: "zone1-poa1"}
Kevin Di Lallo
committed
err = m.AddScenarioNode(&ue_node)
if err == nil {
t.Fatalf("Action should have failed")
}
ue_pl := dataModel.PhysicalLocation{Id: "ue-id", Type_: NodeTypeUE}
ue_data = dataModel.NodeDataUnion{PhysicalLocation: &ue_pl}
ue_node = dataModel.ScenarioNode{Type_: NodeTypeUE, NodeDataUnion: &ue_data, Parent: "zone1-poa1"}
Kevin Di Lallo
committed
err = m.AddScenarioNode(&ue_node)
if err == nil {
t.Fatalf("Action should have failed")
}
ue_pl = dataModel.PhysicalLocation{Id: "ue-id", Name: "ue"}
ue_data = dataModel.NodeDataUnion{PhysicalLocation: &ue_pl}
ue_node = dataModel.ScenarioNode{Type_: NodeTypeUE, NodeDataUnion: &ue_data, Parent: "zone1-poa1"}
Kevin Di Lallo
committed
err = m.AddScenarioNode(&ue_node)
if err == nil {
t.Fatalf("Action should have failed")
}
ue1_pl := dataModel.PhysicalLocation{Id: "ue1-id", Name: "ue1", Type_: NodeTypeUE}
ue1_data := dataModel.NodeDataUnion{PhysicalLocation: &ue1_pl}
ue1_node := dataModel.ScenarioNode{Type_: NodeTypeUE, NodeDataUnion: &ue1_data, Parent: "zone1-poa1"}
Kevin Di Lallo
committed
err = m.AddScenarioNode(&ue1_node)
if err == nil {
t.Fatalf("Action should have failed")
}
fmt.Println("Invalid Remove Requests")
ue_data = dataModel.NodeDataUnion{}
ue_node = dataModel.ScenarioNode{NodeDataUnion: &ue_data}
Kevin Di Lallo
committed
err = m.RemoveScenarioNode(&ue_node)
if err == nil {
t.Fatalf("Action should have failed")
}
ue_data = dataModel.NodeDataUnion{}
ue_node = dataModel.ScenarioNode{Type_: NodeTypeUE}
Kevin Di Lallo
committed
err = m.RemoveScenarioNode(&ue_node)
if err == nil {
t.Fatalf("Action should have failed")
}
ue_data = dataModel.NodeDataUnion{}
ue_node = dataModel.ScenarioNode{Type_: NodeTypeUE, NodeDataUnion: &ue_data}
Kevin Di Lallo
committed
err = m.RemoveScenarioNode(&ue_node)
if err == nil {
t.Fatalf("Action should have failed")
}
ue_pl = dataModel.PhysicalLocation{Id: "ue-id", Type_: NodeTypeUE}
ue_data = dataModel.NodeDataUnion{PhysicalLocation: &ue_pl}
ue_node = dataModel.ScenarioNode{Type_: NodeTypeUE, NodeDataUnion: &ue_data}
Kevin Di Lallo
committed
err = m.RemoveScenarioNode(&ue_node)
if err == nil {
t.Fatalf("Action should have failed")
}
ue_pl = dataModel.PhysicalLocation{Id: "ue-id", Name: "ue"}
ue_data = dataModel.NodeDataUnion{PhysicalLocation: &ue_pl}
ue_node = dataModel.ScenarioNode{Type_: NodeTypeUE, NodeDataUnion: &ue_data}
Kevin Di Lallo
committed
err = m.RemoveScenarioNode(&ue_node)
if err == nil {
t.Fatalf("Action should have failed")
}
fmt.Println("Add ue3")
ue3_pl := dataModel.PhysicalLocation{Id: "ue3-id", Name: "ue3", Type_: NodeTypeUE}
ue3_data := dataModel.NodeDataUnion{PhysicalLocation: &ue3_pl}
ue3_node := dataModel.ScenarioNode{Type_: NodeTypeUE, NodeDataUnion: &ue3_data, Parent: "zone1-poa1"}
Kevin Di Lallo
committed
err = m.AddScenarioNode(&ue3_node)
if err != nil {
t.Fatalf("Error adding nodes")
}
n := m.nodeMap.FindByName("ue3")
if n == nil || n.name != "ue3" {
t.Fatalf("Failed to add nodes")
}
p := n.parent.(*dataModel.NetworkLocation)
if p == nil || p.Name != "zone1-poa1" {
t.Fatalf("Failed to add nodes")
}
d := n.object.(*dataModel.PhysicalLocation)
if d == nil || d.Name != "ue3" {
t.Fatalf("Failed to add nodes")
}
Kevin Di Lallo
committed
fmt.Println("Add ue4")
ue4_pl := dataModel.PhysicalLocation{Id: "ue4-id", Name: "ue4", Type_: NodeTypeUE}
ue4_data := dataModel.NodeDataUnion{PhysicalLocation: &ue4_pl}
ue4_node := dataModel.ScenarioNode{Type_: NodeTypeUE, NodeDataUnion: &ue4_data, Parent: "zone1-poa1"}
Kevin Di Lallo
committed
err = m.AddScenarioNode(&ue4_node)
if err != nil {
t.Fatalf("Error adding nodes")
}
n = m.nodeMap.FindByName("ue4")
if n == nil || n.name != "ue4" {
t.Fatalf("Failed to add nodes")
}
p = n.parent.(*dataModel.NetworkLocation)
if p == nil || p.Name != "zone1-poa1" {
t.Fatalf("Failed to add nodes")
}
d = n.object.(*dataModel.PhysicalLocation)
if d == nil || d.Name != "ue4" {
t.Fatalf("Failed to add nodes")
}
fmt.Println("Remove ue4")
ue4_node = dataModel.ScenarioNode{Type_: NodeTypeUE, NodeDataUnion: &ue4_data}
Kevin Di Lallo
committed
err = m.RemoveScenarioNode(&ue4_node)
if err != nil {
t.Fatalf("Error removing nodes")
}
n = m.nodeMap.FindByName("ue4")
if n != nil {
t.Fatalf("Failed to remove nodes")
}
fmt.Println("Remove ue3 & ue5")
ue3_node = dataModel.ScenarioNode{Type_: NodeTypeUE, NodeDataUnion: &ue3_data}
Kevin Di Lallo
committed
err = m.RemoveScenarioNode(&ue3_node)
if err != nil {
t.Fatalf("Error removing nodes")
}
n = m.nodeMap.FindByName("ue3")
if n != nil {
t.Fatalf("Failed to remove nodes")
}
}
Kevin Di Lallo
committed
func validateNodeContext(nodeCtx *NodeContext, deployment, domain, zone, netLoc, phyLoc string) bool {
if nodeCtx.Parents[Deployment] != deployment ||
nodeCtx.Parents[Domain] != domain ||
nodeCtx.Parents[Zone] != zone ||
nodeCtx.Parents[NetLoc] != netLoc ||
nodeCtx.Parents[PhyLoc] != phyLoc {
return false
}
return true
func TestValidateScenario(t *testing.T) {
fmt.Println("--- ", t.Name())
log.MeepTextLogInit(t.Name())
// Incompatible scenarios
fmt.Println("Validate empty scenario")
validJsonScenario, status, err := ValidateScenario([]byte(""))
if validJsonScenario != nil || status != ValidatorStatusError || err == nil {
t.Fatalf("Empty scenario should not be valid")
}
fmt.Println("Validate scenario: scenarioVer[none] < validatorVer[2.0.0]")
ValidatorVersion = semver.Version{Major: 2, Minor: 0, Patch: 0}
validJsonScenario, status, err = ValidateScenario([]byte(testScenario))
if validJsonScenario != nil || status != ValidatorStatusError || err == nil {
t.Fatalf("validJsonScenario should not be compatible")
}
fmt.Println("Validate scenario: scenarioVer[1.0.0] < validatorVer[2.0.0]")
ValidatorVersion = semver.Version{Major: 2, Minor: 0, Patch: 0}
validJsonScenario, status, err = ValidateScenario([]byte(testScenario_v1_0_0))
if validJsonScenario != nil || status != ValidatorStatusError || err == nil {
t.Fatalf("validJsonScenario should not be compatible")
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
/*
// Compatible Scenarios
fmt.Println("Validate scenario: scenarioVer[none] < validatorVer[1.3.0]")
ValidatorVersion = semver.Version{Major: 1, Minor: 3, Patch: 0}
validJsonScenario, status, err = ValidateScenario([]byte(testScenario))
if validJsonScenario == nil || status != ValidatorStatusUpdated || err != nil {
t.Fatalf("validJsonScenario should not be nil")
}
if string(validJsonScenario) != testScenario_v1_3_0 {
log.Info("SIMON valid ",string(validJsonScenario))
log.Info("SIMON valid2 ", testScenario_v1_3_0)
t.Fatalf("validJsonScenario != testScenario_v1_3_0")
}
fmt.Println("Validate scenario: scenarioVer[1.0.0] < validatorVer[1.3.0]")
ValidatorVersion = semver.Version{Major: 1, Minor: 3, Patch: 0}
validJsonScenario, status, err = ValidateScenario([]byte(testScenario_v1_0_0))
if validJsonScenario == nil || status != ValidatorStatusUpdated || err != nil {
t.Fatalf("validJsonScenario should not be nil")
}
if string(validJsonScenario) != testScenario_v1_3_0 {
t.Fatalf("validJsonScenario != testScenario_v1_3_0")
}
fmt.Println("Validate scenario: scenarioVer[1.3.0] == validatorVer[1.3.0]")
ValidatorVersion = semver.Version{Major: 1, Minor: 3, Patch: 0}
validJsonScenario, status, err = ValidateScenario([]byte(testScenario_v1_3_0))
if validJsonScenario == nil || status != ValidatorStatusValid || err != nil {
t.Fatalf("validJsonScenario should not be nil")
}
if string(validJsonScenario) != testScenario_v1_3_0 {
t.Fatalf("validJsonScenario != testScenario_v1_3_0")
}
*/
fmt.Println("Validate scenario: scenarioVer[1.3.0] < validatorVer[1.5.0]")
ValidatorVersion = semver.Version{Major: 1, Minor: 5, Patch: 0}
validJsonScenario, status, err = ValidateScenario([]byte(testScenario_v1_3_0))
if validJsonScenario == nil || status != ValidatorStatusUpdated || err != nil {
t.Fatalf("validJsonScenario should not be nil")
if string(validJsonScenario) != testScenario_v1_5_0 {
log.Info("SIMON valid ", string(validJsonScenario))
log.Info("SIMON valid2 ", testScenario_v1_5_0)
t.Fatalf("validJsonScenario != testScenario_v1_5_0")
fmt.Println("Validate scenario: scenarioVer[1.5.0] == validatorVer[1.5.0]")
ValidatorVersion = semver.Version{Major: 1, Minor: 5, Patch: 0}
validJsonScenario, status, err = ValidateScenario([]byte(testScenario_v1_5_0))
if validJsonScenario == nil || status != ValidatorStatusValid || err != nil {
t.Fatalf("validJsonScenario should not be nil")
if string(validJsonScenario) != testScenario_v1_5_0 {
t.Fatalf("validJsonScenario != testScenario_v1_5_0")
}