@@ -13,133 +13,149 @@ namespace ScriptCs.Core.Tests
1313{
1414 public class PackageAssemblyResolverTests
1515 {
16- private readonly Mock < IFileSystem > _filesystem ;
17- private readonly Mock < IPackageObject > _package ;
18- private readonly Mock < IPackageContainer > _packageContainer ;
19- private readonly List < IPackageReference > _packageIds ;
20- private string _workingDirectory ;
21-
22- public PackageAssemblyResolverTests ( )
23- {
24- _workingDirectory = "c:\\ test" ;
25-
26- _filesystem = new Mock < IFileSystem > ( ) ;
27- _filesystem . SetupGet ( i => i . CurrentDirectory ) . Returns ( "c:\\ test" ) ;
28- _filesystem . Setup ( i => i . DirectoryExists ( It . IsAny < string > ( ) ) ) . Returns ( true ) ;
29- _filesystem . Setup ( i => i . FileExists ( It . IsAny < string > ( ) ) ) . Returns ( true ) ;
30-
31- _package = new Mock < IPackageObject > ( ) ;
32- _package . Setup ( i => i . GetCompatibleDlls ( It . IsAny < FrameworkName > ( ) ) ) . Returns ( new List < string > { "test.dll" , "test2.dll" } ) ;
33- _package . SetupGet ( i => i . Id ) . Returns ( "id" ) ;
34- _package . SetupGet ( i => i . Version ) . Returns ( "3.0" ) ;
35- _package . SetupGet ( i => i . FullName ) . Returns ( _package . Object . Id + "." + _package . Object . Version ) ;
36-
37- _packageIds = new List < IPackageReference > { new PackageReference ( "testId" , VersionUtility . ParseFrameworkName ( "net40" ) ) } ;
38-
39- _packageContainer = new Mock < IPackageContainer > ( ) ;
40- _packageContainer . Setup ( i => i . FindReferences ( It . IsAny < string > ( ) ) ) . Returns ( _packageIds ) ;
41- _packageContainer . Setup ( i => i . FindPackage ( It . IsAny < string > ( ) , It . IsAny < string > ( ) ) ) . Returns ( _package . Object ) ;
42- }
43-
44- [ Fact ]
45- public void WhenPackageIsMatchedItsMatchingDllsShouldBeReturned ( )
46- {
47- var resolver = new PackageAssemblyResolver ( _filesystem . Object , _packageContainer . Object ) ;
48-
49- var found = resolver . GetAssemblyNames ( _workingDirectory ) . ToList ( ) ;
50-
51- found . ShouldNotBeEmpty ( ) ;
52- found . Count . ShouldEqual ( 2 ) ;
53- }
54-
55- [ Fact ]
56- public void WhenManyPackagesAreMatchedAllMatchingDllsShouldBeReturned ( )
57- {
58- var resolver = new PackageAssemblyResolver ( _filesystem . Object , _packageContainer . Object ) ;
59- _packageIds . Add ( new PackageReference ( "testId2" , VersionUtility . ParseFrameworkName ( "net40" ) ) ) ;
60-
61- var found = resolver . GetAssemblyNames ( _workingDirectory ) . ToList ( ) ;
62-
63- found . ShouldNotBeEmpty ( ) ;
64- found . Count . ShouldEqual ( 4 ) ;
65- }
66-
67- [ Fact ]
68- public void WhenPackageIsMatchedItsNonMatchingDllsShouldBeExcluded ( )
69- {
70- _package . Setup ( i => i . GetCompatibleDlls ( It . Is < FrameworkName > ( x => x . FullName == VersionUtility . ParseFrameworkName ( "net40" ) . FullName ) ) ) . Returns ( new List < string > { "test.dll" } ) ;
71-
72- var resolver = new PackageAssemblyResolver ( _filesystem . Object , _packageContainer . Object ) ;
73-
74- var found = resolver . GetAssemblyNames ( _workingDirectory ) . ToList ( ) ;
75-
76- found . ShouldNotBeEmpty ( ) ;
77- found . Count . ShouldEqual ( 1 ) ;
78- }
79-
80- [ Fact ]
81- public void WhenManyPackagesAreMatchedAllNonMatchingDllsShouldBeExcluded ( )
82- {
83- _package . Setup ( i => i . GetCompatibleDlls ( It . Is < FrameworkName > ( x => x . FullName == VersionUtility . ParseFrameworkName ( "net40" ) . FullName ) ) ) . Returns ( new List < string > { "test.dll" } ) ;
84- _packageIds . Add ( new PackageReference ( "testId2" , VersionUtility . ParseFrameworkName ( "net40" ) ) ) ;
85-
86- var resolver = new PackageAssemblyResolver ( _filesystem . Object , _packageContainer . Object ) ;
87-
88- var found = resolver . GetAssemblyNames ( _workingDirectory ) . ToList ( ) ;
89-
90- found . ShouldNotBeEmpty ( ) ;
91- found . Count . ShouldEqual ( 2 ) ;
92- }
93-
94- [ Fact ]
95- public void WhenDllsAreMatchedDllFilePathsAreCorrectlyConcatenated ( )
96- {
97- var resolver = new PackageAssemblyResolver ( _filesystem . Object , _packageContainer . Object ) ;
98-
99- var found = resolver . GetAssemblyNames ( _workingDirectory ) ;
100-
101- found . First ( ) . ShouldEqual ( "c:\\ test\\ packages\\ id.3.0\\ test.dll" ) ;
102- found . ElementAt ( 1 ) . ShouldEqual ( "c:\\ test\\ packages\\ id.3.0\\ test2.dll" ) ;
103- }
104-
105- [ Fact ]
106- public void WhenNoPackagesAreFoundShouldThrowArgumentEx ( )
107- {
108- _packageContainer . Setup ( i => i . FindPackage ( It . IsAny < string > ( ) , It . IsAny < string > ( ) ) ) . Returns < List < IPackageObject > > ( null ) ;
109-
110- var resolver = new PackageAssemblyResolver ( _filesystem . Object , _packageContainer . Object ) ;
111-
112- Assert . Throws < MissingAssemblyException > ( ( ) => resolver . GetAssemblyNames ( _workingDirectory ) ) ;
113- }
114-
115- [ Fact ]
116- public void WhenPackagesAreFoundButNoMatchingDllsExistShouldThrowArgumentEx ( )
117- {
118- _package . Setup ( i => i . GetCompatibleDlls ( It . IsAny < FrameworkName > ( ) ) ) . Returns < List < string > > ( null ) ;
119-
120- var resolver = new PackageAssemblyResolver ( _filesystem . Object , _packageContainer . Object ) ;
121-
122- Assert . Throws < MissingAssemblyException > ( ( ) => resolver . GetAssemblyNames ( _workingDirectory ) ) ;
123- }
124-
125- [ Fact ]
126- public void WhenPackageDirectoryDoesNotExistShouldReturnEmptyPackagesList ( )
127- {
128- var resolver = new PackageAssemblyResolver ( _filesystem . Object , new Mock < IPackageContainer > ( ) . Object ) ;
129- _filesystem . Setup ( i => i . DirectoryExists ( It . IsAny < string > ( ) ) ) . Returns ( false ) ;
130-
131- var found = resolver . GetAssemblyNames ( _workingDirectory ) ;
132- found . ShouldBeEmpty ( ) ;
133- }
134-
135- [ Fact ]
136- public void WhenPackagesConfigDoesNotExistShouldReturnEmptyPackagesList ( )
16+ public class GetAssemblyNamesMethod
13717 {
138- var resolver = new PackageAssemblyResolver ( _filesystem . Object , new Mock < IPackageContainer > ( ) . Object ) ;
139- _filesystem . Setup ( i => i . FileExists ( It . IsAny < string > ( ) ) ) . Returns ( false ) ;
18+ private readonly Mock < IFileSystem > _filesystem ;
19+ private readonly Mock < IPackageObject > _package ;
20+ private readonly Mock < IPackageContainer > _packageContainer ;
21+ private readonly List < IPackageReference > _packageIds ;
22+ private readonly string _workingDirectory ;
23+
24+ public GetAssemblyNamesMethod ( )
25+ {
26+ _workingDirectory = "c:\\ test" ;
27+
28+ _filesystem = new Mock < IFileSystem > ( ) ;
29+ _filesystem . SetupGet ( i => i . CurrentDirectory ) . Returns ( "c:\\ test" ) ;
30+ _filesystem . Setup ( i => i . DirectoryExists ( It . IsAny < string > ( ) ) ) . Returns ( true ) ;
31+ _filesystem . Setup ( i => i . FileExists ( It . IsAny < string > ( ) ) ) . Returns ( true ) ;
32+
33+ _package = new Mock < IPackageObject > ( ) ;
34+ _package . Setup ( i => i . GetCompatibleDlls ( It . IsAny < FrameworkName > ( ) ) )
35+ . Returns ( new List < string > { "test.dll" , "test2.dll" } ) ;
36+ _package . SetupGet ( i => i . Id ) . Returns ( "id" ) ;
37+ _package . SetupGet ( i => i . Version ) . Returns ( "3.0" ) ;
38+ _package . SetupGet ( i => i . FullName ) . Returns ( _package . Object . Id + "." + _package . Object . Version ) ;
39+
40+ _packageIds = new List < IPackageReference >
41+ {
42+ new PackageReference ( "testId" , VersionUtility . ParseFrameworkName ( "net40" ) )
43+ } ;
44+
45+ _packageContainer = new Mock < IPackageContainer > ( ) ;
46+ _packageContainer . Setup ( i => i . FindReferences ( It . IsAny < string > ( ) ) ) . Returns ( _packageIds ) ;
47+ _packageContainer . Setup ( i => i . FindPackage ( It . IsAny < string > ( ) , It . IsAny < string > ( ) ) ) . Returns ( _package . Object ) ;
48+ }
49+
50+ [ Fact ]
51+ public void WhenPackageIsMatchedItsMatchingDllsShouldBeReturned ( )
52+ {
53+ var resolver = new PackageAssemblyResolver ( _filesystem . Object , _packageContainer . Object ) ;
54+
55+ var found = resolver . GetAssemblyNames ( _workingDirectory ) . ToList ( ) ;
56+
57+ found . ShouldNotBeEmpty ( ) ;
58+ found . Count . ShouldEqual ( 2 ) ;
59+ }
60+
61+ [ Fact ]
62+ public void WhenManyPackagesAreMatchedAllMatchingDllsShouldBeReturned ( )
63+ {
64+ var resolver = new PackageAssemblyResolver ( _filesystem . Object , _packageContainer . Object ) ;
65+ _packageIds . Add ( new PackageReference ( "testId2" , VersionUtility . ParseFrameworkName ( "net40" ) ) ) ;
66+
67+ var found = resolver . GetAssemblyNames ( _workingDirectory ) . ToList ( ) ;
68+
69+ found . ShouldNotBeEmpty ( ) ;
70+ found . Count . ShouldEqual ( 4 ) ;
71+ }
72+
73+ [ Fact ]
74+ public void WhenPackageIsMatchedItsNonMatchingDllsShouldBeExcluded ( )
75+ {
76+ _package . Setup (
77+ i =>
78+ i . GetCompatibleDlls (
79+ It . Is < FrameworkName > ( x => x . FullName == VersionUtility . ParseFrameworkName ( "net40" ) . FullName ) ) )
80+ . Returns ( new List < string > { "test.dll" } ) ;
81+
82+ var resolver = new PackageAssemblyResolver ( _filesystem . Object , _packageContainer . Object ) ;
83+
84+ var found = resolver . GetAssemblyNames ( _workingDirectory ) . ToList ( ) ;
85+
86+ found . ShouldNotBeEmpty ( ) ;
87+ found . Count . ShouldEqual ( 1 ) ;
88+ }
89+
90+ [ Fact ]
91+ public void WhenManyPackagesAreMatchedAllNonMatchingDllsShouldBeExcluded ( )
92+ {
93+ _package . Setup (
94+ i =>
95+ i . GetCompatibleDlls (
96+ It . Is < FrameworkName > ( x => x . FullName == VersionUtility . ParseFrameworkName ( "net40" ) . FullName ) ) )
97+ . Returns ( new List < string > { "test.dll" } ) ;
98+ _packageIds . Add ( new PackageReference ( "testId2" , VersionUtility . ParseFrameworkName ( "net40" ) ) ) ;
99+
100+ var resolver = new PackageAssemblyResolver ( _filesystem . Object , _packageContainer . Object ) ;
101+
102+ var found = resolver . GetAssemblyNames ( _workingDirectory ) . ToList ( ) ;
103+
104+ found . ShouldNotBeEmpty ( ) ;
105+ found . Count . ShouldEqual ( 2 ) ;
106+ }
107+
108+ [ Fact ]
109+ public void WhenDllsAreMatchedDllFilePathsAreCorrectlyConcatenated ( )
110+ {
111+ var resolver = new PackageAssemblyResolver ( _filesystem . Object , _packageContainer . Object ) ;
112+
113+ var found = resolver . GetAssemblyNames ( _workingDirectory ) ;
114+
115+ found . First ( ) . ShouldEqual ( "c:\\ test\\ packages\\ id.3.0\\ test.dll" ) ;
116+ found . ElementAt ( 1 ) . ShouldEqual ( "c:\\ test\\ packages\\ id.3.0\\ test2.dll" ) ;
117+ }
118+
119+ [ Fact ]
120+ public void WhenNoPackagesAreFoundShouldThrowArgumentEx ( )
121+ {
122+ _packageContainer . Setup ( i => i . FindPackage ( It . IsAny < string > ( ) , It . IsAny < string > ( ) ) )
123+ . Returns < List < IPackageObject > > ( null ) ;
124+
125+ var resolver = new PackageAssemblyResolver ( _filesystem . Object , _packageContainer . Object ) ;
126+
127+ Assert . Throws < MissingAssemblyException > ( ( ) => resolver . GetAssemblyNames ( _workingDirectory ) ) ;
128+ }
129+
130+ [ Fact ]
131+ public void WhenPackagesAreFoundButNoMatchingDllsExistShouldThrowArgumentEx ( )
132+ {
133+ _package . Setup ( i => i . GetCompatibleDlls ( It . IsAny < FrameworkName > ( ) ) ) . Returns < List < string > > ( null ) ;
134+
135+ var resolver = new PackageAssemblyResolver ( _filesystem . Object , _packageContainer . Object ) ;
136+
137+ Assert . Throws < MissingAssemblyException > ( ( ) => resolver . GetAssemblyNames ( _workingDirectory ) ) ;
138+ }
139+
140+ [ Fact ]
141+ public void WhenPackageDirectoryDoesNotExistShouldReturnEmptyPackagesList ( )
142+ {
143+ var resolver = new PackageAssemblyResolver ( _filesystem . Object , new Mock < IPackageContainer > ( ) . Object ) ;
144+ _filesystem . Setup ( i => i . DirectoryExists ( It . IsAny < string > ( ) ) ) . Returns ( false ) ;
145+
146+ var found = resolver . GetAssemblyNames ( _workingDirectory ) ;
147+ found . ShouldBeEmpty ( ) ;
148+ }
140149
141- var found = resolver . GetAssemblyNames ( _workingDirectory ) ;
142- found . ShouldBeEmpty ( ) ;
150+ [ Fact ]
151+ public void WhenPackagesConfigDoesNotExistShouldReturnEmptyPackagesList ( )
152+ {
153+ var resolver = new PackageAssemblyResolver ( _filesystem . Object , new Mock < IPackageContainer > ( ) . Object ) ;
154+ _filesystem . Setup ( i => i . FileExists ( It . IsAny < string > ( ) ) ) . Returns ( false ) ;
155+
156+ var found = resolver . GetAssemblyNames ( _workingDirectory ) ;
157+ found . ShouldBeEmpty ( ) ;
158+ }
143159 }
144160 }
145161}
0 commit comments