)
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}}
}
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
}
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)
}