From 1f5e64b9ea96027c69a8f5cd8e438b5349661b9c Mon Sep 17 00:00:00 2001 From: Sonja Happ Date: Wed, 24 Jul 2019 16:39:59 +0200 Subject: [PATCH] Fixex for simulator POST/ PUT endpoints and simulator testing, --- common/responses.go | 2 +- common/serializers.go | 2 +- common/utilities.go | 5 ++-- routes/simulator/simulator_endpoints.go | 22 +++++++++++++---- routes/simulator/simulator_methods.go | 14 ++--------- routes/simulator/simulator_test.go | 33 ++++++++++++------------- 6 files changed, 40 insertions(+), 38 deletions(-) diff --git a/common/responses.go b/common/responses.go index be1b758..b61c542 100644 --- a/common/responses.go +++ b/common/responses.go @@ -30,7 +30,7 @@ type SimulatorResponse struct { ID uint `json:"id"` UUID string `json:"uuid"` Host string `json:"host"` - ModelType string `json:"modelType"` + Modeltype string `json:"modelType"` Uptime int `json:"uptime"` State string `json:"state"` StateUpdateAt string `json:"stateUpdateAt"` diff --git a/common/serializers.go b/common/serializers.go index 95df6f5..24ee87f 100644 --- a/common/serializers.go +++ b/common/serializers.go @@ -143,7 +143,7 @@ func (self *SimulatorSerializer) Response() SimulatorResponse { ID: self.ID, UUID: self.UUID, Host: self.Host, - ModelType: self.Modeltype, + Modeltype: self.Modeltype, Uptime: self.Uptime, State: self.State, StateUpdateAt: self.StateUpdateAt, diff --git a/common/utilities.go b/common/utilities.go index 6cd85a2..263cd92 100644 --- a/common/utilities.go +++ b/common/utilities.go @@ -51,10 +51,11 @@ func TestEndpoint(t *testing.T, router *gin.Engine, token string, url string, me } assert.Equal(t, expected_code, w.Code) - fmt.Println(w.Body.String()) + //fmt.Println("Actual:", w.Body.String()) + //fmt.Println("Expected: ", string(expected_response)) opts := jsondiff.DefaultConsoleOptions() diff, _ := jsondiff.Compare(w.Body.Bytes(), expected_response, &opts) - assert.Equal(t, diff.String(), "FullMatch") + assert.Equal(t, "FullMatch", diff.String()) } diff --git a/routes/simulator/simulator_endpoints.go b/routes/simulator/simulator_endpoints.go index d09919a..9950d77 100644 --- a/routes/simulator/simulator_endpoints.go +++ b/routes/simulator/simulator_endpoints.go @@ -76,8 +76,8 @@ func addSimulator(c *gin.Context) { return } - var newSimulator Simulator - err = c.BindJSON(&newSimulator) + var newSimulatorData common.ResponseMsgSimulator + err = c.BindJSON(&newSimulatorData) if err != nil { errormsg := "Bad request. Error binding form data to JSON: " + err.Error() c.JSON(http.StatusBadRequest, gin.H{ @@ -86,6 +86,17 @@ func addSimulator(c *gin.Context) { return } + var newSimulator Simulator + newSimulator.ID = newSimulatorData.Simulator.ID + newSimulator.State = newSimulatorData.Simulator.State + newSimulator.StateUpdateAt = newSimulatorData.Simulator.StateUpdateAt + newSimulator.Modeltype = newSimulatorData.Simulator.Modeltype + newSimulator.UUID = newSimulatorData.Simulator.UUID + newSimulator.Uptime = newSimulatorData.Simulator.Uptime + newSimulator.Host = newSimulatorData.Simulator.Host + newSimulator.RawProperties = newSimulatorData.Simulator.RawProperties + newSimulator.Properties = newSimulatorData.Simulator.Properties + err = newSimulator.save() if common.ProvideErrorResponse(c, err) == false { c.JSON(http.StatusOK, gin.H{ @@ -115,10 +126,11 @@ func updateSimulator(c *gin.Context) { return } - var modifiedSimulator Simulator + var modifiedSimulator common.ResponseMsgSimulator + err = c.BindJSON(&modifiedSimulator) if err != nil { - errormsg := "Bad request. Error binding form data to JSON: " + err.Error() + errormsg := "Bad request. Error unmarshalling data to JSON: " + err.Error() c.JSON(http.StatusBadRequest, gin.H{ "error": errormsg, }) @@ -140,7 +152,7 @@ func updateSimulator(c *gin.Context) { return } - err = s.update(modifiedSimulator) + err = s.update(modifiedSimulator.Simulator) if common.ProvideErrorResponse(c, err) == false { c.JSON(http.StatusOK, gin.H{ "message": "OK.", diff --git a/routes/simulator/simulator_methods.go b/routes/simulator/simulator_methods.go index ea02504..37f9bd1 100644 --- a/routes/simulator/simulator_methods.go +++ b/routes/simulator/simulator_methods.go @@ -25,20 +25,10 @@ func (s *Simulator) ByID(id uint) error { return nil } -func (s *Simulator) update(modifiedSimulator Simulator) error { +func (s *Simulator) update(modifiedSimulator common.SimulatorResponse) error { db := common.GetDB() - - err := db.Model(s).Updates(map[string]interface{}{ - "UUID": modifiedSimulator.UUID, - "Host": modifiedSimulator.Host, - "Modeltype": modifiedSimulator.Modeltype, - "Uptime": modifiedSimulator.Uptime, - "State": modifiedSimulator.State, - "StateUpdateAt": modifiedSimulator.StateUpdateAt, - "Properties": modifiedSimulator.Properties, - "RawProperties": modifiedSimulator.RawProperties, - }).Error + err := db.Model(s).Updates(modifiedSimulator).Error return err diff --git a/routes/simulator/simulator_test.go b/routes/simulator/simulator_test.go index 8f538ad..6333eb7 100644 --- a/routes/simulator/simulator_test.go +++ b/routes/simulator/simulator_test.go @@ -60,7 +60,7 @@ var simulatorA = common.SimulatorResponse{ ID: 1, UUID: "4854af30-325f-44a5-ad59-b67b2597de68", Host: "Host_A", - ModelType: "ModelTypeA", + Modeltype: "ModelTypeA", Uptime: 0, State: "running", StateUpdateAt: "placeholder", @@ -72,7 +72,7 @@ var simulatorB = common.SimulatorResponse{ ID: 2, UUID: "7be0322d-354e-431e-84bd-ae4c9633138b", Host: "Host_B", - ModelType: "ModelTypeB", + Modeltype: "ModelTypeB", Uptime: 0, State: "idle", StateUpdateAt: "placeholder", @@ -105,10 +105,10 @@ var simulatorCupdated = common.Simulator{ } var simulatorC_response = common.SimulatorResponse{ - ID: 3, + ID: simulatorC.ID, UUID: simulatorC.UUID, Host: simulatorC.Host, - ModelType: simulatorC.Modeltype, + Modeltype: simulatorC.Modeltype, Uptime: simulatorC.Uptime, State: simulatorC.State, StateUpdateAt: simulatorC.StateUpdateAt, @@ -116,11 +116,15 @@ var simulatorC_response = common.SimulatorResponse{ RawProperties: simulatorC.RawProperties, } +var simulatorC_msg = common.ResponseMsgSimulator{ + Simulator: simulatorC_response, +} + var simulatorCupdated_response = common.SimulatorResponse{ ID: simulatorCupdated.ID, UUID: simulatorCupdated.UUID, Host: simulatorCupdated.Host, - ModelType: simulatorCupdated.Modeltype, + Modeltype: simulatorCupdated.Modeltype, Uptime: simulatorCupdated.Uptime, State: simulatorCupdated.State, StateUpdateAt: simulatorCupdated.StateUpdateAt, @@ -128,6 +132,10 @@ var simulatorCupdated_response = common.SimulatorResponse{ RawProperties: simulatorCupdated.RawProperties, } +var simulatorCupdated_msg = common.ResponseMsgSimulator{ + Simulator: simulatorCupdated_response, +} + var mySimulators = []common.SimulatorResponse{ simulatorA, simulatorB, @@ -141,10 +149,6 @@ var msgSimulator = common.ResponseMsgSimulator{ Simulator: simulatorC_response, } -var msgSimulatorUpdated = common.ResponseMsgSimulator{ - Simulator: simulatorCupdated_response, -} - // Test /simulator endpoints func TestSimulatorEndpoints(t *testing.T) { @@ -185,17 +189,12 @@ func TestSimulatorEndpoints(t *testing.T) { panic(err) } - msgSimulatorUpdatedjson, err := json.Marshal(msgSimulatorUpdated) + simulatorCjson, err := json.Marshal(simulatorC_msg) if err != nil { panic(err) } - simulatorCjson, err := json.Marshal(simulatorC) - if err != nil { - panic(err) - } - - simulatorCupdatedjson, err := json.Marshal(simulatorCupdated) + simulatorCupdatedjson, err := json.Marshal(simulatorCupdated_msg) if err != nil { panic(err) } @@ -213,7 +212,7 @@ func TestSimulatorEndpoints(t *testing.T) { // test PUT simulators/:SimulatorID common.TestEndpoint(t, router, token, "/api/simulators/3", "PUT", simulatorCupdatedjson, 200, msgOKjson) - common.TestEndpoint(t, router, token, "/api/simulators/3", "GET", nil, 200, msgSimulatorUpdatedjson) + common.TestEndpoint(t, router, token, "/api/simulators/3", "GET", nil, 200, simulatorCupdatedjson) // test DELETE simulators/:SimulatorID common.TestEndpoint(t, router, token, "/api/simulators/3", "DELETE", nil, 200, msgOKjson)