public void TestComponentLoadFailureWithPreviousErrorWriter() { IntPtr previousWriter = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate( (HostPolicyMock.ErrorWriterDelegate)((string _) => { Assert.True(false, "Should never get here"); })); using (HostPolicyMock.MockValues_corehost_set_error_writer errorWriterMock = HostPolicyMock.Mock_corehost_set_error_writer(previousWriter)) { using (HostPolicyMock.MockValues_corehost_resolve_componet_dependencies resolverMock = HostPolicyMock.Mock_corehost_resolve_componet_dependencies( 134, "", "", "")) { Assert.Throws <InvalidOperationException>(() => { AssemblyDependencyResolver resolver = new AssemblyDependencyResolver( Path.Combine(TestBasePath, _componentAssemblyPath)); }); // After everything is done, the error writer should be reset to the original value. Assert.Equal(previousWriter, errorWriterMock.LastSetErrorWriterPtr); } } }
public void TestAssembly() { string assemblyDependencyPath = CreateMockAssembly("AssemblyDependency.dll"); IntPtr previousWriter = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate( (HostPolicyMock.ErrorWriterDelegate)((string _) => { Assert.True(false, "Should never get here"); })); using (HostPolicyMock.MockValues_corehost_set_error_writer errorWriterMock = HostPolicyMock.Mock_corehost_set_error_writer(previousWriter)) { using (HostPolicyMock.Mock_corehost_resolve_componet_dependencies( 0, assemblyDependencyPath, "", "")) { AssemblyDependencyResolver resolver = new AssemblyDependencyResolver( Path.Combine(TestBasePath, _componentAssemblyPath)); Assert.Equal( assemblyDependencyPath, resolver.ResolveAssemblyToPath(new AssemblyName("AssemblyDependency"))); // After everything is done, the error writer should be reset to the original value. Assert.Equal(previousWriter, errorWriterMock.LastSetErrorWriterPtr); } } }
public void TestComponentLoadFailure() { const string errorMessageFirstLine = "First line: failure"; const string errorMessageSecondLine = "Second line: value"; using (HostPolicyMock.MockValues_corehost_set_error_writer errorWriterMock = HostPolicyMock.Mock_corehost_set_error_writer()) { using (HostPolicyMock.MockValues_corehost_resolve_componet_dependencies resolverMock = HostPolicyMock.Mock_corehost_resolve_componet_dependencies( 134, "", "", "")) { // When the resolver is called, emulate error behavior // which is to write to the error writer some error message. resolverMock.Callback = (string componentAssemblyPath) => { Assert.NotNull(errorWriterMock.LastSetErrorWriter); errorWriterMock.LastSetErrorWriter(errorMessageFirstLine); errorWriterMock.LastSetErrorWriter(errorMessageSecondLine); }; string message = Assert.Throws <InvalidOperationException>(() => { AssemblyDependencyResolver resolver = new AssemblyDependencyResolver( Path.Combine(TestBasePath, _componentAssemblyPath)); }).Message; Assert.Contains("134", message); Assert.Contains( errorMessageFirstLine + Environment.NewLine + errorMessageSecondLine, message); // After everything is done, the error writer should be reset. Assert.Null(errorWriterMock.LastSetErrorWriter); } } }