6
6
using System . Collections . Concurrent ;
7
7
using System . Reflection ;
8
8
using Microsoft . CodeAnalysis ;
9
- using Microsoft . DotNet . ApiCompatibility . Tests ;
9
+ using Microsoft . DotNet . ApiSymbolExtensions . Logging ;
10
10
using Microsoft . DotNet . Cli . Utils ;
11
+ using Moq ;
11
12
12
13
namespace Microsoft . DotNet . ApiSymbolExtensions . Tests
13
14
{
14
15
public class AssemblySymbolLoaderTests : SdkTest
15
16
{
16
- private readonly SuppressibleTestLog _logger = new ( ) ;
17
+ private readonly Mock < ILog > _log = new ( ) ;
17
18
18
19
public AssemblySymbolLoaderTests ( ITestOutputHelper log ) : base ( log ) { }
19
20
@@ -92,14 +93,14 @@ private TestAssetInfo GetAsset(TestAssetsManager manager)
92
93
[ Fact ]
93
94
public void LoadAssembly_Throws ( )
94
95
{
95
- AssemblySymbolLoader loader = new ( _logger ) ;
96
+ AssemblySymbolLoader loader = new ( _log . Object ) ;
96
97
Assert . Throws < FileNotFoundException > ( ( ) => loader . LoadAssembly ( Guid . NewGuid ( ) . ToString ( "N" ) . Substring ( 0 , 8 ) ) ) ;
97
98
}
98
99
99
100
[ Fact ]
100
101
public void LoadAssemblyFromSourceFiles_Throws ( )
101
102
{
102
- AssemblySymbolLoader loader = new ( _logger ) ;
103
+ AssemblySymbolLoader loader = new ( _log . Object ) ;
103
104
IEnumerable < string > paths = new [ ] { Guid . NewGuid ( ) . ToString ( "N" ) } ;
104
105
Assert . Throws < FileNotFoundException > ( ( ) => loader . LoadAssemblyFromSourceFiles ( paths , "assembly1" , Array . Empty < string > ( ) ) ) ;
105
106
Assert . Throws < ArgumentNullException > ( "filePaths" , ( ) => loader . LoadAssemblyFromSourceFiles ( Array . Empty < string > ( ) , "assembly1" , Array . Empty < string > ( ) ) ) ;
@@ -109,7 +110,7 @@ public void LoadAssemblyFromSourceFiles_Throws()
109
110
[ Fact ]
110
111
public void LoadMatchingAssemblies_Throws ( )
111
112
{
112
- AssemblySymbolLoader loader = new ( _logger ) ;
113
+ AssemblySymbolLoader loader = new ( _log . Object ) ;
113
114
IEnumerable < string > paths = new [ ] { Guid . NewGuid ( ) . ToString ( "N" ) } ;
114
115
IAssemblySymbol assembly = SymbolFactory . GetAssemblyFromSyntax ( "namespace MyNamespace { class Foo { } }" ) ;
115
116
@@ -122,7 +123,7 @@ public void LoadMatchingAssembliesWarns()
122
123
IAssemblySymbol assembly = SymbolFactory . GetAssemblyFromSyntax ( "namespace MyNamespace { class Foo { } }" ) ;
123
124
IEnumerable < string > paths = new [ ] { AppContext . BaseDirectory } ;
124
125
125
- AssemblySymbolLoader loader = new ( _logger ) ;
126
+ AssemblySymbolLoader loader = new ( _log . Object ) ;
126
127
IEnumerable < IAssemblySymbol > symbols = loader . LoadMatchingAssemblies ( new [ ] { assembly } , paths ) ;
127
128
Assert . Empty ( symbols ) ;
128
129
Assert . True ( loader . HasLoadWarnings ( out IReadOnlyList < AssemblyLoadWarning > warnings ) ) ;
@@ -155,7 +156,7 @@ public void LoadMatchingAssembliesSameIdentitySucceeds()
155
156
. Should ( )
156
157
. Pass ( ) ;
157
158
158
- AssemblySymbolLoader loader = new ( _logger ) ;
159
+ AssemblySymbolLoader loader = new ( _log . Object ) ;
159
160
IEnumerable < IAssemblySymbol > matchingAssemblies = loader . LoadMatchingAssemblies ( new [ ] { fromAssembly } , new [ ] { outputDirectory } ) ;
160
161
161
162
Assert . Single ( matchingAssemblies ) ;
@@ -170,7 +171,7 @@ public void LoadMatchingAssemblies_DifferentIdentity(bool validateIdentities)
170
171
var assetInfo = GetSimpleTestAsset ( ) ;
171
172
IAssemblySymbol fromAssembly = SymbolFactory . GetAssemblyFromSyntax ( SimpleAssemblySourceContents , assemblyName : assetInfo . TestAsset . TestProject . Name ) ;
172
173
173
- AssemblySymbolLoader loader = new ( _logger ) ;
174
+ AssemblySymbolLoader loader = new ( _log . Object ) ;
174
175
IEnumerable < IAssemblySymbol > matchingAssemblies = loader . LoadMatchingAssemblies ( new [ ] { fromAssembly } , new [ ] { assetInfo . OutputDirectory } , validateMatchingIdentity : validateIdentities ) ;
175
176
176
177
if ( validateIdentities )
@@ -197,7 +198,7 @@ public void LoadMatchingAssemblies_DifferentIdentity(bool validateIdentities)
197
198
public void LoadsSimpleAssemblyFromDirectory ( )
198
199
{
199
200
var assetInfo = GetSimpleTestAsset ( ) ;
200
- AssemblySymbolLoader loader = new ( _logger ) ;
201
+ AssemblySymbolLoader loader = new ( _log . Object ) ;
201
202
IEnumerable < IAssemblySymbol > symbols = loader . LoadAssemblies ( assetInfo . OutputDirectory ) ;
202
203
Assert . Single ( symbols ) ;
203
204
@@ -215,7 +216,7 @@ public void LoadsSimpleAssemblyFromDirectory()
215
216
public void LoadSimpleAssemblyFullPath ( )
216
217
{
217
218
var assetInfo = GetSimpleTestAsset ( ) ;
218
- AssemblySymbolLoader loader = new ( _logger ) ;
219
+ AssemblySymbolLoader loader = new ( _log . Object ) ;
219
220
IAssemblySymbol symbol = loader . LoadAssembly ( Path . Combine ( assetInfo . OutputDirectory , assetInfo . TestAsset . TestProject . Name + ".dll" ) ) ;
220
221
221
222
IEnumerable < ITypeSymbol > types = symbol . GlobalNamespace
@@ -249,7 +250,7 @@ public void LoadsMultipleAssembliesFromDirectory()
249
250
. Should ( )
250
251
. Pass ( ) ;
251
252
252
- AssemblySymbolLoader loader = new ( _logger ) ;
253
+ AssemblySymbolLoader loader = new ( _log . Object ) ;
253
254
IEnumerable < IAssemblySymbol > symbols = loader . LoadAssemblies ( outputDirectory ) ;
254
255
255
256
Assert . Equal ( 2 , symbols . Count ( ) ) ;
@@ -266,7 +267,7 @@ public void LoadsMultipleAssembliesFromDirectory()
266
267
public void LoadAssemblyResolveReferences_WarnsWhenEnabled ( bool resolveReferences )
267
268
{
268
269
var assetInfo = GetSimpleTestAsset ( ) ;
269
- AssemblySymbolLoader loader = new ( _logger , resolveAssemblyReferences : resolveReferences ) ;
270
+ AssemblySymbolLoader loader = new ( _log . Object , resolveAssemblyReferences : resolveReferences ) ;
270
271
loader . LoadAssembly ( Path . Combine ( assetInfo . OutputDirectory , assetInfo . TestAsset . TestProject . Name + ".dll" ) ) ;
271
272
272
273
if ( resolveReferences )
@@ -298,7 +299,7 @@ public void LoadAssemblyResolveReferences_WarnsWhenEnabled(bool resolveReference
298
299
public void LoadAssembliesShouldResolveReferencesNoWarnings ( )
299
300
{
300
301
var assetInfo = GetSimpleTestAsset ( ) ;
301
- AssemblySymbolLoader loader = new ( _logger , resolveAssemblyReferences : true ) ;
302
+ AssemblySymbolLoader loader = new ( _log . Object , resolveAssemblyReferences : true ) ;
302
303
// AddReferenceSearchDirectories should be able to handle directories as well as full path to assemblies.
303
304
loader . AddReferenceSearchPaths ( Path . GetDirectoryName ( typeof ( string ) . Assembly . Location ) ) ;
304
305
loader . AddReferenceSearchPaths ( Path . GetFullPath ( typeof ( string ) . Assembly . Location ) ) ;
@@ -317,7 +318,7 @@ public void LoadAssemblyFromStreamNoWarns()
317
318
{
318
319
var assetInfo = GetSimpleTestAsset ( ) ;
319
320
TestProject testProject = assetInfo . TestAsset . TestProject ;
320
- AssemblySymbolLoader loader = new ( _logger ) ;
321
+ AssemblySymbolLoader loader = new ( _log . Object ) ;
321
322
using FileStream stream = File . OpenRead ( Path . Combine ( assetInfo . OutputDirectory , testProject . Name + ".dll" ) ) ;
322
323
IAssemblySymbol symbol = loader . LoadAssembly ( testProject . Name , stream ) ;
323
324
0 commit comments