public void DiscoverTestsShouldInitializeExtensionsWithExistingExtensionsOnly()
        {
            var inputExtensions     = new[] { "abc.TestAdapter.dll", "def.TestAdapter.dll", "xyz.TestAdapter.dll" };
            var expectedOutputPaths = new[] { "abc.TestAdapter.dll", "xyz.TestAdapter.dll" };

            TestPluginCacheHelper.SetupMockAdditionalPathExtensions(inputExtensions);
            this.mockRequestSender.Setup(s => s.WaitForRequestHandlerConnection(It.IsAny <int>(), It.IsAny <CancellationToken>())).Returns(true);
            this.mockTestHostManager.Setup(th => th.GetTestPlatformExtensions(It.IsAny <IEnumerable <string> >(), It.IsAny <IEnumerable <string> >())).Returns((IEnumerable <string> sources, IEnumerable <string> extensions) =>
            {
                return(extensions.Select(extension => { return Path.GetFileName(extension); }));
            });

            this.mockFileHelper.Setup(fh => fh.Exists(It.IsAny <string>())).Returns((string extensionPath) =>
            {
                return(!extensionPath.Contains("def.TestAdapter.dll"));
            });

            this.mockFileHelper.Setup(fh => fh.Exists("def.TestAdapter.dll")).Returns(false);
            this.mockFileHelper.Setup(fh => fh.Exists("xyz.TestAdapter.dll")).Returns(true);

            var mockTestDiscoveryEventHandler = new Mock <ITestDiscoveryEventsHandler2>();

            this.testDiscoveryManager.DiscoverTests(this.discoveryCriteria, mockTestDiscoveryEventHandler.Object);

            this.mockRequestSender.Verify(s => s.InitializeDiscovery(expectedOutputPaths), Times.Once);
        }
        public void DiscoverTestsShouldInitializeExtensionsIfPresent()
        {
            // Make sure TestPlugincache is refreshed.
            TestPluginCache.Instance = null;

            try
            {
                var extensions = new[] { "c:\\e1.dll", "c:\\e2.dll" };

                // Setup Mocks.
                TestPluginCacheHelper.SetupMockAdditionalPathExtensions(extensions);
                this.mockFileHelper.Setup(fh => fh.Exists(It.IsAny <string>())).Returns(true);
                this.mockRequestSender.Setup(s => s.WaitForRequestHandlerConnection(It.IsAny <int>(), It.IsAny <CancellationToken>())).Returns(true);
                this.mockTestHostManager.Setup(th => th.GetTestPlatformExtensions(It.IsAny <IEnumerable <string> >(), It.IsAny <IEnumerable <string> >())).Returns(new[] { "c:\\e1.dll", "c:\\e2.dll" });

                this.testDiscoveryManager.DiscoverTests(this.discoveryCriteria, null);

                // Also verify that we have waited for client connection.
                this.mockRequestSender.Verify(s => s.InitializeDiscovery(extensions), Times.Once);
            }
            finally
            {
                TestPluginCache.Instance = null;
            }
        }
示例#3
0
        public void DiscoverTestExtensionsShouldSetCachedBoolToTrue()
        {
            TestPluginCacheHelper.SetupMockAdditionalPathExtensions(typeof(TestPluginCacheTests));

            TestPluginCache.Instance.DiscoverTestExtensions <TestDiscovererPluginInformation, ITestDiscoverer>(TestPlatformConstants.TestAdapterEndsWithPattern);

            Assert.IsTrue(TestPluginCache.Instance.TestExtensions.AreTestDiscoverersCached);
            Assert.IsTrue(TestPluginCache.Instance.TestExtensions.AreTestExtensionsCached <TestDiscovererPluginInformation>());
        }
示例#4
0
        public void GetTestExtensionsShouldReturnExtensionsInAssembly()
        {
            TestPluginCacheHelper.SetupMockAdditionalPathExtensions(typeof(TestPluginCacheTests));

            TestPluginCache.Instance.GetTestExtensions <TestDiscovererPluginInformation, ITestDiscoverer>(typeof(TestPluginCacheTests).GetTypeInfo().Assembly.Location);

            Assert.IsNotNull(TestPluginCache.Instance.TestExtensions);
            Assert.IsTrue(TestPluginCache.Instance.TestExtensions.TestDiscoverers.Count > 0);
        }
示例#5
0
 public void TryGetTestExtensionShouldThrowExceptionWithNullUri()
 {
     testExtensionManager = new DummyTestExtensionManager(unfilteredTestExtensions, filteredTestExtensions, messageLogger);
     TestPluginCacheHelper.SetupMockAdditionalPathExtensions(typeof(TestExtensionManagerTests));
     Assert.ThrowsException <ArgumentNullException>(() =>
     {
         var result = testExtensionManager.TryGetTestExtension(default(Uri));
     }
                                                    );
 }
示例#6
0
        public void DiscoverTestExtensionsShouldDiscoverExtensionsFromExtensionsFolder()
        {
            TestPluginCacheHelper.SetupMockAdditionalPathExtensions(typeof(TestPluginCacheTests));

            TestPluginCache.Instance.DiscoverTestExtensions <TestDiscovererPluginInformation, ITestDiscoverer>(TestPlatformConstants.TestAdapterEndsWithPattern);

            Assert.IsNotNull(TestPluginCache.Instance.TestExtensions);

            // Validate the discoverers to be absolutely certain.
            Assert.IsTrue(TestPluginCache.Instance.TestExtensions.TestDiscoverers.Count > 0);
        }
        public void DiscoverTestsShouldQueryTestHostManagerForExtensions()
        {
            TestPluginCache.Instance = null;
            try
            {
                TestPluginCacheHelper.SetupMockAdditionalPathExtensions(new[] { "c:\\e1.dll" });
                this.mockFileHelper.Setup(fh => fh.Exists(It.IsAny <string>())).Returns(true);
                this.mockRequestSender.Setup(s => s.WaitForRequestHandlerConnection(It.IsAny <int>(), It.IsAny <CancellationToken>())).Returns(true);
                this.mockTestHostManager.Setup(th => th.GetTestPlatformExtensions(It.IsAny <IEnumerable <string> >(), It.IsAny <IEnumerable <string> >())).Returns(new[] { "he1.dll", "c:\\e1.dll" });

                this.testDiscoveryManager.DiscoverTests(this.discoveryCriteria, null);

                this.mockRequestSender.Verify(s => s.InitializeDiscovery(new[] { "he1.dll", "c:\\e1.dll" }), Times.Once);
            }
            finally
            {
                TestPluginCache.Instance = null;
            }
        }