Beispiel #1
0
        public void CreateDiscoveryRequestShouldThrowExceptionIfNoTestHostproviderFound()
        {
            this.testEngine.Setup(te => te.GetLoggerManager(this.mockRequestData.Object))
            .Returns(this.loggerManager.Object);

            string settingsXml =
                @"<?xml version=""1.0"" encoding=""utf-8""?>
                <RunSettings>
                     <RunConfiguration>
                       <TargetFrameworkVersion>.NETPortable,Version=v4.5</TargetFrameworkVersion>
                     </RunConfiguration>
                </RunSettings>";

            var discoveryCriteria = new DiscoveryCriteria(new List <string> {
                @"x:dummy\foo.dll"
            }, 1, settingsXml);
            var  tp = new TestableTestPlatform(this.testEngine.Object, this.mockFileHelper.Object, null);
            bool exceptionThrown = false;

            try
            {
                tp.CreateDiscoveryRequest(this.mockRequestData.Object, discoveryCriteria);
            }
            catch (TestPlatformException ex)
            {
                exceptionThrown = true;
                Assert.AreEqual("No suitable test runtime provider found for this run.", ex.Message);
            }

            Assert.IsTrue(exceptionThrown, "TestPlatformException should get thrown");
        }
Beispiel #2
0
        public void CreateDiscoveryRequestShouldAllowRuntimeProviderToUpdateAdapterSource()
        {
            var updatedSources = new List <string> {
                @"x:\dummy2\foo.dll"
            };
            var originalSource = new List <string> {
                @"x:dummy\foo.dll"
            };

            this.discoveryManager.Setup(dm => dm.Initialize()).Verifiable();

            var discoveryCriteria = new DiscoveryCriteria(originalSource, 1, null);

            this.hostManager.Setup(hm => hm.GetTestSources(discoveryCriteria.Sources))
            .Returns(updatedSources);

            this.testEngine.Setup(te => te.GetDiscoveryManager(this.hostManager.Object, It.IsAny <DiscoveryCriteria>(), It.IsAny <ProtocolConfig>())).Returns(this.discoveryManager.Object);
            this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object);
            var tp = new TestableTestPlatform(this.testEngine.Object, this.hostManager.Object);

            var discoveryRequest = tp.CreateDiscoveryRequest(discoveryCriteria, It.IsAny <ProtocolConfig>());

            this.hostManager.Verify(hm => hm.Initialize(It.IsAny <TestSessionMessageLogger>(), It.IsAny <string>()), Times.Once);
            this.discoveryManager.Verify(dm => dm.Initialize(), Times.Once);

            this.hostManager.Verify(hm => hm.GetTestSources(originalSource), Times.Once);
            Assert.IsTrue(!discoveryCriteria.Sources.Except(updatedSources).Any());
        }
Beispiel #3
0
        public void CreateTestRunRequestShouldUpdateLoggerExtensionWhenDesingModeIsFalseForRunSelected()
        {
            var additionalExtensions = new List <string> {
                "foo.TestLogger.dll", "Joo.TestLogger.dll"
            };

            this.mockFileHelper.Setup(fh => fh.DirectoryExists(It.IsAny <string>())).Returns(true);
            this.mockFileHelper.Setup(fh => fh.EnumerateFiles(It.IsAny <string>(), It.IsAny <string>(), System.IO.SearchOption.TopDirectoryOnly)).Returns(additionalExtensions);

            this.executionManager.Setup(dm => dm.Initialize()).Verifiable();
            this.testEngine.Setup(te => te.GetExecutionManager(this.hostManager.Object, It.IsAny <TestRunCriteria>(), It.IsAny <ProtocolConfig>())).Returns(this.executionManager.Object);
            this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object);

            var tp = new TestableTestPlatform(this.testEngine.Object, this.mockFileHelper.Object, this.hostManager.Object);

            string settingsXml =
                @"<?xml version=""1.0"" encoding=""utf-8""?>
                <RunSettings>
                     <RunConfiguration>
                       <DesignMode>false</DesignMode>
                     </RunConfiguration>
                </RunSettings>";

            var testRunCriteria = new TestRunCriteria(new List <TestCase> {
                new TestCase("dll1.class1.test1", new Uri("hello://x/"), "xyz\\1.dll")
            }, 10, false, settingsXml);
            var testRunRequest = tp.CreateTestRunRequest(testRunCriteria, It.IsAny <ProtocolConfig>());

            this.extensionManager.Verify(em => em.UseAdditionalExtensions(additionalExtensions, true));
        }
Beispiel #4
0
        public void CreateTestRunRequestShouldUpdateLoggerExtensionWhenDesingModeIsFalseForRunAll()
        {
            var additionalExtensions = new List <string> {
                "foo.TestLogger.dll", "Joo.TestLogger.dll"
            };

            this.mockFileHelper.Setup(fh => fh.DirectoryExists(It.IsAny <string>())).Returns(true);
            this.mockFileHelper.Setup(fh => fh.EnumerateFiles(It.IsAny <string>(), System.IO.SearchOption.TopDirectoryOnly, It.IsAny <string[]>())).Returns(additionalExtensions);

            this.executionManager.Setup(dm => dm.Initialize()).Verifiable();

            string settingsXml =
                @"<?xml version=""1.0"" encoding=""utf-8""?>
                <RunSettings>
                     <RunConfiguration>
                       <DesignMode>false</DesignMode>
                     </RunConfiguration>
                </RunSettings>";

            var testRunCriteria = new TestRunCriteria(new List <string> {
                @"x:dummy\foo.dll"
            }, 10, false, settingsXml, TimeSpan.Zero);

            this.hostManager.Setup(hm => hm.GetTestSources(testRunCriteria.Sources))
            .Returns(testRunCriteria.Sources);

            this.testEngine.Setup(te => te.GetExecutionManager(It.IsAny <IRequestData>(), this.hostManager.Object, It.IsAny <TestRunCriteria>(), It.IsAny <ProtocolConfig>())).Returns(this.executionManager.Object);
            this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object);

            var tp = new TestableTestPlatform(this.testEngine.Object, this.mockFileHelper.Object, this.hostManager.Object);

            var testRunRequest = tp.CreateTestRunRequest(testRunCriteria, It.IsAny <ProtocolConfig>());

            this.extensionManager.Verify(em => em.UseAdditionalExtensions(additionalExtensions, true));
        }
Beispiel #5
0
        public void ClearExtensionsShouldClearTheExtensionsCachedInEngine()
        {
            this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object);
            var tp = new TestableTestPlatform(this.testEngine.Object, this.hostManager.Object);

            tp.ClearExtensions();

            this.extensionManager.Verify(em => em.ClearExtensions());
        }
Beispiel #6
0
        public void UpdateExtensionsShouldUpdateTheEngineWithAdditionalExtensions()
        {
            this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object);
            var tp = new TestableTestPlatform(this.testEngine.Object, this.hostManager.Object);
            var additionalExtensions = new List <string> {
                "e1.dll", "e2.dll"
            };

            tp.UpdateExtensions(additionalExtensions, loadOnlyWellKnownExtensions: true);

            this.extensionManager.Verify(em => em.UseAdditionalExtensions(additionalExtensions, true));
        }
Beispiel #7
0
        public void CreateDiscoveryRequestShouldCreateDiscoveryRequestWithGivenCriteriaAndReturnIt()
        {
            this.testEngine.Setup(te => te.GetDefaultTestHostManager(It.IsAny <RunConfiguration>())).Returns(this.hostManager.Object);
            this.discoveryManager.Setup(dm => dm.Initialize()).Verifiable();
            this.testEngine.Setup(te => te.GetDiscoveryManager(this.hostManager.Object, It.IsAny <DiscoveryCriteria>())).Returns(this.discoveryManager.Object);
            this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object);
            var tp = new TestableTestPlatform(this.testEngine.Object);
            var discoveryCriteria = new DiscoveryCriteria(new List <string> {
                "foo"
            }, 1, null);

            var discoveryRequest = tp.CreateDiscoveryRequest(discoveryCriteria);

            Assert.AreEqual(discoveryCriteria, discoveryRequest.DiscoveryCriteria);
        }
Beispiel #8
0
        public void CreateDiscoveryRequestShouldInitializeManagersAndCreateDiscoveryRequestWithGivenCriteriaAndReturnIt()
        {
            this.discoveryManager.Setup(dm => dm.Initialize()).Verifiable();
            this.testEngine.Setup(te => te.GetDiscoveryManager(this.hostManager.Object, It.IsAny <DiscoveryCriteria>(), It.IsAny <ProtocolConfig>())).Returns(this.discoveryManager.Object);
            this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object);
            var tp = new TestableTestPlatform(this.testEngine.Object, this.hostManager.Object);
            var discoveryCriteria = new DiscoveryCriteria(new List <string> {
                "foo"
            }, 1, null);

            var discoveryRequest = tp.CreateDiscoveryRequest(discoveryCriteria, It.IsAny <ProtocolConfig>());

            this.hostManager.Verify(hm => hm.Initialize(It.IsAny <TestSessionMessageLogger>(), It.IsAny <string>()), Times.Once);
            this.discoveryManager.Verify(dm => dm.Initialize(), Times.Once);
            Assert.AreEqual(discoveryCriteria, discoveryRequest.DiscoveryCriteria);
        }
Beispiel #9
0
        private void InvokeCreateTestRunRequest(TestPlatformOptions options = null)
        {
            this.executionManager.Setup(dm => dm.Initialize(false)).Verifiable();
            this.testEngine.Setup(te => te.GetExecutionManager(this.mockRequestData.Object, this.hostManager.Object, It.IsAny <TestRunCriteria>())).Returns(this.executionManager.Object);
            this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object);
            this.testEngine.Setup(te => te.GetLoggerManager(this.mockRequestData.Object)).Returns(this.loggerManager.Object);

            var tp = new TestableTestPlatform(this.testEngine.Object, this.hostManager.Object);
            var testRunCriteria = new TestRunCriteria(new List <string> {
                "foo"
            }, 10);

            this.hostManager.Setup(hm => hm.GetTestSources(testRunCriteria.Sources))
            .Returns(testRunCriteria.Sources);

            tp.CreateTestRunRequest(this.mockRequestData.Object, testRunCriteria, options);
        }
Beispiel #10
0
        public void CreateTestRunRequestShouldCreateTestRunRequestWithSpecifiedCriteria()
        {
            this.testEngine.Setup(te => te.GetDefaultTestHostManager(It.IsAny <RunConfiguration>())).Returns(this.hostManager.Object);
            this.executionManager.Setup(dm => dm.Initialize()).Verifiable();
            this.testEngine.Setup(te => te.GetExecutionManager(this.hostManager.Object, It.IsAny <TestRunCriteria>())).Returns(this.executionManager.Object);
            this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object);
            var tp = new TestableTestPlatform(this.testEngine.Object);
            var testRunCriteria = new TestRunCriteria(new List <string> {
                "foo"
            }, 10);

            var testRunRequest = tp.CreateTestRunRequest(testRunCriteria);

            var actualTestRunRequest = testRunRequest as TestRunRequest;

            Assert.AreEqual(testRunCriteria, actualTestRunRequest.TestRunCriteria);
        }
Beispiel #11
0
        public void CreateTestRunRequestShouldInitializeManagersAndCreateTestRunRequestWithSpecifiedCriteria()
        {
            this.executionManager.Setup(dm => dm.Initialize()).Verifiable();
            this.testEngine.Setup(te => te.GetExecutionManager(this.hostManager.Object, It.IsAny <TestRunCriteria>(), It.IsAny <ProtocolConfig>())).Returns(this.executionManager.Object);
            this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object);
            var tp = new TestableTestPlatform(this.testEngine.Object, this.hostManager.Object);
            var testRunCriteria = new TestRunCriteria(new List <string> {
                "foo"
            }, 10);

            var testRunRequest = tp.CreateTestRunRequest(testRunCriteria, It.IsAny <ProtocolConfig>());

            var actualTestRunRequest = testRunRequest as TestRunRequest;

            this.hostManager.Verify(hm => hm.Initialize(It.IsAny <TestSessionMessageLogger>(), It.IsAny <string>()), Times.Once);
            this.executionManager.Verify(em => em.Initialize(), Times.Once);
            Assert.AreEqual(testRunCriteria, actualTestRunRequest.TestRunCriteria);
        }
Beispiel #12
0
        public void CreateTestRunRequestShouldSetCustomHostLauncherOnEngineDefaultLauncherIfSpecified()
        {
            var mockCustomLauncher = new Mock <ITestHostLauncher>();

            this.executionManager.Setup(dm => dm.Initialize()).Verifiable();
            this.testEngine.Setup(te => te.GetExecutionManager(this.hostManager.Object, It.IsAny <TestRunCriteria>(), It.IsAny <ProtocolConfig>())).Returns(this.executionManager.Object);
            this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object);
            var tp = new TestableTestPlatform(this.testEngine.Object, this.hostManager.Object);
            var testRunCriteria = new TestRunCriteria(new List <string> {
                "foo"
            }, 10, false, null, TimeSpan.Zero, mockCustomLauncher.Object);

            var testRunRequest = tp.CreateTestRunRequest(testRunCriteria, It.IsAny <ProtocolConfig>());

            var actualTestRunRequest = testRunRequest as TestRunRequest;

            Assert.AreEqual(testRunCriteria, actualTestRunRequest.TestRunCriteria);
            this.hostManager.Verify(hl => hl.SetCustomLauncher(mockCustomLauncher.Object), Times.Once);
        }
Beispiel #13
0
        public void CreateTestRunRequestShouldAllowRuntimeProviderToUpdateAdapterSource()
        {
            var updatedSources = new List <string> {
                @"x:\dummy2\foo.dll"
            };
            var originalSource = new List <string> {
                @"x:dummy\foo.dll"
            };
            var additionalExtensions = new List <string> {
                "foo.TestLogger.dll", "Joo.TestLogger.dll"
            };

            this.mockFileHelper.Setup(fh => fh.DirectoryExists(It.IsAny <string>())).Returns(true);
            this.mockFileHelper.Setup(fh => fh.EnumerateFiles(It.IsAny <string>(), System.IO.SearchOption.TopDirectoryOnly, It.IsAny <string[]>())).Returns(additionalExtensions);

            this.executionManager.Setup(dm => dm.Initialize()).Verifiable();

            string settingsXml =
                @"<?xml version=""1.0"" encoding=""utf-8""?>
                <RunSettings>
                     <RunConfiguration>
                       <DesignMode>false</DesignMode>
                     </RunConfiguration>
                </RunSettings>";

            var testRunCriteria = new TestRunCriteria(originalSource, 10, false, settingsXml, TimeSpan.Zero);

            this.hostManager.Setup(hm => hm.GetTestSources(testRunCriteria.Sources))
            .Returns(updatedSources);

            this.testEngine.Setup(te => te.GetExecutionManager(this.hostManager.Object, It.IsAny <TestRunCriteria>(), It.IsAny <ProtocolConfig>())).Returns(this.executionManager.Object);
            this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object);

            var tp = new TestableTestPlatform(this.testEngine.Object, this.mockFileHelper.Object, this.hostManager.Object);

            var testRunRequest = tp.CreateTestRunRequest(testRunCriteria, It.IsAny <ProtocolConfig>());

            this.hostManager.Verify(hm => hm.GetTestSources(originalSource), Times.Once);
            Assert.IsTrue(!testRunCriteria.Sources.Except(updatedSources).Any());
            this.extensionManager.Verify(em => em.UseAdditionalExtensions(additionalExtensions, true));
        }
Beispiel #14
0
        public void CreateTestRunRequestShouldInitializeLoggerManagerForDesignMode()
        {
            this.testEngine.Setup(te => te.GetExecutionManager(this.mockRequestData.Object, this.hostManager.Object, It.IsAny <TestRunCriteria>())).Returns(this.executionManager.Object);
            this.testEngine.Setup(te => te.GetLoggerManager(this.mockRequestData.Object)).Returns(this.loggerManager.Object);

            string settingsXml =
                @"<?xml version=""1.0"" encoding=""utf-8""?>
                <RunSettings>
                     <RunConfiguration>
                       <DesignMode>True</DesignMode>
                     </RunConfiguration>
                </RunSettings>";
            var testRunCriteria = new TestRunCriteria(new List <string> {
                @"x:dummy\foo.dll"
            }, 10, false, settingsXml);

            var tp = new TestableTestPlatform(this.testEngine.Object, this.hostManager.Object);

            tp.CreateTestRunRequest(this.mockRequestData.Object, testRunCriteria);

            this.loggerManager.Verify(lm => lm.Initialize(settingsXml));
        }
Beispiel #15
0
        public void CreateDiscoveryRequestShouldInitializeLoggerManagerForNonDesignMode()
        {
            this.testEngine.Setup(te => te.GetDiscoveryManager(this.mockRequestData.Object, this.hostManager.Object, It.IsAny <DiscoveryCriteria>())).Returns(this.discoveryManager.Object);
            this.testEngine.Setup(te => te.GetLoggerManager(this.mockRequestData.Object)).Returns(this.loggerManager.Object);

            string settingsXml =
                @"<?xml version=""1.0"" encoding=""utf-8""?>
                <RunSettings>
                     <RunConfiguration>
                       <DesignMode>False</DesignMode>
                     </RunConfiguration>
                </RunSettings>";
            var discoveryCriteria = new DiscoveryCriteria(new List <string> {
                "foo"
            }, 10, settingsXml);

            var tp = new TestableTestPlatform(this.testEngine.Object, this.hostManager.Object);

            tp.CreateDiscoveryRequest(this.mockRequestData.Object, discoveryCriteria);

            this.loggerManager.Verify(lm => lm.Initialize(settingsXml));
        }
Beispiel #16
0
        public void CreateDiscoveryRequestShouldUpdateLoggerExtensionWhenDesignModeIsFalse()
        {
            var additionalExtensions = new List <string> {
                "foo.TestLogger.dll", "Joo.TestLogger.dll"
            };

            this.mockFileHelper.Setup(fh => fh.DirectoryExists(It.IsAny <string>())).Returns(true);
            this.mockFileHelper.Setup(fh => fh.EnumerateFiles(It.IsAny <string>(), System.IO.SearchOption.TopDirectoryOnly, It.IsAny <string[]>())).Returns(additionalExtensions);

            this.discoveryManager.Setup(dm => dm.Initialize(false)).Verifiable();

            string settingsXml =
                @"<?xml version=""1.0"" encoding=""utf-8""?>
                <RunSettings>
                     <RunConfiguration>
                       <DesignMode>false</DesignMode>
                     </RunConfiguration>
                </RunSettings>";

            var temp = Path.GetTempPath();
            var discoveryCriteria = new DiscoveryCriteria(new List <string> {
                $@"{temp}foo.dll"
            }, 1, settingsXml);

            this.hostManager.Setup(hm => hm.GetTestSources(discoveryCriteria.Sources))
            .Returns(discoveryCriteria.Sources);

            this.testEngine.Setup(te => te.GetDiscoveryManager(It.IsAny <IRequestData>(), this.hostManager.Object, It.IsAny <DiscoveryCriteria>())).Returns(this.discoveryManager.Object);
            this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object);
            this.testEngine.Setup(te => te.GetLoggerManager(this.mockRequestData.Object)).Returns(this.loggerManager.Object);
            var tp = new TestableTestPlatform(this.testEngine.Object, this.mockFileHelper.Object, this.hostManager.Object);

            // Action
            var discoveryRequest = tp.CreateDiscoveryRequest(this.mockRequestData.Object, discoveryCriteria, new TestPlatformOptions());

            // Verify
            this.extensionManager.Verify(em => em.UseAdditionalExtensions(additionalExtensions, false));
        }
Beispiel #17
0
        public void CreateTestRunRequestShouldNotUpdateTestSourcesIfSelectedTestAreRun()
        {
            var additionalExtensions = new List <string> {
                "foo.TestLogger.dll", "Joo.TestLogger.dll"
            };

            this.mockFileHelper.Setup(fh => fh.DirectoryExists(It.IsAny <string>())).Returns(true);
            this.mockFileHelper.Setup(fh => fh.EnumerateFiles(It.IsAny <string>(), System.IO.SearchOption.TopDirectoryOnly, It.IsAny <string[]>())).Returns(additionalExtensions);

            this.executionManager.Setup(dm => dm.Initialize(false)).Verifiable();

            string settingsXml =
                @"<?xml version=""1.0"" encoding=""utf-8""?>
                <RunSettings>
                     <RunConfiguration>
                       <DesignMode>false</DesignMode>
                     </RunConfiguration>
                </RunSettings>";

            var testRunCriteria = new TestRunCriteria(new List <TestCase> {
                new TestCase("dll1.class1.test1", new Uri("hello://x/"), "xyz\\1.dll")
            }, 10, false, settingsXml);

            this.hostManager.Setup(hm => hm.GetTestSources(It.IsAny <IEnumerable <string> >()))
            .Returns(new List <string> {
                "xyz\\1.dll"
            });

            this.testEngine.Setup(te => te.GetExecutionManager(this.mockRequestData.Object, this.hostManager.Object, It.IsAny <TestRunCriteria>())).Returns(this.executionManager.Object);
            this.testEngine.Setup(te => te.GetExtensionManager()).Returns(this.extensionManager.Object);
            this.testEngine.Setup(te => te.GetLoggerManager(this.mockRequestData.Object)).Returns(this.loggerManager.Object);

            var tp = new TestableTestPlatform(this.testEngine.Object, this.mockFileHelper.Object, this.hostManager.Object);

            tp.CreateTestRunRequest(this.mockRequestData.Object, testRunCriteria, new TestPlatformOptions());
            this.extensionManager.Verify(em => em.UseAdditionalExtensions(additionalExtensions, false));
            this.hostManager.Verify(hm => hm.GetTestSources(It.IsAny <IEnumerable <string> >()), Times.Never);
        }