public void OnAssemblyResolve_AssemblyAlreadyLoaded_ReturnsAlreadyLoadedAssembly() { string assemblyName = Guid.NewGuid().ToString(); Assembly expectedResult = GetType().Assembly; var subject = new AssemblyResolver(_loadedAssemblyFinderMock.Object, _assemblyLoaderFactoryMock.Object); _loadedAssemblyFinderMock .Setup(finder => finder.Find(It.Is<AssemblyName>(name => name.Name == assemblyName))) .Returns(expectedResult) .Verifiable(); // Act Assembly result = subject.OnAssemblyResolve(this, new ResolveEventArgs(assemblyName)); // Assert Assert.AreEqual(expectedResult, result); _loadedAssemblyFinderMock.Verify(); }
public void OnAssemblyResolve_AssemblyNotAlreadyLoadedAndFactoryNotNull_ReturnsResultFromFactory() { Assembly expectedResult = GetType().Assembly; string assemblyName = Guid.NewGuid().ToString(); var subject = new AssemblyResolver(_loadedAssemblyFinderMock.Object, _assemblyLoaderFactoryMock.Object); var loaderMock = new Mock<IAssemblyLoader>(); loaderMock.Setup(loader => loader.Load()).Returns(expectedResult); _loadedAssemblyFinderMock .Setup(finder => finder.Find(It.IsAny<AssemblyName>())) .Returns(default(Assembly)); _assemblyLoaderFactoryMock .Setup(factory => factory.GetLoaderForAssembly(It.IsAny<AssemblyName>())) .Returns(default(IAssemblyLoader)); _assemblyLoaderFactoryMock .Setup(factory => factory.GetLoaderForAssembly(It.Is<AssemblyName>(name => name.Name == assemblyName))) .Returns(loaderMock.Object) .Verifiable(); // Act Assembly result = subject.OnAssemblyResolve(this, new ResolveEventArgs(assemblyName)); // Assert Assert.AreEqual(expectedResult, result); _assemblyLoaderFactoryMock.Verify(); }
public void OnAssemblyResolve_AssemblyNotAlreadyLoadedAndFactoryNull_ReturnsNull() { string assemblyName = Guid.NewGuid().ToString(); var subject = new AssemblyResolver(_loadedAssemblyFinderMock.Object, null); _loadedAssemblyFinderMock .Setup(finder => finder.Find(It.Is<AssemblyName>(name => name.Name == assemblyName))) .Returns(default(Assembly)); // Act Assembly result = subject.OnAssemblyResolve(this, new ResolveEventArgs(assemblyName)); // Assert Assert.AreEqual(null, result); }