From a2fefc003db961b717a1809b6f63c4d5ae140baa Mon Sep 17 00:00:00 2001 From: "mark.j.leonard" Date: Wed, 7 Nov 2018 19:13:50 +0000 Subject: [PATCH] Add a CSAR test file containing an InstanceGroup Add a test CSAR file to ensure that the ArtifactGeneratorToscaParser method processInstanceGroup() is covered, prior to refactoring. Change-Id: I277b6721c8a406631d54716aa68b313b1937e5cf Issue-ID: AAI-1884 Signed-off-by: mark.j.leonard --- .../aai/babel/service/CsarToXmlConverterTest.java | 26 +++++++++-- .../java/org/onap/aai/babel/testdata/CsarTest.java | 4 +- .../service_NetworkCollection.csar | Bin 0 -> 32286 bytes .../generatedXml/AAI-ExtVL-resource-40.0.xml | 32 +++++++++++++ .../generatedXml/AAI-TEST CR_1-resource-7.0.xml | 51 +++++++++++++++++++++ .../generatedXml/AAI-TEST SVC_1-service-1.0.xml | 51 +++++++++++++++++++++ ...I-testcr_1..NetworkCollection..0-resource-1.xml | 50 ++++++++++++++++++++ 7 files changed, 208 insertions(+), 6 deletions(-) create mode 100644 src/test/resources/compressedArtifacts/service_NetworkCollection.csar create mode 100644 src/test/resources/generatedXml/AAI-ExtVL-resource-40.0.xml create mode 100644 src/test/resources/generatedXml/AAI-TEST CR_1-resource-7.0.xml create mode 100644 src/test/resources/generatedXml/AAI-TEST SVC_1-service-1.0.xml create mode 100644 src/test/resources/generatedXml/AAI-testcr_1..NetworkCollection..0-resource-1.xml diff --git a/src/test/java/org/onap/aai/babel/service/CsarToXmlConverterTest.java b/src/test/java/org/onap/aai/babel/service/CsarToXmlConverterTest.java index bf970a6..8d10412 100644 --- a/src/test/java/org/onap/aai/babel/service/CsarToXmlConverterTest.java +++ b/src/test/java/org/onap/aai/babel/service/CsarToXmlConverterTest.java @@ -23,6 +23,8 @@ package org.onap.aai.babel.service; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import static org.hamcrest.CoreMatchers.nullValue; import static org.junit.Assert.assertThat; import java.io.IOException; @@ -167,6 +169,16 @@ public class CsarToXmlConverterTest { assertThatGeneratedFilesMatchExpected(createExpectedXmlFiles(filesToLoad), CsarTest.SD_WAN_CSAR_FILE); } + @Test + public void generateXmlFromNetworkCollectionCsar() throws IOException, CsarConverterException { + List filesToLoad = new ArrayList<>(); + filesToLoad.add("AAI-TEST SVC_1-service-1.0.xml"); + filesToLoad.add("AAI-TEST CR_1-resource-7.0.xml"); + filesToLoad.add("AAI-testcr_1..NetworkCollection..0-resource-1.xml"); + filesToLoad.add("AAI-ExtVL-resource-40.0.xml"); + assertThatGeneratedFilesMatchExpected(createExpectedXmlFiles(filesToLoad), CsarTest.NETWORK_COLLECTION_CSAR_FILE); + } + @Test public void generatePortMirrorConfigurationModel() throws CsarConverterException, IOException, XmlArtifactGenerationException { @@ -202,12 +214,16 @@ public class CsarToXmlConverterTest { private void assertThatGeneratedFilesMatchExpected(Map expectedXmlFiles, CsarTest csarFile) throws CsarConverterException, IOException { - List generatedArtifacts = converter.generateXmlFromCsar(csarFile.getContent(), - csarFile.getName(), SERVICE_VERSION); + List generatedArtifacts = + converter.generateXmlFromCsar(csarFile.getContent(), csarFile.getName(), SERVICE_VERSION); assertThat("Incorrect number of files generated", // generatedArtifacts.size(), is(equalTo(expectedXmlFiles.size()))); - generatedArtifacts - .forEach(ga -> assertThat("The content of " + ga.getName() + " must match the expected content", - ga.getPayload(), matches(expectedXmlFiles.get(ga.getName())))); + for (BabelArtifact generated : generatedArtifacts) { + String fileName = generated.getName(); + String expectedXml = expectedXmlFiles.get(fileName); + assertThat("Missing expected content for " + generated.getName(), expectedXml, is(not(nullValue()))); + assertThat("The content of " + generated.getName() + " must match the expected content", + generated.getPayload(), matches(expectedXml)); + } } } diff --git a/src/test/java/org/onap/aai/babel/testdata/CsarTest.java b/src/test/java/org/onap/aai/babel/testdata/CsarTest.java index d922e8e..0def88b 100644 --- a/src/test/java/org/onap/aai/babel/testdata/CsarTest.java +++ b/src/test/java/org/onap/aai/babel/testdata/CsarTest.java @@ -42,7 +42,9 @@ public enum CsarTest { MISSING_METADATA_CSAR("service-MissingMetadataTest.csar"), NO_YAML_FILES("noYmlFilesArchive.zip"), PORT_MIRROR_CSAR("service_PortMirror.csar"), - MULTIPLE_VNF_CSAR("catalog_csar_too_many_vnfConfigurations.csar"); + MULTIPLE_VNF_CSAR("catalog_csar_too_many_vnfConfigurations.csar"), + NETWORK_COLLECTION_CSAR_FILE("service_NetworkCollection.csar"); + // @formatter:on private String filename; diff --git a/src/test/resources/compressedArtifacts/service_NetworkCollection.csar b/src/test/resources/compressedArtifacts/service_NetworkCollection.csar new file mode 100644 index 0000000000000000000000000000000000000000..7a1189966cae1e939d1eb26bdb3ac4091eb728bb GIT binary patch literal 32286 zcmaI6Q;aUa+O6BRZQHi(o^9K9&$ey%*S2Qcwr$(Cz1Q0N=HyS#Ur8mEN~P-NsWI~A z9e-p&!O(!9prC-@q8{Xc{yziyKWh^gBWDIXGgl*6cc&Hjdqj8lrDu71=_R+xDd}Z+ zS$dk8so6$lrX|)rm@ryLY5B>iNjl&OG}07Jpj05BKeCWewYhm*?Ekq*>_79*|L!f0e~@8D|mf7cA2cDBCBllGfTNaC*_QGwl7z>@YIt{V0P<#S6A zbd*~ zH)Eb=Y(Db6ePu)de9^|)-6113epjv_4!Ca0`acBL%P4a$(rLn0RPq)&p&evcXo4eb zlF6!c1aTNAeN@(H-Ki?y`jBJex=r`qrY)7n&RAh+q;}T2jkc5}20Nyh8d+Z#auJ7F zI@?LFduM-ZvzNTEfUAL0J&>j_Aej*AoXD6tfIS?eQtdJJ%#2F6NC)lE?i2UZ*5=yJq_fO4#Qo9M>_zQiJ@D~)k%)iFSv zURHkEb%YiS0lhR*aV7QI%m=s^j; zMI5K5>6%-hNnr}Vl3MGH!U)Wx9VCJh%4Ko-{-J__N99>rB^uIN&{`+s;c^*zCsqt( zbesJv3c~M$Rg4O2jxdp#PU>3j)mk)jThl}92x0f(J9(yXux4)UyEg*SQbo3Gbcp5H zFyRaMzqo}}XNyvR009Am{cpHo|4-bUU9HTGOk7?53tP9kyaO&bT=%I4(v6V`QI72^ zfWO^9(?rJtxs%$9sJD4aNCQw-bz{1+pyWz?_uU>)_XG>>QG<>JA)cNdeU zfIfRyFY^kUVRy=)OPkJsAN;`eB!?Xj#Pes#DqfqDzXBsbrWshS=;es7BFAE_5Vg;{ zwy32O7RDa;b%M1}l}D_WQ;*NcCM3Kt9=|WWfh~jHswaEyaoxG6ODN{`aoJ$?R{hD( z-Gx=B>ZCT!)mN0U29xo$^8FbkPk+(&KJX`(QC}Y^n6`L-wi@#bs3KIdCZvh{5jvoH zGC*XqWak3KZC$U-U5@wf=uRP?^*Sey6esAOT7nOtqpss)yNPLb6-UOn0=$3_z7fKXNPTbf}wh z8%cvuvT7$stxiJm1w&={CnwVNW}mlY`T1cu##|Iko0tXP@E|0rIEFZ#Yib7MsqBp7dJ)LrL#lSfF;qGy;TG zMFYQllWFc;&x#qntB`h$S{_fB_q)<{aVr)kdrG?_`Y%OlEYq2ffy+UEBMV6}@3l$U z6dE%=7j;f7c7Vlr>^u{Mit(PoGav%#9^4gv8EH;nIIw!hjYa;nWA7k{!ZEVzddif? zOPb!Qkb|nB(TeJ<$j!S+@*RIP1(S64hxp=@gf1}eNsCXTzz^=TY}Bs{G%38nzlDMt zUP_e1q=21@1&-s%g!D6R(&?Rpq#~wi^*F~SvRUL ztgn+E<{AC!V)k{n;1&*_#eI`GRhhSX=8!vaiKhA&l$ZR%o^E-dgLwOROLXGLA9V3pQjYHmg{xWu0 z_n-i^Wm)O-yPVW~cu2g>I!0UA7n+eF`o$1)8$q@*i6YC^;9>4s49o!a1+eHp@wIzO zo9toxLMo}9AIg(CfkNXH^{U*`iDyuX##BmBwhpCLhNUEKQ>L94OH%9j_KvC;l9^Cm zCknRE^NTffwD#dJykq$e#uV$YYU*|&MAV2-cp4XdpxU{E0uk|LL4Xuc?8u4A`uWBB zu{QDp|1ol!_~FwGDe$I`9UbkanuI?X$MnOI#5?frpy6|!jF^e}WZy?ze2Qo?(0N>- zQ$7V5`vm!~uK9P5jwSv_({SMaH(kT~AG&5@gow&qmmn>?0SpR8MAMeoL z)$Ij~I8{bc3QR_l5A(zd&PgKhlRWLZ7x@n$4cyC3xR;}KN0H_A`13cVE)6=w6kfzy z$~cNd6V7FXdQKxx0tWzO5Qc0a_J*b|C#b`ofdnb;Gb=WhLD81E_W|XfmA(o*ui@ZS z{ry_)(B>nM+Y<#DM8U3 zDmfWl3f#1SYR1Y6s1|Kej*bUuvRxlpTuG+SxO$Cl9^K~n?r!cF+>()GFP1m(=LmkQ zJ^80Nn5E~r%pfdY-12r!BE2Tv()IwSrRB|3zTitZ?hCU7(`;$On>35Q7tWphHrs?2Ds#wrq$e74(Itxs18 z_Mu!Ye|H>}f=I_EwK-O7PJPOT955K$3wm_ZGOM`Q;(qaE&;a-xeMmoADDXaBF}rGq zrNkVLPV}8~xv^|hQj$@(vxd!6aY7VG&^nTb`KTT0hL;j3_FQAAYYEf5(6Un!5DEEx z?zCnHst{ShsigEh?}cdAR$-A%NB%#oY0x8#laSFStk?UEW)Y?ivI86@!-&#}l8 z#HOaEPaN|Ggt)IHRMfnX0&$k-vOO-M8+$Ym%)f~tHYqof?+ScrLE`)za7w4{aWEGXq20dL*h>GW!egT11Yv#nYU)MD$ zh%^#e3(ax(ldOVmuCr)%W7Z))biB?xJ1A&nE$EBQ4cFV|}X8@yga&3`^i~qbA zZ%Y_$6Nhfg@fPpf%3-B^sfAvn9-GVWg=s%mEDGmcfugm=OXH8myc&&Nqla7oOR1pj zhw=m2mRm7Kzqd*2@G}9xgIfSjrvnZ%x@<(7tCV`3rxPFJvE(uJ09kPlm7XgerM*9) znlV)u6KtfYyCembY5$R|PA*ua1D4~KXj3l4DjO}#Jp|>vPW2?QOaM-PwJn`GJ%Rt= zN)bD`{2Yz(%b7#5cj?^$Evx6ox7<-f>0hGot6+NS~f>~^| zC#T@~oR--^3;&G5XrO+J@&1(HIMa2HRT^W7FB5pV$K~JkR4ilhhA*mB;P&*3YQb#~ z$4o4~@Mw>xtMkpe@VauM`&Iawck6N82=58mp_rv<3@+xb^AOK4eSH?rz`61W`H!x_ z>C4DZFY-jfP^rNkY_WX3uaJx0bF7H*%{+#i!aFMvLKiE3ApW)?li~`->ZeMV=Wn;1 z7*;IVDg3P5Z&`FCGEK{044cJeDGWRp*1`2Wsha}AD|vTJmS@$(v-G+~iTvJ_L_z6h z5*n@-@*eSn#b92?Lje8I{Vr~cT*5A}gtv^8@c2-V0#hJ53E6Rw%?6U$F4)4soY>Q; z-~5CJYzn4l)J#R;fFKQTJFYEEbsf?bB>gA+KlToyRdDt6clQ>wN8_e<4jno^h1dZ4 z>1=uwaSq#KIfRd)6a}cfV)5rBl1{5{fnL;>T~%YU-4pSIl3F2sPnS(u^G{M!7}Lin zhrM_gH~Rv+$7ef(^#52Ftd-_q)J2oo$cHs&6QmczR(ujE+25jKE!$6cg7rSaBlI#i zb9ffTDO31`vr2b?tV+TW%;Z%>=6?e9usN$zJ_!Q*m|tyKlhXsuPiqG^eCOXW@hy=2 z^V8f~nejojnzsCpf*=YXUh}!IG(tGNt}R91kpDH~!G7B>QAi-5V3PmMjM4sw8Jilp z8vVDv*ygu!+2l&vJ=Mr(QA;nTQ8Km|A$0cEDQQl|Sssa7c`>!VJc$BNP6&Y(cYaT( zZtwi{+xAGve*=?VA3qjFNfauYKeKn`#F-}ae@pZ^V1PwANu;~elv{u&eT?Y1i}!kr z@-cE67!1gs*-64&+sp8JzB=v&4eTdgZz+*)V^g;;8qM$VToAHIU?_5L20uiV00A~txQyR&g@tEH+z$5Q} z0?PO_dr73*WNxjdfTBi|*-rjyX&0tRAX3k@0X@;T{kQp-=IANZkSFv`Oo8sSS;`O;o4IR)cI^`KF9!Q%h zGfg2{0os=C*PiAL`$#IROLhlyGj7-9~{dWR%}l+^zir z#luzXs_#1e#*p9fiw+z+1g~Nrn{|`Wq-l`9yW7`Dhc0uFbW+^U^e2*1XyHV%)ai0H zxy1#zA0M1>;Cef>5R-(~_)oc2<#|lceDJ*uLQwLOe-lJA-_N~K=E>R-O=iL7HeP8r zDZ}9d+<1^k!6Hy^bHH4$(lEYl!hx;{brcEFUg0dUnYKvblondrY4Eu8hu9 zpcK3|Q(`a3c=?>OA3VbFk>zvTbX}rGI)G^Zfl@T}I0}4Iu?y za?Qtz>NQI2iG5NdC!hmC_H#k~El!;GvZkVCdgTp+h;S5vNG~d#UL&DgBq4ro82WT!Ov0cAoYK-Z~fIaF!g8O07>%v`8 zC0g1HIYGW3q;bda9j;G$2s>1@+X`}+)iMI>O6Gbci^|td9-!xa=+@jtd#6bniFac0 z)TJFZ4Mo*aOO1o4!i`Uo3m0sdLDNc{u%_%o+TaYP+EKXrkVu6LqYT$Z=E#o_%%9LH zBvlRuvUtN30F>r%2qXs4<%;tJ03!JDxKS$!UnDz#(Ov@uc~(OJM2@-^JSYQ$>zzUn z(Q8&h$g40(E;UW;9vIvv_s&T5SPRSy+Z`nmig`Q-%s#F2{p34JkvmE@<&ij%Vb7BX z$&NdT4i;}I^io&&)yxyafo*5k_=I``?<6)5FJkEtkPBQz53hGD(mKr}?(X}ELO3I8 zp7Lt8pIrF#mzRQm#5FyIi$geGRvmrB$mDG@21s47@aD>$oK`zOP_7~2@SYklJ_>e| z`}fq~w>DHpL+cIuqBv9epB4m~O?OJ0D-4dU%*)KhfN7oEJP|iZqq0xc zW+6i@<~4(IrDph;4WVu#WP6VRk2nNvZ2#$SQO zUS3l1Sdc~@SEVpIqBSkrpFNG>^J+HzD1ESw>c!Y6!{Q+vFBteB;Nd&|^V`yt&80dp9BUNi@$3n9RHm zdj>`z97(g=FQoYjvipSl@QIEIF>LY`of#4N`6D;NP)(C0A}$yhA*YdBz<1o2#y&WF z2T`Y)0Zg`sm(w02*&`ja##u0Z_=tQ{IBVcrKVtB!@Vrr_6OJ9QjeU!S<%N(Y7WUng z!DzS2+Hp1BOr=?A1mH$pC0?%|zh~WR_V`hP9|Wn(*$gXJMAoZRe1wUd$6?H0F(Unb z%84$ucE5Ge+jQ^&Epn^GGAu-4T+;#%kSFwo$e)!>g*#}8ZxASC5?|GX;HEZu_7fCf|n$tWlY`}TZ*&O8D6Mfkb+|W}=kp!tB)w-{VpHm+|ojwR4hEPGo z?Ev+5I2U|7&Hz62`_;=(YdQU)sdNlT35VOHImq4HlEOmlZSW|Zr=fit%hkz;zMfzX zrux6s@iuTEpe@u>Ky>_u{WVYCkRh9CS!l$k>S4gTNa%vA^G+wM`#5y4!4?SvD3C2A zxn=}z(BM1nQ`C*dbs68nQ&i)lwm6$c_hZLgLAt#Rs~Lg^5h~adP!*AH^|Y3TMrS)? zZW!IUBbL{OMs~PQvR7OYPGbVWr^n!pNN=GfGyV0QAPx6WH3E@h7kafu@^S9y2#jxfXs!j#G{G}{Ers-{d z0W1vInP_3g_8S;xsFXAR!ZaQS@@TsrBXny%dJ~s>)81lEvc{)V8md&&MUPRr0=fMJ z1=IlX6VP?Ck*LjwiQo`fRuGIgFGTW)dx6pkVb*y28~Y6jLfP3KFTSFamLwx z7b143Y~+i>nqRB7#H8+!|LPppV1yDSN+bDp$?5 zPS?NNkpc+oQ$~NhMJA)5icnL>pDi9l8wi5;aYvc-txNburcl}|JBpAW{%N>VfgkKt z$ftqD=<$H%B*;|3X-!1DPc6Z330wjx&O?-kX@}l5UF0thNj31+r7plx#!=_J$H#9e zW*k2+STnIhN|JR!sF02ZS=BB|uX8+DS)cly7&&fXEl2?GQevRFzCQ^r36#=%LkMiWpea#>$D7iJW`rUW%Nm@k)(F{`}0MI>YOHm3m z14;;Pc0)|@Wa6HHa`swnr1Y1Y#S~rNPxz5qYRH(K~FN*0()$vy}J~H}(@a9#93$gm3mVOaBC9^428dl!QWHW-FEH1FMBTqzEJ;_$0JOO{yC7o3pS;=ChIazei1I5WFOTD4W%r~DPnu&1%Y^QR=O z{Q&7GWEvu}-WMIcuLAIFHp?r?KhigAHt+Fc)k%muq)32&MEp3~H%v&sm;8E+EB#^jneAg+({t0P}~9 z0x9JqoPx4-Iv(^M5KdwB4grs`+lm(XZVl_nF%g)&C6e!0}`M>+!hZ9hT(1ad0+l=~P7`kr4(KB(+;N7}J#XQin}i zmcI01Hd{&fd6-%voYSg*YKhiVM1BbqnNML< zFgYtT{n=Z3t?lpXt3R^$w*f877It4&G)SRTpiTS4+pe~|gU&j{!^6tD#%v$*#|$OxQ%g1yCqUlHFDsUI z#>C>Gu{4EFxRgV}aPHA!jiZcC9l9n)VAte_QGK>S4~c=mbnV<&DoBQdfq;5* z_gE#aRMg2i>c$-vp{#M}bWcWg_uaRiR461@Bv^g$222}O=uuH?eU>Ph2& zwmJXKY;dWhV3m$avCo#!FRTj@MFh#_2M3;^pzK>`0-?$?^pdB`i?%)h{MAut7hJ9*{GQRmw|lSpvbxft9rVX91h{|$5r|Bsp;jsbE8af znV-Kp)Z1%=ehBt{dk|g2{ARf}-G!_e7J{2f;f^g?RUdTauXepcR-tJ@{X<(H{^Ot_ z{7e~8aqZrCRH%Sjy_gmQ9R%pqp-rxJuxmxXb*c}!b+iSolZ`gj=Wbp%Kd`_XBJ|HS zt%svAAD3r^IfT8|u!`Wyf{g0Fc!iG0-Y)HIOtAsjy$fU8L6(S@X!Ak}qDsx?!K8me zs$>NLeh)Byxd*cr2d@^0xrA!*%1&M)894e@>+f<_^QK3hCn<5xR+qi?y_ znh5t>d4y+SU&#ZfegMz#*BKf8<^6AW=d}AdfA;VF#3EV{!sIuDG>sz%XFP1jA+Eiz-IHizaJU9cn?Ott(1Qbh zvn%ahEU44tM}nl6;j(_@gFs%ON*Q>~;k-<{@HIF=CFTGc-T+X*;0sg~C!A%sSzE12 z2Lr#fjG_$do|yy^D-uTBpPgE=y7Ut{FL2clq+7!?k~QkY{L7(;#R~p2A8K)J)$25} z8@7ldlaMs;(SuU$<4NdG*zlsU@jHYa}BAq_^}ApR>ZD(cDY7AHt~Jm#E z3rEr=s*F)vO$`D{SA6&Z_E103FK$;!jkG-N+1O=x5O@29%T+O6gtmsZVlFz}SZeVc z=KSE&K!lE7^K`W6$iu|W&xs&D;6byyu4{!Djyrf1ma%7azW-21P`5&Co zB_B_FcOMbeY9Sk!kLUg4lo)bZD3;ApmT_6*#fyx@C$W{pnQ67;q}|*(s{ybq!QJna+aHsP%TvtZJlY>SM=O57To=KOq-)_pNW}`dy z?IC_9OUk=MgO0Jg#VcVZ@FvL&Ng*t{@XYT23ZPUNcUUEydtxO2M!Es?Y& z1v1Rr-+&_5{uZ8k_Hxo$4!ry?7{NbrxFYwF_oR18I34QF#rOW>E$_;R<~d)v4*rk% zp;8o0NE*zYlWH@7Ly)Ns{9N{Vk-P2!WAp>21k+e#8ye# z-b+wJ3hO>VeAO$Ah@y}YPH<-yi%}-LS#eiYb)^!G;ggIc(+6)2VaM_UV%Sub@q0yJ zjSMZt95wl92yRBUe&0Dc!JxWcPQhtGWQ`~%E~Ay@Mw}Hm{JG$?IWA^O-FEE7+4s3B zxNntBKO2O3b)-u4YUlYK3refRjusp1tk^Yi%wM=5(>=BU?Uo(byN1nu&>Re!Z$3(0 z?rF6@9f)?5mn16<4N23?-z@Z1Wfpku_)`rJZDBJ%Ry`EQ9XRqw4(h?=^$UBu@{m7z z*gkr=j)@>u6z!mg&m5GOhQtr&1b`xo_xTDI&esa z=}gk%?2RqbxP*LI=5~Wp+iGN=q}@riyLm%KyI1n2L{@=ATwQ0Kuw3?#KVe7cH4e@&4O z!T)wAL_Ww#bg_Vd>>B>J?gYmF=uTKTJGeRi-;ltt#;yYnHa zNR)*_8)?Qr|8^!Pt`H2DZ5-?vLl(d9IZbW{K!mNlD&oR9Y~n3?-k)Q?udcAW(y^_> zxm9^2Vf`ZKXvHOdmw8W_#4n5I?`$4m`78nzx|cogd9Bs}FfjGNc6_P`(xI+Q=`g^z zEOh)*@EO!H7-R+ut6lVv19|+U>vuX{2JVcEtCwyh zAR9w#!zEEkHxJ)+f>^PTm?2!*@5SgmkQlvc3rV$&@DWKsX2udsshYv{L>L%Wv$zml zEeo>UT#yzge)M!nX}UZP$5jvB^VWNbi*~?K>2q`Eu|`}seOWsmTmqE%dEv=_IrAv) z+W&fQ;>w2wGjDB){F=M6XTv#2Jh{Pl&ttxsaCPuN7HcMAchS-xQYIuFMsP#g#k4^h z+LI7z7*m|GkoGP6_pF&lLthsqd~GR~eYYTkBOU?#vaCdn7fV63Q`U2u{w@C*e@Yr2kCGv{Ig zJG*A2mLN`0f|)q8-n{P7Pxgl(1pk4Nix}U>5GSnGRl=&G4&tcb-)J8zl>Uk3f2XtE z@j*r6(fUlhIzqK`mP^StX&FbOnC9k@FiQiVuse%$63{8V9pQhA2Cc7-U`iyH!IgPm z-PQN@qtoEIC!#Ai^QdSAfnJtOr3s0TrD7}7!NiEf(LJGEK6ZTU&%om-V!w;gFs4s&;!686U^LL=SmD$ps=bUn!XiJr#bxErUQFL zd8vi}8{##91~+gTT%^2f9p=_PGD1CI>h6hfGS^Td2O^|7aT=2 zsINFf;dNK}HJWl6uR(EX(>Vq!M=ld2!<@hbI)$||WAwj(>Vq>W-Zyw8r`O$ptMpxF z6sOl5sR2GznrXR`@8mTH%GCNL3?fZKJji^#VGT3GlEpGD1L zJkQMZ$)Ju5Etx*HJ_<7rgcl@Y(Rps&XvG`wrgP=83W5ZLruE07Mm-QvsMU-=Mb z8OXD&$q#wi;}6o7I)xoXz7$&(W%{D+e9bEgz26F0L#bM6(GWYO@%eFK=4+bxCH3nm zGJ0=%VER3`lf3g+dRch}vmNKe@l7_l;n0}Bk(NfoO5LooZk96sap_MNThFg|uVx@4 zht(T=N;pB=jjj~kvOA$JIbiZwyTTRxWc9IMC~g^B_q$R8W@vNx=kfT%fMZ`4U-H~j zc0mi8{T0-r_np+41n2CIpPpH9SMoci%AaBu{B*DCa|r0 zAdt_WsFRn=tz(b;hBjFU6H8;*%!(Ba(+hPI)K*4Hb?Tvlxk6}M)gC+Edu7uN^qdP0 z?OveLD$O@rFBD;vHisgyazJw^kf}lNhb^$}%+q!R0FbO1RHVnPvU1Ql62Bfy_{O^q zu`NNSA3dBGc8K<~_!{?-GCKmW8_tl-pP2u3h_rwk`yFr~AXL=<%^`69heKG|yP7%w zCnfv;qGYj2!VXzNNTIhs=%k+uG6?owu8M3+KiwC(C)3BqENp*plgZA zx>Mj`o{!hwpwa6f1X4xNnnE@(PkoXhYt;0uDi+ZG^NE@EadhZ_ls;45nMmMMINE>clJtj^c-jwTbAQ4gP!LxcTKyQSywp(uhliR$11?A94$*vj6D-lf*#!jwQ-Amv?@FoRQ z#b+RkJ)8%e(EkT5_70~150q=) zP3J?YhP6*0@nQS5MPCtP1LJPQYe%lNj;S-eZ3)#%llZ|vpnj4_JEXon5ovE9k{3=q zBmbzu-v+@w14r}!l%!j*WaLUg1m>A!{}M7%Q(GsdJ`NTA$xdrTzX3B+7qgaPN#x{* zbMAZo2kD^Bl0|FqJ`bKxiCu$`KSX{XgP*@}tb7pETI=ych$u-TXr+!OEPwfB&Voe; zL)rwKg4E91TW#nUCpR0Dq1!u%B{kAVEm|!!((lewViq6a@Q*^Ku;$;Oo&7NN{eTvLP(ty4 zKTnvt8Y1AY;d?8?C%@TpPtx>pH{33*fmBg`PramM3$kcnB)M=JOS2#AeGJBKP8v-Z zcnazD57`|qdhE;fZRR(vhw>){b97pDHJ>grd=~e9p@2epk-`EOLIw*&Bp!Of0H*tP zChrYs?Yrzj($(@$^rhB1ht1g3mutK=$v4CC??m&a3% z6`=f~gA3p*x^#un&4P!*ql_hi;TnCX3qLA)xOGT3sO`}s$iuVP1qRO^gGcQNsaq@4 zHzaLL{%f&%3;yT#?ejM#G5r2Dp*!V`tsSwDFaY|-Vz*2Ir0%Eq59mC40Nw=rh<Y-@~W}wh39}=mPh%Z_$ z6x@w>3Ztzx4yDsIh9-nlI=my=TRApb{%XtVOcj?DsbnIQb7->~xM3;BVCBUnd`PH6 zt>xrGn&lZd>>4@&E-m{OU3lGP=5j4O>cI}_jRm*ErgEf~u%~3{nJHdmaO5?Y@C79v zclP%iZM_BU93B(mW)r>Ks?*?7uu?rG+Z@iW0r`k4gk7S68HYH*hcXHa#KX0QhhUE0 zdo!;TLxXte9osx5yEo~ei7P0Zi$--;u{Mpp)8HT|0gerRn8HvIdA2%ndDP72wn7Mf zdLY377H>fse^vqa%2<)Eg}ayP+46!YE$>thaFj&6I$YSz#7y2|WI#+G*uK;hSI5z> z;Nz(>Kg^`MucL?6L*SI&quNXvH=&1OqiUeCamAcc>4u{C?OfoLb~ay-p|)KU|GmS-2P>d@P-xuNz({QP zNB!LpG>4$mpZ3xfjGITU9~fuU zFukVy_=Oe5WEbI(9FW#MqQP91W7mLSlYcFhTDW`e3L+uVdAqEqk`EY9)rR~VsD-mF zVd?V=rh_rYI`dt?ay=q$QGt02!b|Z)TtCNaxfdtH05vE8F|?Q=j~)Enn6p#?bKwLU z)MSyOK!``Z=c@7zf~i-h`Bvvbc}vV!S>D{ z6hq~>m+6-4lN&=hARnpR3B+Tn(aiTQc}Ro5ShPOmaTv}(2xcwrScO#Bh1m21saIDT(YltyUp>SCQ`6AouX(h#0ohmOxS z$zfabdEYBjDr{4^7{hC7d;=ver5}ok%#cWng^ZpB@nny?YPyv4wldg!6<&K)YadJM z&^~(9g$d$G`rc?-wz-O1g&(|Xq%GkKV&j;X5=9nBi(x!8jVO2KjJ?qa%=C8Z;ZgyM zjEg1$rYo2bG!6hHK$IJ3nRr2~;bgf)KJPWzqGY52lF(v2--)4lyX4rBD7%#W(C#Lg@g`#e{3o@pM4g<8Eg z2_rT>lqAT`-O=6nN*5{uQMJPf;E#nXXl`T1MLrS;V2~$Sc>e<=#;!4%_m^8 zas%}=o**12hc_|F3qJfd7w7?=LvFa30HN0#f%uy(D&YO?zNRoA1B*v#2bLxcb+OZY zl0G!5gIEivD3m`dr&nG+z*9VBTO<^t@7#LcFa1ZG&(F)#)y`+Tc&n>QGjMu-aBCil9Nmrj_D2ru=UU7uigQ6V%DTkZDe9 z4V)0{s)`xg>W>O?=o-)&gFk0zedYQO?hPaL{0YQpOX(u`!O=y^ujz)18MAQnGA~=a zsfK>7jk)tu{449TAu6H8ZMTXSO9*=UAvy1a6WbW*=}jn?|NMcv%X{3wXQQ}3w8p86 z;mM#FbWhBtlWiIt_nM?qslO*PR0~n5aQMVmV114u+sitG`A^rFobJ})DgvZt$)kDMi0SC)J_a9PwQ zz!HT^c)ZMJ1I`)F8*RsovaiiA%_)Yt)NiT$V1?U2h+VAw!6x|DlScBzP=eXrX3DY@ zy6NYvuVogHM7D zioi^z5|Sc^BfBLH1c`)*7@JB==Rl^ke3iiM9ZpC^)7l0Z+)5J)PBoLj8O(?j4Yf>U z*lzgoUo4ml%Q#sCLtQkn7R${eXzziIty$TMdWIUzm=xL2+*g3^eglbdX#peiUq66A z$IQviw2h^|rgW5_LEbNVN2Q*RjoO=;Z z@kL28K)g_9jc)T`h%3k30Vnnyx8@$4f4x3B{xdoUK018{5Vu?c7>1H|r; zJ#5Y9*;p9i0$!Y5X8FDGm+Wn-MqcNIJXxK8HokwYwsjQQ5|LESXj*>MIrw1C(I z+IjhD>Xcu#lX;wo0*1j@7(K*n9#ec(8WAil_1cus#D+zOVi7LiH?Vk9aMLUnn8H5hP9)F>a7woJnu@NW`La}UB%+I)}Y7oeildL5%uyf zQd;Mc=>#-L4dscto36F<6#FoCTDvYYi59t$KlK%cJ3n$Q1x%D-V%YLlW z?tTE3mn2Lox~%qSA%CM7l{^w73+Qt6@D79#i(Zyd973@EVmLw4n2kzy}Z4v z!gB%dIxC8TKQxdr{%8(belsAxqealZ|XP{0U$41zc zjUa%zr}hC?VWtUni0$hWcfzNIQDv~Sc(0#bEHXOgAOE(c7_dOWMdowqpk$I5uJ7U^EJ%I;7QkBBxg>kL%M{bWU`GKbeuTrYx<*~MrM>^eC!0ddB zxv@?j<~_++JwrjRHu|^mp|i&s%CT$#Eik!p$ee{xt@uN*qXqR8F&JfPJ}t(|PvEGb zy^54`dD5_tpM%d7(WZi(*l1!!+;~sdnIl{_kfY{h55I4}6_ z&~V7*s0&7S8CzbZj{v~o-Mn@Ja!@LO4Z!#}sTq_{o1bcYD;2;!q^=razLVi-%`4b9 zzRR#r%l|KEl7+TYF|~LH3oYiG1NjcXUm!bC-PIBPr))gU>EaTO(U(FeWv!}PYQbUpaU!IUH2%?kpkd(a$_Du>%G@$ia4%c z!ut%x5WuqvNpIdltq)&TZ&LG%O$(%BEURxAvJ{Jpc3H{`>3U7~9FQ%WGs9yzzZ9Ap zK`@T^;ZdFmw4OWAGembZtzAd*CVLV3^%R61@?O~{C4|wMx2_p+dp&2p4ij^4)`pTR zD1^&$8PV+4lBX0;fu^}8Q@301z_|uy@dFqAxBo?3c?C-h+2)=_svA4A*=Gb>;K-t) z{*KAk;5{m7zLPq+R!FL?3#ka=f zd$u00-pQ?wJh@})eZo%brgN88f)R}*@$=+PCmdWY=1b`XhpJs>(fdG7%y25dbzB2O z(xAry8D(T()otAJ51yNX0@;LA8=7#wAvw%#pr(kapGLKUXzsK@@qCVWLG>s>9f~ZT z<1A73*wPtwB;m$ze9HC-hBe(${RvvhS>lC1e~--a60N$gdeWCI?`b8@yesN@pll0f z6QK3}`Ybni_!jBmxOjZ&bQ_&Pgg?QQg5)3r)w@A^NLy#;g}%aScBw3wNhsl{xI zWid0e#ms0iGc#MvXfZQ0Gqc6~P)daMNRl5YO` z1QaT#y#tQi#KR_u(*jks4_v(@48bBtkE$!#%qMM&wPw+f#DRNx9_4FBfH3$2^w*X+4O_UG$Z6(|Ndu)ig&@f@0XH zePovM+riSed>0O~G6HzQw-Sm`i=d0h#`^|o2j!FM~SVSP^ z7@qS^v@66JEZ>(chZ%`V9>t~zR-kZY3Jn#U$Yt`|x+g^MYkWoa-orYx?h+~#&(rEB zW>%x0F7#gp>>2T-Rhv&#RhW9*@XM)nD_|4@fauqGK>>cRO{&I`GS*Fvv7idlo-rjR zXDyMop%Cm=a4Y82wTegyg=vs2f+9^nQ1LaFn$+n z?)T|DK&n-fNS6$h$W9&?PmxLEs=DMuQJ(766Qj4@&-Z7aEc^{2&pm5T(r1H{Zj5x1 zUBeruV($hgTSkc?1tfuMUB7qmrQQdE;_4xceyM|T|4Kh~4*TF9B9{!bldZQoA;baH zJ0I1B=V9e+j{a_NZ0Pp!;jkAw%bVccDEBqLRi5E_ou?6-%yU%u z6~!^gpc*j3`u#OI$e@!bnkGu@#Cyjz;XSr%-lIdau z;+|!d8ihLz>&Oq>kt|`Luq?mN;@|VMaT^N*lC4xqvpo>_QJ6GJzc2daYaGWoj(nPf zzHG>(HfDJ4ALam(RE2 zZJ00+3~Pxwt^-b$;@;cF{tt}-0uQ{Erq-luA`y-y(5|DnkK^SIpOU<6jz%Wo>0dXe z5&rq)**Egn?;(Ew(aANw^tjeW5gV2QnHi_PyBI`Xol0aw{dBoUry+OM7X* z_J)GQs)+@Q+3XHRSy59OABPS8yqz44%kvg+b6)kvNq`GGoVlaZN@-!e%yhI1%^*lM zczc`N+Rps0`@+#vgo9v(IOe)~qE#ckNx?NNe3Gj#!~4nHlp_g>JqmY`tRQQ$fFG5i z_-Gd@wqy=lENtPVE;L-B?DdNum13yIR8W4~@Q&$Ss0zjcskGp#uy`?bl3IYX2tVi3{7%NZ;FA6}psV)B><(EZbAchUPEmY` z#HJ4^rhSws0NArirRtVn!H-QqAT$VmaCrcG?{E@sJ_{PyG(`3ktX#2-$Bhh5w9@&< z^1#s0*xJ%m$lV&lfr`$+fmZPj?|u+nwbNwxCP56hzi^@>27s^V zNqt7qEXgyXS3HU9R7cNB^)<#u27ce}+M4hSzBwH*_0`$e+z`m?*!JV2z9`2F#F?vH zJ9g_LKS7SEXg6)Z*qJydxHWm#bECcBkHP}cYGpyuM58o_rxSui;5;iaq4yhY*MK-tx%q$)94VgveTdQ~N z=8WwgX}X|Z_5kB&eWy?ZoO1s)JSzutyb}oXw6)Kq3IVV<1Nc|eC)j2rVk$5g0c!8=gL5}nvrR7l^f&ZQ5r-S38a064HeeXvYr{L z6bl`hn(3>QC2B(jCD_#MG|qQ>`A_D!vjshdyzg(Wc8)1ho!H)_i%KHRECwWZN%%j= zXwHnHz)sUl!Mw z?Ntev;j2kdb{1@`hxc1^0$BRTEvsJDvhsI5#@4OCrBL|LkdNFu`3gL0)^~!;3T>A_L zG{h_0280XA^S}e=YchHm<>zXLAYDc_57e7aaMDOsfBjaOi;>MIQCAvKB&bFYc!^cR zU24-fr5CuetM=J$=s)jmYUldWm`vwrfR~|tE`T!Imiw?$NwKr?E2@zKV`07#XRY&j z;mUdk=VaTE3F}>cngU(s;#BZ;wP^4e{Ca6tSqJZ4Sj0dGma(JlCs)>~Z+Bej%*w@1 z8p_Gx@voax46UQc4)d&1pRUN`mj)S>-0G2PkSGme7ZadSU%Fv|Q~IDNMRqlMZJJ+T zx1#D}pS)}t+g}nNVGF6_xp$vp%Bzt}PMFup3EZ9WP38mJiY3_*!}mzg*QMW1-Cija zn9Yoyi_da$Xf%eG@LN1$=kWcHQ0-rAw@+1>TV&+~8`~vw9U>P?ic}Z0ZG&pU@r|!9 z@zbOcL$FC%v=)g{xL1<<$NH!?uWdikDPv_mUS~HUdaut3yfhyO7`9i~mJi%RnNvgh zWOK$nHk2oEZ0YEbECW>^6e;s@LM3J;h-AtIBh*=zsjus2?#G>3l|u@j=IlIbG;&^# zY;oOko~|&*NEtc2&)165Ts@y=iox*W_zforwW-yd(7AdVrJm=;f1^Hrjljim#SzkU zJX3QHhZWQ=xJ&jdgK^4;Pu6AT7F@+h{V^5~#xIKf)1J&Kc@J4wv0ZP)fd!%Q5~+=< zZ|AVE)UhArkyT>$EK+U=5ZL#ImBsV<2t2|*`3;{I=u85q^<|)gN*&Pg;}ua7^vs;0 z%0yvBa1R&lYxahUDP^Uh1NnipG1@Ifgj}SYMdjajH=emYor;+-#l)9%q=**C|>57Tb%Ixw%PFnmm-V9DVnz5L6Fo2`a&FR4W zQI{eF&W3trI8Vli1M8kj_}AfetzP|#7rq7D1u0?Mb^qdnpBU4H5y4DyUx@@W_elX2 zVp-pA4@EGY?T^l-xqo;n8`_SSyB>4H&XVVEHqYlvxCBzft4XJA`-p15^;rDOd^8+Axf_;w;3P#b+w-UTuWoUeXfu3=7(8x zk=R_---W$aJQp@!aXP(AX;vR&*Dq4B?od49{&N|~vZ36JT5+#_=jb&!a8rI}@J{53 zZc^zkKXJP~*Qbt|E4KopYCVm$tjD^q=ct#=Ew?`)X2(}5cQ$WmRM9mhHEpmYMrpGp z*^!%sO1nig{j|?DLsO|3pr=xQqSut_qum^$PP`CdFmmEthr}unE<=tw!Jt!raRRP+ zrCGyW_Q>>A7OO8s6skXha6Pzn?9w)+m)AIgJfE5$`}g)kD_FK+oG zWYyQfwTBU0tokvAJ*RUaO`@~>URdI?MxX8c?1X0s1saJ2mX;QRnwT5UQ*g(cOb~>R zT%?xvcfl#iIba2@jbNnw1|@VthAwungl97&glvxp`JIXR!&DepD-XQHC#kKL1w&G^ z+6l>fG2=YrOCQ7iY}R~j9J^7S{8X$i0FX15kP7c}>bY1ur#Y)UKi@=9BssiFiN;#-R($*mz#cRd`&EpIlYu2h_g#vBvgTDHrqa6CSMi=PRrsW!uGTO z0x8eTKfGKGM_dQ?L@2-=A{*d&r|!bU^XcfZB>!NB<4zS}H|hBuzS|zB+y2%JG@tt7 zG-r2K`b27KQS^xO;iBbsLo_A>cImFAnoq~ITY;6~tXeigC@gW|VhTatu~eQlf`+~U z%l~k*zcEC%pTnJ!F$Q((7vm?VYskbBkPDM-=Dw(jer)0Q3?i2=4KimfXns%e1 zWB=j=@(T9BIjzCDtoNRYjAn-k(o(~8-uTjK%H=LwqX%K3at7h;+xAnslbVMJ>&GOb`T|BWtRffE$l{L6%RCgTHi8}^BAqz8NcfBwir0G-hVesY=T($H8a8Pcjh}#i=!Ehs+5Kq_ zV#56n5q!^_i{I|*Y9#@3c4#&Nlx*ADGZDftq#u7n`zH$TGygsJA_%CTa8N(lIM>&i zk%kwI5sZw^2f}bRu2{a{(@&lFYA~MMa zdzu$I=qpXg_-L&4o2^(nRpW|e5Z?IUG}_X%;EN+YXXs%ukn=)=4a`RjyE z5Mgsb)zs+Af=4SJ3(z})Qm7=N{SLvE`yFSEMQfHGO3CC%5o=htas0jTiRDnn;CD-c zSIb>ZXg^fchEHvLZ-0`WDy)|?)wPrWd46-AdtNT#jc*cUn78@{FHo;sbUck*7DX6w zDLqCt+2<6CB;M`f;Oy2*kv0Vh`K1;hu7q0e=r^#vLmJ@S6e3hW`|#3iFs86kEDkc0 zXnI7SnAp~!HIeCtwiVu;YIdTAo5riui0+uLT}i9FYH*ZWiRTN$ZQM-e z`3)xrII-EJ((jNA$ZrIaxr>Gl0<#kg8&li{c10^?ZjfTdFz0eiS)V~tSFN&%I(7Nm zkZ;w#ZggI!j^Fo+!qgOjc!i=Rmy{&{um?dDy(99W56Bb?a@Q9+vDR4E-6z6{W7;g3 z1!t9`(1#TL?-?@VyPD;YCQK&=G;omUeL1>7J}hGO!IZ(PgCNF%jf>i!mxjF#!;)UB zkhC@UwiVi{wA=;c>GdYReuIDTP8It8=P3*;DA;5?m6z!(P7HR!+{6`L?b zcY2&cRIyyXTj�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 + extVL-invariant-uuid + resource + + + extVL-uuid + ExtVL + 40.0 + Virtual Link + + + F + unbounded + + + + model-ver + + model-ver.model-version-id + l3-network-version-id + + + model.model-invariant-id + l3-network-invariant-id + + + + + + + + diff --git a/src/test/resources/generatedXml/AAI-TEST CR_1-resource-7.0.xml b/src/test/resources/generatedXml/AAI-TEST CR_1-resource-7.0.xml new file mode 100644 index 0000000..4ec38a0 --- /dev/null +++ b/src/test/resources/generatedXml/AAI-TEST CR_1-resource-7.0.xml @@ -0,0 +1,51 @@ + + testcr1-invariant-uuid + resource + + + testcr1-uuid + TEST CR_1 + 7.0 + Create collection resource + + + T + unbounded + + + T + unbounded + + + + model-ver + + model-ver.model-version-id + test-cr-uuid + + + model.model-invariant-id + test-cr-invariant-uuid + + + + + + + + model-ver + + model-ver.model-version-id + collection-resource-version-id + + + model.model-invariant-id + collection-resource-invariant-id + + + + + + + + diff --git a/src/test/resources/generatedXml/AAI-TEST SVC_1-service-1.0.xml b/src/test/resources/generatedXml/AAI-TEST SVC_1-service-1.0.xml new file mode 100644 index 0000000..ffea630 --- /dev/null +++ b/src/test/resources/generatedXml/AAI-TEST SVC_1-service-1.0.xml @@ -0,0 +1,51 @@ + + service-invariant-uuid + service + + + service-uuid + TEST SVC_1 + 1.0 + Testing Network Collection + + + T + unbounded + + + T + unbounded + + + + model-ver + + model-ver.model-version-id + testcr1-uuid + + + model.model-invariant-id + testcr1-invariant-uuid + + + + + + + + model-ver + + model-ver.model-version-id + service-instance-version-id + + + model.model-invariant-id + service-instance-invariant-id + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/generatedXml/AAI-testcr_1..NetworkCollection..0-resource-1.xml b/src/test/resources/generatedXml/AAI-testcr_1..NetworkCollection..0-resource-1.xml new file mode 100644 index 0000000..daa1d4a --- /dev/null +++ b/src/test/resources/generatedXml/AAI-testcr_1..NetworkCollection..0-resource-1.xml @@ -0,0 +1,50 @@ + + test-cr-invariant-uuid + resource + + + test-cr-uuid + testcr_1..NetworkCollection..0 + 1 + + + T + unbounded + + + F + unbounded + + + + model-ver + + model-ver.model-version-id + extVL-uuid + + + model.model-invariant-id + extVL-invariant-uuid + + + + + + + + model-ver + + model-ver.model-version-id + instance-group-version-id + + + model.model-invariant-id + instance-group-invariant-id + + + + + + + + -- 2.16.6