public void InProcDataCollectionExtensionManagerLoadsDataCollectorFromTestPluginCacheIfExistsAndCodebaseIsRelative() { string settingsXml = @"<RunSettings> <InProcDataCollectionRunSettings> <InProcDataCollectors> <InProcDataCollector friendlyName='Test Impact' uri='InProcDataCollector://Microsoft/TestImpact/1.0' assemblyQualifiedName='TestImpactListener.Tests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7ccb7239ffde675a' codebase='TestImpactListenerDataCollector.dll'> <Configuration> <Port>4312</Port> </Configuration> </InProcDataCollector> </InProcDataCollectors> </InProcDataCollectionRunSettings> </RunSettings>"; this.testPluginCache.UpdateExtensions(new List <string> { Path.Combine(temp, "source", ".nuget", "TestImpactListenerDataCollector.dll") }, true); this.mockFileHelper.Setup(fh => fh.Exists(Path.Combine(temp, "source", ".nuget", "TestImpactListenerDataCollector.dll"))).Returns(true); this.inProcDataCollectionManager = new TestableInProcDataCollectionExtensionManager(settingsXml, this.mockTestEventsPublisher.Object, this.defaultCodebase, this.testPluginCache, this.mockFileHelper.Object); var codebase = (inProcDataCollectionManager.InProcDataCollectors.Values.First() as MockDataCollector).CodeBase; Assert.AreEqual(Path.Combine(temp, "source", ".nuget", "TestImpactListenerDataCollector.dll"), codebase); }
public void TestInit() { this.mockTestEventsPublisher = new Mock <ITestEventsPublisher>(); this.mockFileHelper = new Mock <IFileHelper>(); this.testPluginCache = TestPluginCache.Instance; this.inProcDataCollectionManager = new TestableInProcDataCollectionExtensionManager(this.settingsXml, this.mockTestEventsPublisher.Object, this.defaultCodebase, this.testPluginCache, this.mockFileHelper.Object); }
public void InProcDataCollectorIsReadingMultipleDataCollector() { var multiSettingsXml = @"<RunSettings> <InProcDataCollectionRunSettings> <InProcDataCollectors> <InProcDataCollector friendlyName='Test Impact' uri='InProcDataCollector://Microsoft/TestImpact/1.0' assemblyQualifiedName='TestImpactListener.Tests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7ccb7239ffde675a' codebase='E:\repos\MSTest\src\managed\TestPlatform\TestImpactListener.Tests\bin\Debug\TestImpactListener.Tests1.dll'> <Configuration> <Port>4312</Port> </Configuration> </InProcDataCollector> <InProcDataCollector friendlyName='InProcDataCol' uri='InProcDataCollector://Microsoft/InProcDataCol/2.0' assemblyQualifiedName='TestImpactListener.Tests, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7ccb7239ffde675a' codebase='E:\repos\MSTest\src\managed\TestPlatform\TestImpactListener.Tests\bin\Debug\TestImpactListener.Tests2.dll'> <Configuration> <Port>4313</Port> </Configuration> </InProcDataCollector> </InProcDataCollectors> </InProcDataCollectionRunSettings> </RunSettings>"; var inProcDataCollectionManager = new TestableInProcDataCollectionExtensionManager(multiSettingsXml, null); Assert.IsTrue(inProcDataCollectionManager.IsInProcDataCollectionEnabled, "InProcDataCollection must be enabled if runsettings contains inproc datacollectors."); Assert.AreEqual(inProcDataCollectionManager.DataCollectors.Count, 2, "One Datacollector must be registered"); bool secondOne = false; DataCollectorSettings dataCollectorSettings1 = null; DataCollectorSettings dataCollectorSettings2 = null; foreach (var inProcDC in inProcDataCollectionManager.DataCollectors.Values) { if (secondOne) { dataCollectorSettings2 = (inProcDC as MockDataCollector).DataCollectorSettings; } else { dataCollectorSettings1 = (inProcDC as MockDataCollector).DataCollectorSettings; secondOne = true; } } Assert.IsTrue(string.Equals(dataCollectorSettings1.AssemblyQualifiedName, "TestImpactListener.Tests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7ccb7239ffde675a", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(string.Equals(dataCollectorSettings1.CodeBase, @"E:\repos\MSTest\src\managed\TestPlatform\TestImpactListener.Tests\bin\Debug\TestImpactListener.Tests1.dll", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(string.Equals(dataCollectorSettings1.Configuration.OuterXml.ToString(), @"<Configuration><Port>4312</Port></Configuration>", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(string.Equals(dataCollectorSettings2.AssemblyQualifiedName, "TestImpactListener.Tests, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7ccb7239ffde675a", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(string.Equals(dataCollectorSettings2.CodeBase, @"E:\repos\MSTest\src\managed\TestPlatform\TestImpactListener.Tests\bin\Debug\TestImpactListener.Tests2.dll", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(string.Equals(dataCollectorSettings2.Configuration.OuterXml.ToString(), @"<Configuration><Port>4313</Port></Configuration>", StringComparison.OrdinalIgnoreCase)); }
public void InProcDataCollectionExtensionManagerShouldLoadsDataCollectorsFromRunSettings() { var inProcDataCollectionManager = new TestableInProcDataCollectionExtensionManager(settingsXml, null); Assert.IsTrue(inProcDataCollectionManager.IsInProcDataCollectionEnabled, "InProcDataCollection must be enabled if runsettings contains inproc datacollectors."); Assert.AreEqual(inProcDataCollectionManager.DataCollectors.Count, 1, "One Datacollector must be registered"); var dataCollectorSettings = (inProcDataCollectionManager.DataCollectors.First().Value as MockDataCollector).DataCollectorSettings; Assert.IsTrue(string.Equals(dataCollectorSettings.AssemblyQualifiedName, "TestImpactListener.Tests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7ccb7239ffde675a", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(string.Equals(dataCollectorSettings.CodeBase, @"E:\repos\MSTest\src\managed\TestPlatform\TestImpactListener.Tests\bin\Debug\TestImpactListener.Tests.dll", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(string.Equals(dataCollectorSettings.Configuration.OuterXml.ToString(), @"<Configuration><Port>4312</Port></Configuration>", StringComparison.OrdinalIgnoreCase)); }
public void InProcDataCollectorIsReadingMultipleDataCollector() { var temp = Path.GetTempPath(); var path1 = Path.Combine(temp, "repos", "MSTest", "src", "managed", "TestPlatform", "TestImpactListener.Tests", "bin", "Debug", "TestImpactListener.Tests1.dll"); var path2 = Path.Combine(temp, "repos", "MSTest", "src", "managed", "TestPlatform", "TestImpactListener.Tests", "bin", "Debug", "TestImpactListener.Tests2.dll"); var multiSettingsXml = $@"<RunSettings> <InProcDataCollectionRunSettings> <InProcDataCollectors> <InProcDataCollector friendlyName='Test Impact' uri='InProcDataCollector://Microsoft/TestImpact/1.0' assemblyQualifiedName='TestImpactListener.Tests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7ccb7239ffde675a' codebase='{path1}'> <Configuration> <Port>4312</Port> </Configuration> </InProcDataCollector> <InProcDataCollector friendlyName='InProcDataCol' uri='InProcDataCollector://Microsoft/InProcDataCol/2.0' assemblyQualifiedName='TestImpactListener.Tests, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7ccb7239ffde675a' codebase='{path2}'> <Configuration> <Port>4313</Port> </Configuration> </InProcDataCollector> </InProcDataCollectors> </InProcDataCollectionRunSettings> </RunSettings>"; this.inProcDataCollectionManager = new TestableInProcDataCollectionExtensionManager(multiSettingsXml, this.mockTestEventsPublisher.Object, this.defaultCodebase, this.testPluginCache, this.mockFileHelper.Object); bool secondOne = false; MockDataCollector dataCollector1 = null; MockDataCollector dataCollector2 = null; foreach (var inProcDC in inProcDataCollectionManager.InProcDataCollectors.Values) { if (secondOne) { dataCollector2 = inProcDC as MockDataCollector; } else { dataCollector1 = inProcDC as MockDataCollector; secondOne = true; } } Assert.IsTrue(string.Equals(dataCollector1.AssemblyQualifiedName, "TestImpactListener.Tests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7ccb7239ffde675a", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(string.Equals(dataCollector1.CodeBase, Path.Combine(temp, "repos", "MSTest", "src", "managed", "TestPlatform", "TestImpactListener.Tests", "bin", "Debug", "TestImpactListener.Tests1.dll"), StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(string.Equals(dataCollector1.Configuration.OuterXml.ToString(), @"<Configuration><Port>4312</Port></Configuration>", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(string.Equals(dataCollector2.AssemblyQualifiedName, "TestImpactListener.Tests, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7ccb7239ffde675a", StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(string.Equals(dataCollector2.CodeBase, Path.Combine(temp, "repos", "MSTest", "src", "managed", "TestPlatform", "TestImpactListener.Tests", "bin", "Debug", "TestImpactListener.Tests2.dll"), StringComparison.OrdinalIgnoreCase)); Assert.IsTrue(string.Equals(dataCollector2.Configuration.OuterXml.ToString(), @"<Configuration><Port>4313</Port></Configuration>", StringComparison.OrdinalIgnoreCase)); }
public void TriggerSessionEndShouldCallInProcDataCollector() { var inProcDataCollectionManager = new TestableInProcDataCollectionExtensionManager(settingsXml, null); Assert.IsTrue(inProcDataCollectionManager.IsInProcDataCollectionEnabled, "InProcDataCollection must be enabled if runsettings contains inproc datacollectors."); Assert.AreEqual(inProcDataCollectionManager.DataCollectors.Count, 1, "One Datacollector must be registered"); inProcDataCollectionManager.TriggerTestSessionEnd(); var mockDataCollector = inProcDataCollectionManager.DataCollectors.Values.FirstOrDefault() as MockDataCollector; Assert.IsTrue((mockDataCollector.TestSessionStartCalled == 0), "TestSessionEnd must NOT be called on datacollector"); Assert.IsTrue((mockDataCollector.TestSessionEndCalled == 1), "TestSessionStart must be called on datacollector"); Assert.IsTrue((mockDataCollector.TestCaseStartCalled == 0), "TestCaseStart must NOT be called on datacollector"); Assert.IsTrue((mockDataCollector.TestCaseEndCalled == 0), "TestCaseEnd must NOT be called on datacollector"); }
public void TriggerTestCaseStartShouldCallInProcDataCollector() { var inProcDataCollectionManager = new TestableInProcDataCollectionExtensionManager(settingsXml, null); Assert.IsTrue(inProcDataCollectionManager.IsInProcDataCollectionEnabled, "InProcDataCollection must be enabled if runsettings contains inproc datacollectors."); Assert.AreEqual(inProcDataCollectionManager.DataCollectors.Count, 1, "One Datacollector must be registered"); var testCase = new TestCase("x.y.z", new Uri("uri://dummy"), "x.dll"); // random guid testCase.Id = new Guid("3871B3B0-2853-406B-BB61-1FE1764116FD"); inProcDataCollectionManager.TriggerTestCaseStart(testCase); var mockDataCollector = inProcDataCollectionManager.DataCollectors.Values.FirstOrDefault() as MockDataCollector; Assert.IsTrue((mockDataCollector.TestCaseStartCalled == 1), "TestCaseStart must be called on datacollector"); Assert.IsTrue((mockDataCollector.TestCaseEndCalled == 0), "TestCaseEnd must NOT be called on datacollector"); }
public void InProcDataCollectionExtensionManagerLoadsDataCollectorFromGivenCodebaseIfCodebaseIsAbsolute() { string settingsXml = @"<RunSettings> <InProcDataCollectionRunSettings> <InProcDataCollectors> <InProcDataCollector friendlyName='Test Impact' uri='InProcDataCollector://Microsoft/TestImpact/1.0' assemblyQualifiedName='TestImpactListener.Tests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7ccb7239ffde675a' codebase='\\DummyPath\TestImpactListener.Tests.dll'> <Configuration> <Port>4312</Port> </Configuration> </InProcDataCollector> </InProcDataCollectors> </InProcDataCollectionRunSettings> </RunSettings>"; this.inProcDataCollectionManager = new TestableInProcDataCollectionExtensionManager(settingsXml, this.mockTestEventsPublisher.Object, this.defaultCodebase, this.testPluginCache, this.mockFileHelper.Object); var codebase = (inProcDataCollectionManager.InProcDataCollectors.Values.First() as MockDataCollector).CodeBase; Assert.AreEqual("\\\\DummyPath\\TestImpactListener.Tests.dll", codebase); }
public void InProcDataCollectionExtensionManagerLoadsDataCollectorFromDefaultCodebaseIfExistsAndCodebaseIsRelative() { string settingsXml = @"<RunSettings> <InProcDataCollectionRunSettings> <InProcDataCollectors> <InProcDataCollector friendlyName='Test Impact' uri='InProcDataCollector://Microsoft/TestImpact/1.0' assemblyQualifiedName='TestImpactListener.Tests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7ccb7239ffde675a' codebase='TestImpactListener.Tests.dll'> <Configuration> <Port>4312</Port> </Configuration> </InProcDataCollector> </InProcDataCollectors> </InProcDataCollectionRunSettings> </RunSettings>"; this.mockFileHelper.Setup(fh => fh.Exists(@"E:\repos\MSTest\src\managed\TestPlatform\TestImpactListener.Tests\bin\Debug\TestImpactListener.Tests.dll")).Returns(true); this.inProcDataCollectionManager = new TestableInProcDataCollectionExtensionManager(settingsXml, this.mockTestEventsPublisher.Object, this.defaultCodebase, this.testPluginCache, this.mockFileHelper.Object); var codebase = (inProcDataCollectionManager.InProcDataCollectors.Values.First() as MockDataCollector).CodeBase; Assert.AreEqual(@"E:\repos\MSTest\src\managed\TestPlatform\TestImpactListener.Tests\bin\Debug\TestImpactListener.Tests.dll", codebase); }
public InProcDataCollectionExtensionManagerTests() { this.mockTestEventsPublisher = new Mock <ITestEventsPublisher>(); this.inProcDataCollectionManager = new TestableInProcDataCollectionExtensionManager(this.settingsXml, this.mockTestEventsPublisher.Object); }
public void InitializeTests() { this.testableInProcDataCollectionExtensionManager = new TestableInProcDataCollectionExtensionManager(settingsXml, null); this.mockTestCaseEvents = new Mock <ITestCaseEventsHandler>(); this.testCasesEventsHandler = new TestCaseEventsHandler(this.testableInProcDataCollectionExtensionManager, this.mockTestCaseEvents.Object); }
public InProcDataCollectionExtensionManagerTests() { this.mockDataCollectionTestCaseEventManager = new Mock <IDataCollectionTestCaseEventManager>(); this.inProcDataCollectionManager = new TestableInProcDataCollectionExtensionManager(this.settingsXml, null, this.mockDataCollectionTestCaseEventManager.Object); }