E2 reset response model updated 36/10736/2
authornaman.gupta <naman.gupta@samsung.com>
Wed, 15 Mar 2023 13:06:43 +0000 (18:36 +0530)
committernaman.gupta <naman.gupta@samsung.com>
Thu, 16 Mar 2023 11:48:00 +0000 (17:18 +0530)
E2 reset response model updated inorder to fill response structure.

Signed-off-by: naman.gupta <naman.gupta@samsung.com>
Change-Id: I781042ef74d525d908ac57b002f5ace09f6fe7b3

E2Manager/models/e2_reset_response.go
E2Manager/models/e2_reset_response_test.go

index 846bf70..42d83ce 100644 (file)
@@ -23,39 +23,69 @@ import (
 )
 
 type E2ResetResponseMessage struct {
-       XMLName xml.Name `xml:"E2ResetRequestMessage"`
+       XMLName xml.Name `xml:"E2ResetSuccessResponseMessage"`
        Text    string   `xml:",chardata"`
-       E2APPDU struct {
-               XMLName           xml.Name `xml:"E2AP-PDU"`
-               Text              string   `xml:",chardata"`
-               SuccessfulOutcome struct {
-                       Text          string `xml:",chardata"`
-                       ProcedureCode string `xml:"procedureCode"`
-                       Criticality   struct {
-                               Text   string `xml:",chardata"`
-                               Ignore string `xml:"ignore"`
-                       } `xml:"criticality"`
-                       Value struct {
-                               Text          string `xml:",chardata"`
-                               ResetResponse struct {
-                                       Text        string `xml:",chardata"`
-                                       ProtocolIEs struct {
-                                               Text             string `xml:",chardata"`
-                                               ResetResponseIEs []struct {
-                                                       Text        string `xml:",chardata"`
-                                                       ID          string `xml:"id"`
-                                                       Criticality struct {
-                                                               Text   string `xml:",chardata"`
-                                                               Ignore string `xml:"ignore"`
-                                                       } `xml:"criticality"`
-                                                       Value struct {
-                                                               Text          string `xml:",chardata"`
-                                                               TransactionID string `xml:"TransactionID"`
-                                                       } `xml:"value"`
-                                               } `xml:"ResetResponseIEs"`
-                                       } `xml:"protocolIEs"`
-                               } `xml:"ResetResponse"`
-                       } `xml:"value"`
-               } `xml:"successfulOutcome"`
-       } `xml:"E2AP-PDU"`
+       E2ApPdu E2ApPdu  `xml:"E2AP-PDU"`
+}
+
+type E2ApPdu struct {
+       XMLName           xml.Name          `xml:"E2AP-PDU"`
+       Text              string            `xml:",chardata"`
+       SuccessfulOutcome successfulOutcome `xml:"successfulOutcome"`
+}
+
+type successfulOutcome struct {
+       XMLName       xml.Name `xml:"successfulOutcome"`
+       Text          string   `xml:",chardata"`
+       ProcedureCode string   `xml:"procedureCode"`
+       Criticality   struct {
+               Text   string `xml:",chardata"`
+               Reject string `xml:"reject"`
+       } `xml:"criticality"`
+       Value SuccessfulOutcomeValue `xml:"value"`
+}
+
+type Criticality struct {
+       Ignore string `xml:"ignore"`
+}
+
+type SuccessfulOutcomeValue struct {
+       Text          string        `xml:",chardata"`
+       ResetResponse ResetResponse `xml:"ResetResponse"`
+}
+
+type ResetResponse struct {
+       Text        string      `xml:",chardata"`
+       ProtocolIEs ProtocolIEs `xml:"protocolIEs"`
+}
+
+type ProtocolIEs struct {
+       Text             string             `xml:",chardata"`
+       ResetResponseIEs []ResetResponseIEs `xml:"ResetResponseIEs"`
+}
+
+type ResetResponseIEs struct {
+       Text        string                `xml:",chardata"`
+       ID          string                `xml:"id"`
+       Criticality Criticality           `xml:"criticality"`
+       Value       ResetResponseIEsValue `xml:"value"`
+}
+
+type ResetResponseIEsValue struct {
+       TransactionID string `xml:"TransactionID"`
+}
+
+func NewE2ResetResponseMessage(request *E2ResetRequestMessage) E2ResetResponseMessage {
+       outcome := successfulOutcome{}
+       outcome.ProcedureCode = request.E2APPDU.InitiatingMessage.ProcedureCode
+       e2ResetRequestIes := request.E2APPDU.InitiatingMessage.Value.ResetRequest.ProtocolIEs.ResetRequestIEs
+       numOfIes := len(e2ResetRequestIes)
+
+       outcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs = make([]ResetResponseIEs, numOfIes)
+       for ieCount := 0; ieCount < numOfIes; ieCount++ {
+               outcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs[ieCount].ID = request.E2APPDU.InitiatingMessage.Value.ResetRequest.ProtocolIEs.ResetRequestIEs[ieCount].ID
+               outcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs[ieCount].Criticality.Ignore = request.E2APPDU.InitiatingMessage.Value.ResetRequest.ProtocolIEs.ResetRequestIEs[ieCount].Criticality.Ignore
+               outcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs[ieCount].Value.TransactionID = request.E2APPDU.InitiatingMessage.Value.ResetRequest.ProtocolIEs.ResetRequestIEs[ieCount].Value.TransactionID
+       }
+       return E2ResetResponseMessage{E2ApPdu: E2ApPdu{SuccessfulOutcome: outcome}}
 }
index bba984f..bc98b80 100644 (file)
@@ -34,7 +34,7 @@ const (
 func getResetResponseMessage(t *testing.T, xmlPath string) *models.E2ResetResponseMessage {
        resetResponse := utils.ReadXmlFile(t, xmlPath)
        resetResponseMsg := &models.E2ResetResponseMessage{}
-       err := xml.Unmarshal(utils.NormalizeXml(resetResponse), &resetResponseMsg.E2APPDU)
+       err := xml.Unmarshal(utils.NormalizeXml(resetResponse), &resetResponseMsg.E2ApPdu)
        assert.Nil(t, err)
        return resetResponseMsg
 }
@@ -42,10 +42,10 @@ func getResetResponseMessage(t *testing.T, xmlPath string) *models.E2ResetRespon
 func TestParseResetResponse(t *testing.T) {
        rr := getResetResponseMessage(t, ResetResponseXMLPath)
        assert.NotEqual(t, nil, rr, "xml is not parsed correctly")
-       assert.Equal(t, models.ProcedureCode_id_Reset, rr.E2APPDU.SuccessfulOutcome.ProcedureCode)
-       assert.Equal(t, 1, len(rr.E2APPDU.SuccessfulOutcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs))
+       assert.Equal(t, models.ProcedureCode_id_Reset, rr.E2ApPdu.SuccessfulOutcome.ProcedureCode)
+       assert.Equal(t, 1, len(rr.E2ApPdu.SuccessfulOutcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs))
 
-       txid := rr.E2APPDU.SuccessfulOutcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs[0]
+       txid := rr.E2ApPdu.SuccessfulOutcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs[0]
 
        assert.Equal(t, models.ProtocolIE_ID_id_TransactionID, txid.ID)
 }