@@ -10,7 +10,6 @@ describe('ArtifactManager - processPrivatePackages', () => {
1010 let workspace : StubbedInstance < Workspace >
1111 let artifactManager : ArtifactManager
1212 let sampleStartTransformRequest : StartTransformRequest
13- let sampleExternalReference : ExternalReference
1413 let sampleArtifactReference : References
1514 const mockedLogging = stubInterface < Logging > ( )
1615
@@ -30,12 +29,6 @@ describe('ArtifactManager - processPrivatePackages', () => {
3029 // Setup initial test data
3130 sampleStartTransformRequest = EXAMPLE_REQUEST
3231
33- sampleExternalReference = {
34- ProjectPath : '' ,
35- RelativePath : '' ,
36- AssemblyFullPath : '' ,
37- IncludedInArtifact : true ,
38- }
3932 sampleArtifactReference = {
4033 includedInArtifact : true ,
4134 relativePath : '' ,
@@ -45,11 +38,7 @@ describe('ArtifactManager - processPrivatePackages', () => {
4538
4639 it ( 'should do nothing when PackageReferences is undefined' , async ( ) => {
4740 sampleStartTransformRequest . PackageReferences = undefined
48- artifactManager . processPrivatePackages (
49- sampleStartTransformRequest ,
50- sampleExternalReference ,
51- sampleArtifactReference
52- )
41+ artifactManager . processPrivatePackages ( sampleStartTransformRequest , sampleArtifactReference )
5342 expect ( sampleArtifactReference . isThirdPartyPackage ) . to . equal ( false )
5443 expect ( sampleArtifactReference . netCompatibleRelativePath ) . to . equal ( undefined )
5544 expect ( sampleArtifactReference . netCompatibleVersion ) . to . equal ( undefined )
@@ -66,24 +55,20 @@ describe('ArtifactManager - processPrivatePackages', () => {
6655 Id : 'test-package' ,
6756 Versions : [ ] ,
6857 IsPrivatePackage : true ,
69- NetCompatibleAssemblyRelativePath : 'path/to/assembly ' ,
70- NetCompatibleAssemblyPath : 'full/path/to/assembly ' ,
58+ NetCompatibleAssemblyRelativePath : 'path/to/test-package.dll ' ,
59+ NetCompatibleAssemblyPath : 'full/path/to/test-package.dll ' ,
7160 NetCompatiblePackageVersion : '2.0.0' ,
7261 }
7362
7463 sampleStartTransformRequest . PackageReferences = [ privatePackage ]
75- sampleExternalReference . RelativePath = 'some/path/test-package/more/path'
64+ sampleArtifactReference . relativePath = 'some/path/test-package/more/path/test-package.dll '
7665
77- await artifactManager . processPrivatePackages (
78- sampleStartTransformRequest ,
79- sampleExternalReference ,
80- sampleArtifactReference
81- )
66+ await artifactManager . processPrivatePackages ( sampleStartTransformRequest , sampleArtifactReference )
8267
8368 expect ( copyFileCalled ) . to . be . true
8469 expect ( sampleArtifactReference . isThirdPartyPackage ) . to . equal ( true )
8570 expect ( sampleArtifactReference . netCompatibleRelativePath ) . to . equal (
86- path . join ( 'references' , 'thirdpartypackages' , 'path/to/assembly ' ) . toLowerCase ( )
71+ path . join ( 'references' , 'thirdpartypackages' , 'path/to/test-package.dll ' ) . toLowerCase ( )
8772 )
8873 expect ( sampleArtifactReference . netCompatibleVersion ) . to . equal ( '2.0.0' )
8974 } )
@@ -98,28 +83,24 @@ describe('ArtifactManager - processPrivatePackages', () => {
9883 const nonPrivatePackage = {
9984 Id : 'test-package' ,
10085 IsPrivatePackage : false ,
101- NetCompatibleAssemblyRelativePath : 'path/to/assembly ' ,
102- NetCompatibleAssemblyPath : 'full/path/to/assembly ' ,
86+ NetCompatibleAssemblyRelativePath : 'path/to/test-package.dll ' ,
87+ NetCompatibleAssemblyPath : 'full/path/to/test-package.dll ' ,
10388 NetCompatiblePackageVersion : '1.0.0' ,
10489 Versions : [ ] ,
10590 }
10691
10792 sampleStartTransformRequest . PackageReferences = [ nonPrivatePackage ]
108- sampleExternalReference . RelativePath = 'some/path/test-package/more/path'
93+ sampleArtifactReference . relativePath = 'some/path/test-package/more/path/test-package.dll '
10994
110- artifactManager . processPrivatePackages (
111- sampleStartTransformRequest ,
112- sampleExternalReference ,
113- sampleArtifactReference
114- )
95+ artifactManager . processPrivatePackages ( sampleStartTransformRequest , sampleArtifactReference )
11596
11697 expect ( copyFileCalled ) . to . be . false
11798 expect ( sampleArtifactReference . isThirdPartyPackage ) . to . equal ( false )
11899 expect ( sampleArtifactReference . netCompatibleRelativePath ) . to . equal ( undefined )
119100 expect ( sampleArtifactReference . netCompatibleVersion ) . to . equal ( undefined )
120101 } )
121102
122- it ( 'should not process when package ID is not in reference path' , async ( ) => {
103+ it ( 'should not process when assembly is not in reference path' , async ( ) => {
123104 let copyFileCalled = false
124105 artifactManager . copyFile = async ( source : string , destination : string ) : Promise < void > => {
125106 copyFileCalled = true
@@ -129,27 +110,63 @@ describe('ArtifactManager - processPrivatePackages', () => {
129110 const privatePackage = {
130111 Id : 'test-package' ,
131112 IsPrivatePackage : true ,
132- NetCompatibleAssemblyRelativePath : 'path/to/assembly ' ,
133- NetCompatibleAssemblyPath : 'full/path/to/assembly ' ,
113+ NetCompatibleAssemblyRelativePath : 'path/to/test-package.dll ' ,
114+ NetCompatibleAssemblyPath : 'full/path/to/test-package.dll ' ,
134115 NetCompatiblePackageVersion : '1.0.0' ,
135116 Versions : [ ] ,
136117 }
137118
138119 sampleStartTransformRequest . PackageReferences = [ privatePackage ]
139- sampleExternalReference . RelativePath = 'some/path/different-package/more/path'
120+ sampleArtifactReference . relativePath = 'some/path/different-package/more/path/test-package2.dll '
140121
141- artifactManager . processPrivatePackages (
142- sampleStartTransformRequest ,
143- sampleExternalReference ,
144- sampleArtifactReference
145- )
122+ artifactManager . processPrivatePackages ( sampleStartTransformRequest , sampleArtifactReference )
146123
147124 expect ( copyFileCalled ) . to . be . false
148125 expect ( sampleArtifactReference . isThirdPartyPackage ) . to . equal ( false )
149126 expect ( sampleArtifactReference . netCompatibleRelativePath ) . to . equal ( undefined )
150127 expect ( sampleArtifactReference . netCompatibleVersion ) . to . equal ( undefined )
151128 } )
152129
130+ it ( 'should handle multiple packages with same substring' , async ( ) => {
131+ const privatePackage1 : PackageReferenceMetadata = {
132+ Id : 'PNMAC.Core' ,
133+ Versions : [ '2.27.0' , '2.30.0' ] ,
134+ IsPrivatePackage : true ,
135+ NetCompatibleAssemblyRelativePath : 'PNMAC.Core/lib/net8.0/PNMAC.Core.dll' ,
136+ NetCompatibleAssemblyPath :
137+ 'C:/Users/user/AppData/Local/Temp/AwsToolkit/Transforms/Packages/PNMAC.Core/lib/net8.0/PNMAC.Core.dll' ,
138+ NetCompatiblePackageVersion : '5.4.1' ,
139+ }
140+
141+ const privatePackage2 : PackageReferenceMetadata = {
142+ Id : 'PNMAC.Core.EntityService' ,
143+ Versions : [ '2.2.0' ] ,
144+ IsPrivatePackage : true ,
145+ NetCompatibleAssemblyRelativePath : 'PNMAC.Core.EntityService/lib/net8.0/PNMAC.Core.EntityService.dll' ,
146+ NetCompatibleAssemblyPath :
147+ 'C:/Users/user/AppData/Local/Temp/AwsToolkit/Transforms/Packages/PNMAC.Core.EntityService/lib/net8.0/PNMAC.Core.EntityService.dll' ,
148+ NetCompatiblePackageVersion : '4.1.0.4' ,
149+ }
150+
151+ sampleStartTransformRequest . PackageReferences = [ privatePackage1 , privatePackage2 ]
152+ sampleArtifactReference . relativePath =
153+ 'references/packages/pnmac.core.entityservice.2.2.0/lib/pnmac.core.entityservice.dll'
154+
155+ await artifactManager . processPrivatePackages ( sampleStartTransformRequest , sampleArtifactReference )
156+
157+ expect ( sampleArtifactReference . isThirdPartyPackage ) . to . equal ( true )
158+ expect ( sampleArtifactReference . packageId ) . to . equal ( 'PNMAC.Core.EntityService' )
159+ expect ( sampleArtifactReference . netCompatibleVersion ) . to . equal ( '4.1.0.4' )
160+
161+ sampleArtifactReference . relativePath = 'references/packages/pnmac.core.2.30.0/lib/pnmac.core.dll'
162+
163+ await artifactManager . processPrivatePackages ( sampleStartTransformRequest , sampleArtifactReference )
164+
165+ expect ( sampleArtifactReference . isThirdPartyPackage ) . to . equal ( true )
166+ expect ( sampleArtifactReference . packageId ) . to . equal ( 'PNMAC.Core' )
167+ expect ( sampleArtifactReference . netCompatibleVersion ) . to . equal ( '5.4.1' )
168+ } )
169+
153170 it ( 'should mark as third party package but not copy when paths are null' , async ( ) => {
154171 let copyFileCalled = false
155172 artifactManager . copyFile = async ( source : string , destination : string ) : Promise < void > => {
@@ -167,13 +184,9 @@ describe('ArtifactManager - processPrivatePackages', () => {
167184 }
168185
169186 sampleStartTransformRequest . PackageReferences = [ privatePackage ]
170- sampleExternalReference . RelativePath = 'some/path/test-package/more/path '
187+ sampleArtifactReference . relativePath = 'some/path/test-package/more/test-package.dll '
171188
172- await artifactManager . processPrivatePackages (
173- sampleStartTransformRequest ,
174- sampleExternalReference ,
175- sampleArtifactReference
176- )
189+ await artifactManager . processPrivatePackages ( sampleStartTransformRequest , sampleArtifactReference )
177190
178191 expect ( copyFileCalled ) . to . be . false
179192 expect ( sampleArtifactReference . isThirdPartyPackage ) . to . equal ( true )
0 commit comments