2 // Copyright 2020 AT&T Intellectual Property
3 // Copyright 2020 Nokia
4 // Copyright (c) 2022 Samsung Electronics Co., Ltd. All Rights Reserved.
6 // Licensed under the Apache License, Version 2.0 (the "License");
7 // you may not use this file except in compliance with the License.
8 // You may obtain a copy of the License at
10 // http://www.apache.org/licenses/LICENSE-2.0
12 // Unless required by applicable law or agreed to in writing, software
13 // distributed under the License is distributed on an "AS IS" BASIS,
14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 // See the License for the specific language governing permissions and
16 // limitations under the License.
18 // This source code is part of the near-RT RIC (RAN Intelligent Controller)
19 // platform project (RICP).
29 "github.com/stretchr/testify/assert"
33 e2SetupRespGnbSetupRequestXmlPath = "../tests/resources/setupRequest/setupRequest_gnb.xml"
34 e2SetupRespEnGnbSetupRequestXmlPath = "../tests/resources/setupRequest/setupRequest_gnb_without_functions.xml"
35 e2SetupRespGnbSetupRequestIntTypeF1XmlPath = "../tests/resources/setupRequest/setupRequest_gnb_inttype_f1.xml"
36 e2SetupRespGnbSetupRequestIntTypeE1XmlPath = "../tests/resources/setupRequest/setupRequest_gnb_inttype_e1.xml"
37 e2SetupRespGnbSetupRequestIntTypeW1XmlPath = "../tests/resources/setupRequest/setupRequest_gnb_inttype_w1.xml"
38 e2SetupRespGnbSetupRequestIntTypeS1XmlPath = "../tests/resources/setupRequest/setupRequest_gnb_inttype_s1.xml"
39 e2SetupRespGnbSetupRequestIntTypeXngnbXmlPath = "../tests/resources/setupRequest/setupRequest_gnb_inttype_xngnb.xml"
40 e2SetupRespGnbSetupRequestIntTypeXnenbXmlPath = "../tests/resources/setupRequest/setupRequest_gnb_inttype_xnenb.xml"
41 e2SetupRespGnbSetupRequestIntTypeX2gnbXmlPath = "../tests/resources/setupRequest/setupRequest_gnb_inttype_x2gnb.xml"
42 e2SetupRespGnbSetupRequestIntTypeX2enbXmlPath = "../tests/resources/setupRequest/setupRequest_gnb_inttype_x2enb.xml"
45 func getE2SetupRespTestE2SetupRequest(t *testing.T, reqXmlPath string) *models.E2SetupRequestMessage {
46 xmlGnb := utils.ReadXmlFile(t, reqXmlPath)
47 setupRequest := &models.E2SetupRequestMessage{}
48 err := xml.Unmarshal(utils.NormalizeXml(xmlGnb), &setupRequest.E2APPDU)
53 func TestNewE2SetupSuccessResponseMessageSuccess(t *testing.T) {
55 ricNearRtId := "10101010110011001110"
56 setupRequest := getE2SetupRespTestE2SetupRequest(t, e2SetupRespGnbSetupRequestXmlPath)
58 resp := models.NewE2SetupSuccessResponseMessage(plmn, ricNearRtId, setupRequest)
59 respIEs := resp.E2APPDU.Outcome.(models.SuccessfulOutcome).Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs
60 assert.Equal(t, models.GlobalRicID, respIEs[1].ID)
61 assert.Equal(t, plmn, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.PLMNIdentity)
62 assert.Equal(t, ricNearRtId, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.RicID)
63 assert.Equal(t, models.RanFunctionsAcceptedID, respIEs[2].ID)
66 func TestNewE2SetupSuccessResponseMessageWithoutRanFunctionsSuccess(t *testing.T) {
68 ricNearRtId := "10101010110011001110"
69 setupRequest := getE2SetupRespTestE2SetupRequest(t, e2SetupRespEnGnbSetupRequestXmlPath)
71 resp := models.NewE2SetupSuccessResponseMessage(plmn, ricNearRtId, setupRequest)
72 respIEs := resp.E2APPDU.Outcome.(models.SuccessfulOutcome).Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs
73 assert.Equal(t, models.GlobalRicID, respIEs[1].ID)
74 assert.Equal(t, plmn, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.PLMNIdentity)
75 assert.Equal(t, ricNearRtId, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.RicID)
76 assert.Equal(t, 3, len(respIEs))
79 func TestNewE2SetupFailureResponseMessageSuccess(t *testing.T) {
80 waitTime := models.TimeToWaitEnum.V60s
81 cause := models.Cause{Misc: &models.CauseMisc{OmIntervention: &struct{}{}}}
82 setupRequest := getE2SetupRespTestE2SetupRequest(t, e2SetupRespGnbSetupRequestXmlPath)
84 resp := models.NewE2SetupFailureResponseMessage(waitTime, cause, setupRequest)
85 respIEs := resp.E2APPDU.Outcome.(models.UnsuccessfulOutcome).Value.E2setupFailure.ProtocolIEs.E2setupFailureIEs
86 assert.Equal(t, models.CauseID, respIEs[1].ID)
87 assert.Equal(t, cause, respIEs[1].Value.Value.(models.Cause))
90 func TestNewE2SetupSuccessResponseMessageIntTypeF1Success(t *testing.T) {
92 ricNearRtId := "10101010110011001110"
93 setupRequest := getE2SetupRespTestE2SetupRequest(t, e2SetupRespGnbSetupRequestIntTypeF1XmlPath)
95 resp := models.NewE2SetupSuccessResponseMessage(plmn, ricNearRtId, setupRequest)
96 respIEs := resp.E2APPDU.Outcome.(models.SuccessfulOutcome).Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs
97 assert.Equal(t, models.GlobalRicID, respIEs[1].ID)
98 assert.Equal(t, plmn, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.PLMNIdentity)
99 assert.Equal(t, ricNearRtId, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.RicID)
100 assert.Equal(t, models.RanFunctionsAcceptedID, respIEs[2].ID)
103 func TestNewE2SetupSuccessResponseMessageIntTypeS1Success(t *testing.T) {
105 ricNearRtId := "10101010110011001110"
106 setupRequest := getE2SetupRespTestE2SetupRequest(t, e2SetupRespGnbSetupRequestIntTypeS1XmlPath)
108 resp := models.NewE2SetupSuccessResponseMessage(plmn, ricNearRtId, setupRequest)
109 respIEs := resp.E2APPDU.Outcome.(models.SuccessfulOutcome).Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs
110 assert.Equal(t, models.GlobalRicID, respIEs[1].ID)
111 assert.Equal(t, plmn, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.PLMNIdentity)
112 assert.Equal(t, ricNearRtId, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.RicID)
113 assert.Equal(t, models.RanFunctionsAcceptedID, respIEs[2].ID)
116 func TestNewE2SetupSuccessResponseMessageIntTypeE1Success(t *testing.T) {
118 ricNearRtId := "10101010110011001110"
119 setupRequest := getE2SetupRespTestE2SetupRequest(t, e2SetupRespGnbSetupRequestIntTypeE1XmlPath)
121 resp := models.NewE2SetupSuccessResponseMessage(plmn, ricNearRtId, setupRequest)
122 respIEs := resp.E2APPDU.Outcome.(models.SuccessfulOutcome).Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs
123 assert.Equal(t, models.GlobalRicID, respIEs[1].ID)
124 assert.Equal(t, plmn, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.PLMNIdentity)
125 assert.Equal(t, ricNearRtId, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.RicID)
126 assert.Equal(t, models.RanFunctionsAcceptedID, respIEs[2].ID)
129 func TestNewE2SetupSuccessResponseMessageIntTypeW1Success(t *testing.T) {
131 ricNearRtId := "10101010110011001110"
132 setupRequest := getE2SetupRespTestE2SetupRequest(t, e2SetupRespGnbSetupRequestIntTypeW1XmlPath)
134 resp := models.NewE2SetupSuccessResponseMessage(plmn, ricNearRtId, setupRequest)
135 respIEs := resp.E2APPDU.Outcome.(models.SuccessfulOutcome).Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs
136 assert.Equal(t, models.GlobalRicID, respIEs[1].ID)
137 assert.Equal(t, plmn, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.PLMNIdentity)
138 assert.Equal(t, ricNearRtId, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.RicID)
139 assert.Equal(t, models.RanFunctionsAcceptedID, respIEs[2].ID)
142 func TestNewE2SetupSuccessResponseMessageIntTypeXngnbSuccess(t *testing.T) {
144 ricNearRtId := "10101010110011001110"
145 setupRequest := getE2SetupRespTestE2SetupRequest(t, e2SetupRespGnbSetupRequestIntTypeXngnbXmlPath)
147 resp := models.NewE2SetupSuccessResponseMessage(plmn, ricNearRtId, setupRequest)
148 respIEs := resp.E2APPDU.Outcome.(models.SuccessfulOutcome).Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs
149 assert.Equal(t, models.GlobalRicID, respIEs[1].ID)
150 assert.Equal(t, plmn, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.PLMNIdentity)
151 assert.Equal(t, ricNearRtId, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.RicID)
152 assert.Equal(t, models.RanFunctionsAcceptedID, respIEs[2].ID)
155 func TestNewE2SetupSuccessResponseMessageIntTypeXnenbSuccess(t *testing.T) {
157 ricNearRtId := "10101010110011001110"
158 setupRequest := getE2SetupRespTestE2SetupRequest(t, e2SetupRespGnbSetupRequestIntTypeXnenbXmlPath)
160 resp := models.NewE2SetupSuccessResponseMessage(plmn, ricNearRtId, setupRequest)
161 respIEs := resp.E2APPDU.Outcome.(models.SuccessfulOutcome).Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs
162 assert.Equal(t, models.GlobalRicID, respIEs[1].ID)
163 assert.Equal(t, plmn, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.PLMNIdentity)
164 assert.Equal(t, ricNearRtId, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.RicID)
165 assert.Equal(t, models.RanFunctionsAcceptedID, respIEs[2].ID)
168 func TestNewE2SetupSuccessResponseMessageIntTypeX2gnbSuccess(t *testing.T) {
170 ricNearRtId := "10101010110011001110"
171 setupRequest := getE2SetupRespTestE2SetupRequest(t, e2SetupRespGnbSetupRequestIntTypeX2gnbXmlPath)
173 resp := models.NewE2SetupSuccessResponseMessage(plmn, ricNearRtId, setupRequest)
174 respIEs := resp.E2APPDU.Outcome.(models.SuccessfulOutcome).Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs
175 assert.Equal(t, models.GlobalRicID, respIEs[1].ID)
176 assert.Equal(t, plmn, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.PLMNIdentity)
177 assert.Equal(t, ricNearRtId, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.RicID)
178 assert.Equal(t, models.RanFunctionsAcceptedID, respIEs[2].ID)
181 func TestNewE2SetupSuccessResponseMessageIntTypeX2enbSuccess(t *testing.T) {
183 ricNearRtId := "10101010110011001110"
184 setupRequest := getE2SetupRespTestE2SetupRequest(t, e2SetupRespGnbSetupRequestIntTypeX2enbXmlPath)
186 resp := models.NewE2SetupSuccessResponseMessage(plmn, ricNearRtId, setupRequest)
187 respIEs := resp.E2APPDU.Outcome.(models.SuccessfulOutcome).Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs
188 assert.Equal(t, models.GlobalRicID, respIEs[1].ID)
189 assert.Equal(t, plmn, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.PLMNIdentity)
190 assert.Equal(t, ricNearRtId, respIEs[1].Value.(models.GlobalRICID).GlobalRICID.RicID)
191 assert.Equal(t, models.RanFunctionsAcceptedID, respIEs[2].ID)