/// <summary> /// Creates an instance to the platform service for a test source host. /// </summary> /// <param name="source"> /// The source. /// </param> /// <param name="runSettings"> /// The run Settings for the session. /// </param> /// <param name="frameworkHandle"> /// The handle to the the test platform. /// </param> /// <returns> /// Returns the host for the source provided. /// </returns> public ITestSourceHost CreateTestSourceHost( string source, TestPlatform.ObjectModel.Adapter.IRunSettings runSettings, TestPlatform.ObjectModel.Adapter.IFrameworkHandle frameworkHandle) { var testSourceHost = new TestSourceHost(source, runSettings, frameworkHandle); testSourceHost.SetupHost(); return(testSourceHost); }
public void DisposeShouldSetTestHostShutdownOnIssueWithAppDomainUnload() { // Arrange var frameworkHandle = new Mock <IFrameworkHandle>(); var testableAppDomain = new Mock <IAppDomain>(); testableAppDomain.Setup(ad => ad.CreateDomain(It.IsAny <string>(), It.IsAny <Evidence>(), It.IsAny <AppDomainSetup>())).Returns(AppDomain.CurrentDomain); testableAppDomain.Setup(ad => ad.Unload(It.IsAny <AppDomain>())).Throws(new CannotUnloadAppDomainException()); var sourceHost = new TestSourceHost(typeof(DesktopTestSourceHostTests).Assembly.Location, null, frameworkHandle.Object, testableAppDomain.Object); sourceHost.SetupHost(); // Act sourceHost.Dispose(); // Assert frameworkHandle.VerifySet(fh => fh.EnableShutdownAfterTestRun = true); }
public void CreateInstanceForTypeShouldCreateTheTypeInANewAppDomain() { // Setup DummyClass dummyclass = new DummyClass(); int currentAppDomainId = dummyclass.AppDomainId; TestSourceHost sut = new TestSourceHost(Assembly.GetExecutingAssembly().Location, null, null); sut.SetupHost(); // Execute var expectedObject = sut.CreateInstanceForType(typeof(DummyClass), null) as DummyClass; int newAppDomainId = currentAppDomainId + 10; // not equal to currentAppDomainId if (expectedObject != null) { newAppDomainId = expectedObject.AppDomainId; } // Assert Assert.AreNotEqual(currentAppDomainId, newAppDomainId); }