)
const (
- E2nodeConfigUpdateXmlPath = "../../tests/resources/configurationUpdate/e2NodeConfigurationUpdate.xml"
- E2nodeConfigUpdateOnlyAdditionXmlPath = "../../tests/resources/configurationUpdate/e2NodeConfigurationUpdateOnlyAddition.xml"
+ E2nodeConfigUpdateXmlPath = "../../tests/resources/configurationUpdate/e2NodeConfigurationUpdate.xml"
+ E2nodeConfigUpdateOnlyAdditionXmlPath = "../../tests/resources/configurationUpdate/e2NodeConfigurationUpdateOnlyAddition.xml"
+ E2nodeConfigUpdateOnlyAdditionAndUpdateXmlPath = "../../tests/resources/configurationUpdate/e2NodeConfigurationUpdateAdditionAndUpdateOnly.xml"
)
func initE2nodeConfigMocks(t *testing.T) (*E2nodeConfigUpdateNotificationHandler, *mocks.RnibReaderMock, *mocks.RnibWriterMock, *mocks.RmrMessengerMock) {
assert.NotNil(t, err)
}
-func TestHandleAddConfig(t *testing.T) {
- e2NodeConfigUpdateXml := utils.ReadXmlFile(t, E2nodeConfigUpdateXmlPath)
+func TestHandleAddAndUpdateConfig(t *testing.T) {
+ e2NodeConfigUpdateXml := utils.ReadXmlFile(t, E2nodeConfigUpdateOnlyAdditionAndUpdateXmlPath)
handler, readerMock, writerMock, _ := initE2nodeConfigMocks(t)
var nodebInfo = &entities.NodebInfo{
writerMock.AssertExpectations(t)
readerMock.AssertExpectations(t)
}
+
+func TestHandleAddandDeleteConfig(t *testing.T) {
+ e2NodeConfigUpdateXml := utils.ReadXmlFile(t, E2nodeConfigUpdateXmlPath)
+
+ handler, readerMock, writerMock, _ := initE2nodeConfigMocks(t)
+ var nodebInfo = &entities.NodebInfo{
+ RanName: gnbNodebRanName,
+ AssociatedE2TInstanceAddress: e2tInstanceFullAddress,
+ ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,
+ NodeType: entities.Node_GNB,
+ Configuration: &entities.NodebInfo_Gnb{
+ Gnb: &entities.Gnb{},
+ },
+ }
+ readerMock.On("GetNodeb", gnbNodebRanName).Return(nodebInfo, nil)
+ writerMock.On("UpdateNodebInfoAndPublish", mock.Anything).Return(nil)
+
+ notificationRequest := &models.NotificationRequest{RanName: gnbNodebRanName, Payload: append([]byte(""), e2NodeConfigUpdateXml...)}
+
+ handler.Handle(notificationRequest)
+
+ t.Logf("len of nodeconfig : %d", len(nodebInfo.GetGnb().NodeConfigs))
+
+ assert.Equal(t, 0, len(nodebInfo.GetGnb().NodeConfigs))
+
+ writerMock.AssertExpectations(t)
+ readerMock.AssertExpectations(t)
+}
--- /dev/null
+<E2AP-PDU>
+ <initiatingMessage>
+ <procedureCode>6</procedureCode>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeConfigurationUpdate>
+ <protocolIEs>
+ <E2nodeConfigurationUpdate-IEs>
+ <id>49</id>
+ <criticality><reject/></criticality>
+ <value>
+ <TransactionID>1234</TransactionID>
+ </value>
+ </E2nodeConfigurationUpdate-IEs>
+ <E2nodeConfigurationUpdate-IEs>
+ <id>50</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigAddition-List>
+ <ProtocolIE-SingleContainer>
+ <id>51</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigAddition-Item>
+ <e2nodeComponentInterfaceType><ng/></e2nodeComponentInterfaceType>
+ <e2nodeComponentID>
+ <e2nodeComponentInterfaceTypeNG>
+ <amf-name>nginterf</amf-name>
+ </e2nodeComponentInterfaceTypeNG>
+ </e2nodeComponentID>
+ <e2nodeComponentConfiguration>
+ <e2nodeComponentRequestPart>72 65 71 70 61 72 74</e2nodeComponentRequestPart>
+ <e2nodeComponentResponsePart>72 65 73 70 61 72 74</e2nodeComponentResponsePart>
+ </e2nodeComponentConfiguration>
+ </E2nodeComponentConfigAddition-Item>
+ </value>
+ </ProtocolIE-SingleContainer>
+ <ProtocolIE-SingleContainer>
+ <id>51</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigAddition-Item>
+ <e2nodeComponentInterfaceType><xn/></e2nodeComponentInterfaceType>
+ <e2nodeComponentID>
+ <e2nodeComponentInterfaceTypeXn>
+ <global-NG-RAN-Node-ID>
+ <gNB>
+ <plmn-id>
+ 67 6E 62 3A 31 32 33 34 35 36 37 38 39 73 64 66
+ 67 31 31 31
+ </plmn-id>
+ <gnb-id>
+ <gnb-ID>
+ 0011000100110010001100110011010000110101001100010011001000110011
+ 0011010000110101001100010011001000110011001101000011001000110010
+ 00110010001100100011001000110010
+ </gnb-ID>
+ </gnb-id>
+ </gNB>
+ </global-NG-RAN-Node-ID>
+ </e2nodeComponentInterfaceTypeXn>
+ </e2nodeComponentID>
+ <e2nodeComponentConfiguration>
+ <e2nodeComponentRequestPart>72 65 71 70 61 72 74</e2nodeComponentRequestPart>
+ <e2nodeComponentResponsePart>72 65 73 70 61 72 74</e2nodeComponentResponsePart>
+ </e2nodeComponentConfiguration>
+ </E2nodeComponentConfigAddition-Item>
+ </value>
+ </ProtocolIE-SingleContainer>
+ <ProtocolIE-SingleContainer>
+ <id>51</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigAddition-Item>
+ <e2nodeComponentInterfaceType><e1/></e2nodeComponentInterfaceType>
+ <e2nodeComponentID>
+ <e2nodeComponentInterfaceTypeE1>
+ <gNB-CU-CP-ID>100</gNB-CU-CP-ID>
+ </e2nodeComponentInterfaceTypeE1>
+ </e2nodeComponentID>
+ <e2nodeComponentConfiguration>
+ <e2nodeComponentRequestPart>72 65 71 70 61 72 74</e2nodeComponentRequestPart>
+ <e2nodeComponentResponsePart>72 65 73 70 61 72 74</e2nodeComponentResponsePart>
+ </e2nodeComponentConfiguration>
+ </E2nodeComponentConfigAddition-Item>
+ </value>
+ </ProtocolIE-SingleContainer>
+ <ProtocolIE-SingleContainer>
+ <id>51</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigAddition-Item>
+ <e2nodeComponentInterfaceType><f1/></e2nodeComponentInterfaceType>
+ <e2nodeComponentID>
+ <e2nodeComponentInterfaceTypeF1>
+ <gNB-DU-ID>100</gNB-DU-ID>
+ </e2nodeComponentInterfaceTypeF1>
+ </e2nodeComponentID>
+ <e2nodeComponentConfiguration>
+ <e2nodeComponentRequestPart>72 65 71 70 61 72 74</e2nodeComponentRequestPart>
+ <e2nodeComponentResponsePart>72 65 73 70 61 72 74</e2nodeComponentResponsePart>
+ </e2nodeComponentConfiguration>
+ </E2nodeComponentConfigAddition-Item>
+ </value>
+ </ProtocolIE-SingleContainer>
+ <ProtocolIE-SingleContainer>
+ <id>51</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigAddition-Item>
+ <e2nodeComponentInterfaceType><w1/></e2nodeComponentInterfaceType>
+ <e2nodeComponentID>
+ <e2nodeComponentInterfaceTypeW1>
+ <ng-eNB-DU-ID>121</ng-eNB-DU-ID>
+ </e2nodeComponentInterfaceTypeW1>
+ </e2nodeComponentID>
+ <e2nodeComponentConfiguration>
+ <e2nodeComponentRequestPart>72 65 71 70 61 72 74</e2nodeComponentRequestPart>
+ <e2nodeComponentResponsePart>72 65 73 70 61 72 74</e2nodeComponentResponsePart>
+ </e2nodeComponentConfiguration>
+ </E2nodeComponentConfigAddition-Item>
+ </value>
+ </ProtocolIE-SingleContainer>
+ <ProtocolIE-SingleContainer>
+ <id>51</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigAddition-Item>
+ <e2nodeComponentInterfaceType><s1/></e2nodeComponentInterfaceType>
+ <e2nodeComponentID>
+ <e2nodeComponentInterfaceTypeS1>
+ <mme-name>s1interf</mme-name>
+ </e2nodeComponentInterfaceTypeS1>
+ </e2nodeComponentID>
+ <e2nodeComponentConfiguration>
+ <e2nodeComponentRequestPart>72 65 71 70 61 72 74</e2nodeComponentRequestPart>
+ <e2nodeComponentResponsePart>72 65 73 70 61 72 74</e2nodeComponentResponsePart>
+ </e2nodeComponentConfiguration>
+ </E2nodeComponentConfigAddition-Item>
+ </value>
+ </ProtocolIE-SingleContainer>
+ <ProtocolIE-SingleContainer>
+ <id>51</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigAddition-Item>
+ <e2nodeComponentInterfaceType><x2/></e2nodeComponentInterfaceType>
+ <e2nodeComponentID>
+ <e2nodeComponentInterfaceTypeX2>
+ <global-eNB-ID>x2interf</global-eNB-ID>
+ <global-en-gNB-ID>x2interf</global-en-gNB-ID>
+ </e2nodeComponentInterfaceTypeX2>
+ </e2nodeComponentID>
+ <e2nodeComponentConfiguration>
+ <e2nodeComponentRequestPart>72 65 71 70 61 72 74</e2nodeComponentRequestPart>
+ <e2nodeComponentResponsePart>72 65 73 70 61 72 74</e2nodeComponentResponsePart>
+ </e2nodeComponentConfiguration>
+ </E2nodeComponentConfigAddition-Item>
+ </value>
+ </ProtocolIE-SingleContainer>
+ </E2nodeComponentConfigAddition-List>
+ </value>
+ </E2nodeConfigurationUpdate-IEs>
+ <E2nodeConfigurationUpdate-IEs>
+ <id>33</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigUpdate-List>
+ <ProtocolIE-SingleContainer>
+ <id>34</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigUpdate-Item>
+ <e2nodeComponentInterfaceType><ng/></e2nodeComponentInterfaceType>
+ <e2nodeComponentID>
+ <e2nodeComponentInterfaceTypeNG>
+ <amf-name>nginterf</amf-name>
+ </e2nodeComponentInterfaceTypeNG>
+ </e2nodeComponentID>
+ <e2nodeComponentConfiguration>
+ <e2nodeComponentRequestPart>72 65 71 70 61 72 73</e2nodeComponentRequestPart>
+ <e2nodeComponentResponsePart>72 65 73 70 61 72 73</e2nodeComponentResponsePart>
+ </e2nodeComponentConfiguration>
+ </E2nodeComponentConfigUpdate-Item>
+ </value>
+ </ProtocolIE-SingleContainer>
+ <ProtocolIE-SingleContainer>
+ <id>34</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigUpdate-Item>
+ <e2nodeComponentInterfaceType><xn/></e2nodeComponentInterfaceType>
+ <e2nodeComponentID>
+ <e2nodeComponentInterfaceTypeXn>
+ <global-NG-RAN-Node-ID>xninterf</global-NG-RAN-Node-ID>
+ </e2nodeComponentInterfaceTypeXn>
+ </e2nodeComponentID>
+ <e2nodeComponentConfiguration>
+ <e2nodeComponentRequestPart>72 65 71 70 61 72 74</e2nodeComponentRequestPart>
+ <e2nodeComponentResponsePart>72 65 73 70 61 72 74</e2nodeComponentResponsePart>
+ </e2nodeComponentConfiguration>
+ </E2nodeComponentConfigUpdate-Item>
+ </value>
+ </ProtocolIE-SingleContainer>
+ <ProtocolIE-SingleContainer>
+ <id>34</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigUpdate-Item>
+ <e2nodeComponentInterfaceType><e1/></e2nodeComponentInterfaceType>
+ <e2nodeComponentID>
+ <e2nodeComponentInterfaceTypeE1>
+ <gNB-CU-CP-ID>1234</gNB-CU-CP-ID>
+ </e2nodeComponentInterfaceTypeE1>
+ </e2nodeComponentID>
+ <e2nodeComponentConfiguration>
+ <e2nodeComponentRequestPart>72 65 71 70 61 72 74</e2nodeComponentRequestPart>
+ <e2nodeComponentResponsePart>72 65 73 70 61 72 74</e2nodeComponentResponsePart>
+ </e2nodeComponentConfiguration>
+ </E2nodeComponentConfigUpdate-Item>
+ </value>
+ </ProtocolIE-SingleContainer>
+ <ProtocolIE-SingleContainer>
+ <id>34</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigUpdate-Item>
+ <e2nodeComponentInterfaceType><f1/></e2nodeComponentInterfaceType>
+ <e2nodeComponentID>
+ <e2nodeComponentInterfaceTypeF1>
+ <gNB-DU-ID>2345</gNB-DU-ID>
+ </e2nodeComponentInterfaceTypeF1>
+ </e2nodeComponentID>
+ <e2nodeComponentConfiguration>
+ <e2nodeComponentRequestPart>72 65 71 70 61 72 74</e2nodeComponentRequestPart>
+ <e2nodeComponentResponsePart>72 65 73 70 61 72 74</e2nodeComponentResponsePart>
+ </e2nodeComponentConfiguration>
+ </E2nodeComponentConfigUpdate-Item>
+ </value>
+ </ProtocolIE-SingleContainer>
+ <ProtocolIE-SingleContainer>
+ <id>34</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigUpdate-Item>
+ <e2nodeComponentInterfaceType><w1/></e2nodeComponentInterfaceType>
+ <e2nodeComponentID>
+ <e2nodeComponentInterfaceTypeW1>
+ <ng-eNB-DU-ID>3456</ng-eNB-DU-ID>
+ </e2nodeComponentInterfaceTypeW1>
+ </e2nodeComponentID>
+ <e2nodeComponentConfiguration>
+ <e2nodeComponentRequestPart>72 65 71 70 61 72 74</e2nodeComponentRequestPart>
+ <e2nodeComponentResponsePart>72 65 73 70 61 72 74</e2nodeComponentResponsePart>
+ </e2nodeComponentConfiguration>
+ </E2nodeComponentConfigUpdate-Item>
+ </value>
+ </ProtocolIE-SingleContainer>
+ <ProtocolIE-SingleContainer>
+ <id>34</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigUpdate-Item>
+ <e2nodeComponentInterfaceType><s1/></e2nodeComponentInterfaceType>
+ <e2nodeComponentID>
+ <e2nodeComponentInterfaceTypeS1>
+ <mme-name>s1interf</mme-name>
+ </e2nodeComponentInterfaceTypeS1>
+ </e2nodeComponentID>
+ <e2nodeComponentConfiguration>
+ <e2nodeComponentRequestPart>72 65 71 70 61 72 74</e2nodeComponentRequestPart>
+ <e2nodeComponentResponsePart>72 65 73 70 61 72 74</e2nodeComponentResponsePart>
+ </e2nodeComponentConfiguration>
+ </E2nodeComponentConfigUpdate-Item>
+ </value>
+ </ProtocolIE-SingleContainer>
+ <ProtocolIE-SingleContainer>
+ <id>34</id>
+ <criticality><reject/></criticality>
+ <value>
+ <E2nodeComponentConfigUpdate-Item>
+ <e2nodeComponentInterfaceType><x2/></e2nodeComponentInterfaceType>
+ <e2nodeComponentID>
+ <e2nodeComponentInterfaceTypeX2>
+ <global-eNB-ID>x2interf</global-eNB-ID>
+ <global-en-gNB-ID>x2interf</global-en-gNB-ID>
+ </e2nodeComponentInterfaceTypeX2>
+ </e2nodeComponentID>
+ <e2nodeComponentConfiguration>
+ <e2nodeComponentRequestPart>72 65 71 70 61 72 74</e2nodeComponentRequestPart>
+ <e2nodeComponentResponsePart>72 65 73 70 61 72 74</e2nodeComponentResponsePart>
+ </e2nodeComponentConfiguration>
+ </E2nodeComponentConfigUpdate-Item>
+ </value>
+ </ProtocolIE-SingleContainer>
+ </E2nodeComponentConfigUpdate-List>
+ </value>
+ </E2nodeConfigurationUpdate-IEs>
+ </protocolIEs>
+ </E2nodeConfigurationUpdate>
+ </value>
+ </initiatingMessage>
+</E2AP-PDU>
\ No newline at end of file