public void CreateInAppDomain() { var resolver = AppDomainAssemblyResolver.CreateInAppDomain(_appDomain, AppDomain.CurrentDomain.BaseDirectory); Assert.That(RemotingServices.IsTransparentProxy(resolver), Is.True); Assert.That(resolver.AssemblyDirectory, Is.EqualTo(AppDomain.CurrentDomain.BaseDirectory)); }
public void ShouldRegisterTheAssemblyIfTheAssemblyDoesNotExist( [Frozen] Mock <IAssemblyUtility> assemblyUtilityMock, [Frozen] IDictionary <string, AssemblyInfo> assemblyInfoMap, AppDomainAssemblyResolver resolver) { assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); resolver.AddAssemblyPaths(new[] { _info.Path }); assemblyInfoMap.ContainsKey(_assemblyName.Name).ShouldBeTrue(); }
public void ShouldLogWhenTheAssemblyIsMapped( [Frozen] Mock <IAssemblyUtility> assemblyUtilityMock, [Frozen] Mock <ILog> loggerMock, AppDomainAssemblyResolver resolver) { assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); resolver.AddAssemblyPaths(new[] { _info.Path }); loggerMock.Verify( l => l.DebugFormat("Mapping Assembly {0} to version:{1}", _assemblyName.Name, _assemblyName.Version)); }
public void ShouldLogWhenTheAssemblyIsMapped( [Frozen] Mock<IAssemblyUtility> assemblyUtilityMock, [Frozen] Mock<ILog> loggerMock, AppDomainAssemblyResolver resolver) { assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); resolver.AddAssemblyPaths(new[] { _info.Path }); loggerMock.Verify( l => l.DebugFormat("Mapping Assembly {0} to version:{1}", _assemblyName.Name, _assemblyName.Version)); }
public void ShouldOverrideIfTheAssemblyVersionIsGreaterThanTheMappedAssemblyAndItWasNotLoaded( [Frozen] Mock <IAssemblyUtility> assemblyUtilityMock, [Frozen] IDictionary <string, AssemblyInfo> assemblyInfoMap, AppDomainAssemblyResolver resolver) { assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); _info.Version = new Version(0, 0); resolver.AddAssemblyPaths(new[] { _info.Path }); _info = assemblyInfoMap[_assemblyName.Name]; _info.Version.ShouldEqual(_assemblyName.Version); }
public void ShouldLogWhenTheAssemblyIsMapped( [Frozen] Mock <IAssemblyUtility> assemblyUtilityMock, [Frozen] TestLogProvider logProvider, AppDomainAssemblyResolver resolver) { assemblyUtilityMock.Setup(u => u.IsManagedAssembly(It.IsAny <string>())).Returns(true); assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); resolver.AddAssemblyPaths(new[] { _info.Path }); logProvider.Output.ShouldContain( "DEBUG: Mapping Assembly " + _assemblyName.Name + " to version:" + _assemblyName.Version); }
public void ShouldNotOverrideIfTheAssemblyVersionIsLessThenOrEqualToTheMappedAssembly( [Frozen] Mock<IAssemblyUtility> assemblyUtilityMock, [Frozen] IDictionary<string, AssemblyInfo> assemblyInfoMap, AppDomainAssemblyResolver resolver) { _info.Version = new Version(99, 0, 0); assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); assemblyInfoMap[_assemblyName.Name] = _info; resolver.AddAssemblyPaths(new[] { _info.Path }); var newInfo = assemblyInfoMap[_assemblyName.Name]; newInfo.Version.ShouldEqual(_info.Version); }
public void ShouldReturnTheAssemblyIfItWasLoaded( [Frozen] Mock <IAssemblyUtility> assemblyUtilityMock, [Frozen] IDictionary <string, AssemblyInfo> assemblyInfoMap, AppDomainAssemblyResolver resolver) { assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); assemblyUtilityMock.Setup(u => u.LoadFile(_info.Path)).Returns(typeof(Mock).Assembly); assemblyInfoMap[_assemblyName.Name] = _info; var args = new ResolveEventArgs(_assemblyName.Name); var assembly = resolver.AssemblyResolve(this, args); assembly.ShouldEqual(_info.Assembly); }
public void ShouldNotOverrideIfTheAssemblyVersionIsGreaterThanTheMappedAssemblyAndItWasLoaded( [Frozen] Mock<IAssemblyUtility> assemblyUtilityMock, [Frozen] IDictionary<string, AssemblyInfo> assemblyInfoMap, AppDomainAssemblyResolver resolver) { _info.Version = new Version(0, 0); _info.Assembly = typeof(Mock).Assembly; assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); assemblyInfoMap[_assemblyName.Name] = _info; resolver.AddAssemblyPaths(new[] { _info.Path }); var newInfo = assemblyInfoMap[_assemblyName.Name]; newInfo.Version.ShouldEqual(_info.Version); }
public void ShouldNotOverrideIfTheAssemblyVersionIsLessThenOrEqualToTheMappedAssembly( [Frozen] Mock <IAssemblyUtility> assemblyUtilityMock, [Frozen] IDictionary <string, AssemblyInfo> assemblyInfoMap, AppDomainAssemblyResolver resolver) { _info.Version = new Version(99, 0, 0); assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); assemblyInfoMap[_assemblyName.Name] = _info; resolver.AddAssemblyPaths(new[] { _info.Path }); var newInfo = assemblyInfoMap[_assemblyName.Name]; newInfo.Version.ShouldEqual(_info.Version); }
public void ShouldLogTheAssemblyThatIsBeingResolved( [Frozen] Mock <IAssemblyUtility> assemblyUtilityMock, [Frozen] TestLogProvider logProvider, [Frozen] IDictionary <string, AssemblyInfo> assemblyInfoMap, AppDomainAssemblyResolver resolver) { assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); assemblyUtilityMock.Setup(u => u.LoadFile(_info.Path)).Returns(typeof(Mock).Assembly); assemblyInfoMap[_assemblyName.Name] = _info; resolver.AssemblyResolve(this, new ResolveEventArgs(_assemblyName.Name)); logProvider.Output.ShouldContain( "DEBUG: Resolving from: " + _assemblyName.Name + " to: " + _assemblyName.ToString()); }
public void ShouldLogTheAssemblyThatIsBeingResolved( [Frozen] Mock <IAssemblyUtility> assemblyUtilityMock, [Frozen] Mock <ILog> loggerMock, [Frozen] IDictionary <string, AssemblyInfo> assemblyInfoMap, AppDomainAssemblyResolver resolver) { assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); assemblyUtilityMock.Setup(u => u.LoadFile(_info.Path)).Returns(typeof(Mock).Assembly); assemblyInfoMap[_assemblyName.Name] = _info; resolver.AssemblyResolve(this, new ResolveEventArgs(_assemblyName.Name)); loggerMock.Verify( l => l.DebugFormat("Resolving from: {0} to: {1}", _assemblyName.Name, It.Is <AssemblyName>(n => n.ToString().Equals(_assemblyName.ToString())))); }
public void ShouldWarnIfTheAssemblyVersionIsGreaterThanTheMappedAssemblyAndItWasLoaded( [Frozen] Mock <IAssemblyUtility> assemblyUtilityMock, [Frozen] IDictionary <string, AssemblyInfo> assemblyInfoMap, [Frozen] Mock <ILog> loggerMock, AppDomainAssemblyResolver resolver) { _info.Version = new Version(0, 0); assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); _info.Assembly = typeof(Mock).Assembly; assemblyInfoMap[_assemblyName.Name] = _info; resolver.AddAssemblyPaths(new[] { _info.Path }); loggerMock.Verify( l => l.WarnFormat("Conflict: Assembly {0} with version {1} cannot be added as it has already been resolved", _info.Path, _assemblyName.Version)); }
public void ShouldWarnIfTheAssemblyVersionIsGreaterThanTheMappedAssemblyAndItWasLoaded( [Frozen] Mock <IAssemblyUtility> assemblyUtilityMock, [Frozen] IDictionary <string, AssemblyInfo> assemblyInfoMap, [Frozen] TestLogProvider logProvider, AppDomainAssemblyResolver resolver) { _info.Version = new Version(0, 0); assemblyUtilityMock.Setup(u => u.IsManagedAssembly(It.IsAny <string>())).Returns(true); assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); _info.Assembly = typeof(Mock).Assembly; assemblyInfoMap[_assemblyName.Name] = _info; resolver.AddAssemblyPaths(new[] { _info.Path }); logProvider.Output.ShouldContain( "WARN: Conflict: Assembly " + _info.Path + " with version " + _assemblyName.Version + " cannot be added as it has already been resolved"); }
public void CreateInAppDomain_FromShadowCopiedScenario() { var setupInfo = AppDomain.CurrentDomain.SetupInformation; setupInfo.ShadowCopyFiles = "true"; var shadowCopiedAppDomain = AppDomain.CreateDomain("ShadowCopier", AppDomain.CurrentDomain.Evidence, setupInfo); try { shadowCopiedAppDomain.DoCallBack( delegate { var resolver = AppDomainAssemblyResolver.CreateInAppDomain(_appDomain, AppDomain.CurrentDomain.BaseDirectory); Assert.That(resolver, Is.Not.Null); }); } finally { AppDomain.Unload(shadowCopiedAppDomain); } }
public void ShouldRetrieveTheMappedAssemblyInfo() { var assemblyUtilityMock = new Mock <IAssemblyUtility>(); var assemblyInfoMapMock = new Mock <IDictionary <string, AssemblyInfo> >(); assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); AssemblyInfo foundInfo = null; assemblyInfoMapMock.Setup(m => m.TryGetValue(It.IsAny <string>(), out foundInfo)).Returns(false); var resolver = new AppDomainAssemblyResolver( Mock.Of <ILog>(), Mock.Of <IFileSystem>(), Mock.Of <IAssemblyResolver>(), assemblyUtilityMock.Object, assemblyInfoMapMock.Object ); resolver.AssemblyResolve(this, new ResolveEventArgs(_assemblyName.Name)); assemblyInfoMapMock.Verify(m => m.TryGetValue(_assemblyName.Name, out foundInfo)); }
public void ShouldRetrieveTheMappedAssemblyInfo() { var assemblyUtilityMock = new Mock <IAssemblyUtility>(); var assemblyInfoMapMock = new Mock <IDictionary <string, AssemblyInfo> >(); assemblyUtilityMock.Setup(u => u.IsManagedAssembly(It.IsAny <string>())).Returns(true); assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); AssemblyInfo foundInfo = null; assemblyInfoMapMock.Setup(m => m.TryGetValue(It.IsAny <string>(), out foundInfo)).Returns(false); var resolver = new AppDomainAssemblyResolver( new TestLogProvider(), Mock.Of <IFileSystem>(), Mock.Of <IAssemblyResolver>(), assemblyUtilityMock.Object, assemblyInfoMapMock.Object ); resolver.AddAssemblyPaths(new[] { _info.Path }); assemblyInfoMapMock.Verify(m => m.TryGetValue(_assemblyName.Name, out foundInfo)); }
public void ShouldReturnTheAssemblyIfItWasLoaded( [Frozen] Mock<IAssemblyUtility> assemblyUtilityMock, [Frozen] IDictionary<string, AssemblyInfo> assemblyInfoMap, AppDomainAssemblyResolver resolver) { assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); assemblyUtilityMock.Setup(u => u.LoadFile(_info.Path)).Returns(typeof(Mock).Assembly); assemblyInfoMap[_assemblyName.Name] = _info; var args = new ResolveEventArgs(_assemblyName.Name); var assembly = resolver.AssemblyResolve(this, args); assembly.ShouldEqual(_info.Assembly); }
public void ShouldLogTheAssemblyThatIsBeingResolved( [Frozen] Mock<IAssemblyUtility> assemblyUtilityMock, [Frozen] TestLogProvider logProvider, [Frozen] IDictionary<string, AssemblyInfo> assemblyInfoMap, AppDomainAssemblyResolver resolver) { assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); assemblyUtilityMock.Setup(u => u.LoadFile(_info.Path)).Returns(typeof(Mock).Assembly); assemblyInfoMap[_assemblyName.Name] = _info; resolver.AssemblyResolve(this, new ResolveEventArgs(_assemblyName.Name)); logProvider.Output.ShouldContain( "DEBUG: Resolving from: " + _assemblyName.Name + " to: " + _assemblyName.ToString()); }
public void ShouldRetrieveTheMappedAssemblyInfo() { var assemblyUtilityMock = new Mock<IAssemblyUtility>(); var assemblyInfoMapMock = new Mock<IDictionary<string, AssemblyInfo>>(); assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); AssemblyInfo foundInfo = null; assemblyInfoMapMock.Setup(m => m.TryGetValue(It.IsAny<string>(), out foundInfo)).Returns(false); var resolver = new AppDomainAssemblyResolver( new TestLogProvider(), Mock.Of<IFileSystem>(), Mock.Of<IAssemblyResolver>(), assemblyUtilityMock.Object, assemblyInfoMapMock.Object ); resolver.AssemblyResolve(this, new ResolveEventArgs(_assemblyName.Name)); assemblyInfoMapMock.Verify(m => m.TryGetValue(_assemblyName.Name, out foundInfo)); }
public void ShouldWarnIfTheAssemblyVersionIsGreaterThanTheMappedAssemblyAndItWasLoaded( [Frozen] Mock<IAssemblyUtility> assemblyUtilityMock, [Frozen] IDictionary<string, AssemblyInfo> assemblyInfoMap, [Frozen] TestLogProvider logProvider, AppDomainAssemblyResolver resolver) { _info.Version = new Version(0, 0); assemblyUtilityMock.Setup(u => u.IsManagedAssembly(It.IsAny<string>())).Returns(true); assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); _info.Assembly = typeof(Mock).Assembly; assemblyInfoMap[_assemblyName.Name] = _info; resolver.AddAssemblyPaths(new[] { _info.Path }); logProvider.Output.ShouldContain( "WARN: Conflict: Assembly " + _info.Path + " with version " + _assemblyName.Version + " cannot be added as it has already been resolved"); }
public void ShouldLogWhenTheAssemblyIsMapped( [Frozen] Mock<IAssemblyUtility> assemblyUtilityMock, [Frozen] TestLogProvider logProvider, AppDomainAssemblyResolver resolver) { assemblyUtilityMock.Setup(u => u.IsManagedAssembly(It.IsAny<string>())).Returns(true); assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); resolver.AddAssemblyPaths(new[] { _info.Path }); logProvider.Output.ShouldContain( "DEBUG: Mapping Assembly " + _assemblyName.Name + " to version:" + _assemblyName.Version); }
public void ShouldOverrideIfTheAssemblyVersionIsGreaterThanTheMappedAssemblyAndItWasNotLoaded( [Frozen] Mock<IAssemblyUtility> assemblyUtilityMock, [Frozen] IDictionary<string, AssemblyInfo> assemblyInfoMap, AppDomainAssemblyResolver resolver) { assemblyUtilityMock.Setup(u => u.IsManagedAssembly(It.IsAny<string>())).Returns(true); assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); _info.Version = new Version(0, 0); resolver.AddAssemblyPaths(new[] { _info.Path }); _info = assemblyInfoMap[_assemblyName.Name]; _info.Version.ShouldEqual(_assemblyName.Version); }
public void ShouldRegisterTheAssemblyIfTheAssemblyDoesNotExist( [Frozen] Mock<IAssemblyUtility> assemblyUtilityMock, [Frozen] IDictionary<string, AssemblyInfo> assemblyInfoMap, AppDomainAssemblyResolver resolver) { assemblyUtilityMock.Setup(u => u.IsManagedAssembly(It.IsAny<string>())).Returns(true); assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); resolver.AddAssemblyPaths(new[] { _info.Path }); assemblyInfoMap.ContainsKey(_assemblyName.Name).ShouldBeTrue(); }
private AppDomainAssemblyResolver CreateResolver() { return(AppDomainAssemblyResolver.CreateInAppDomain(_appDomain, AppDomain.CurrentDomain.BaseDirectory)); }
public void ShouldLogTheAssemblyThatIsBeingResolved( [Frozen] Mock<IAssemblyUtility> assemblyUtilityMock, [Frozen] Mock<ILog> loggerMock, [Frozen] IDictionary<string, AssemblyInfo> assemblyInfoMap, AppDomainAssemblyResolver resolver) { assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); assemblyUtilityMock.Setup(u => u.LoadFile(_info.Path)).Returns(typeof(Mock).Assembly); assemblyInfoMap[_assemblyName.Name] = _info; resolver.AssemblyResolve(this, new ResolveEventArgs(_assemblyName.Name)); loggerMock.Verify( l => l.DebugFormat("Resolving from: {0} to: {1}", _assemblyName.Name, It.Is<AssemblyName>(n => n.ToString().Equals(_assemblyName.ToString())))); }
public void ShouldWarnIfTheAssemblyVersionIsGreaterThanTheMappedAssemblyAndItWasLoaded( [Frozen] Mock<IAssemblyUtility> assemblyUtilityMock, [Frozen] IDictionary<string, AssemblyInfo> assemblyInfoMap, [Frozen] Mock<ILog> loggerMock, AppDomainAssemblyResolver resolver) { _info.Version = new Version(0, 0); assemblyUtilityMock.Setup(u => u.IsManagedAssembly(It.IsAny<string>())).Returns(true); assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); _info.Assembly = typeof(Mock).Assembly; assemblyInfoMap[_assemblyName.Name] = _info; resolver.AddAssemblyPaths(new[] { _info.Path }); loggerMock.Verify( l => l.WarnFormat("Conflict: Assembly {0} with version {1} cannot be added as it has already been resolved", _info.Path, _assemblyName.Version)); }
public void ShouldRetrieveTheMappedAssemblyInfo() { var assemblyUtilityMock = new Mock<IAssemblyUtility>(); var assemblyInfoMapMock = new Mock<IDictionary<string, AssemblyInfo>>(); assemblyUtilityMock.Setup(u => u.IsManagedAssembly(It.IsAny<string>())).Returns(true); assemblyUtilityMock.Setup(u => u.GetAssemblyName(_info.Path)).Returns(_assemblyName); AssemblyInfo foundInfo = null; assemblyInfoMapMock.Setup(m => m.TryGetValue(It.IsAny<string>(), out foundInfo)).Returns(false); var resolver = new AppDomainAssemblyResolver( Mock.Of<ILog>(), Mock.Of<IFileSystem>(), Mock.Of<IAssemblyResolver>(), assemblyUtilityMock.Object, assemblyInfoMapMock.Object ); resolver.AddAssemblyPaths(new[] { _info.Path }); assemblyInfoMapMock.Verify(m => m.TryGetValue(_assemblyName.Name, out foundInfo)); }