From 2bfd086c7ce97c297f745adce1d5f026eae876fb Mon Sep 17 00:00:00 2001 From: "naman.gupta" Date: Wed, 15 Mar 2023 18:36:43 +0530 Subject: [PATCH] E2 reset response model updated E2 reset response model updated inorder to fill response structure. Signed-off-by: naman.gupta Change-Id: I781042ef74d525d908ac57b002f5ace09f6fe7b3 --- E2Manager/models/e2_reset_response.go | 98 +++++++++++++++++++----------- E2Manager/models/e2_reset_response_test.go | 8 +-- 2 files changed, 68 insertions(+), 38 deletions(-) diff --git a/E2Manager/models/e2_reset_response.go b/E2Manager/models/e2_reset_response.go index 846bf70..42d83ce 100644 --- a/E2Manager/models/e2_reset_response.go +++ b/E2Manager/models/e2_reset_response.go @@ -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}} } diff --git a/E2Manager/models/e2_reset_response_test.go b/E2Manager/models/e2_reset_response_test.go index bba984f..bc98b80 100644 --- a/E2Manager/models/e2_reset_response_test.go +++ b/E2Manager/models/e2_reset_response_test.go @@ -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) } -- 2.16.6