public void DiscoveryManagerShouldPassOnHandleDiscoveredTests()
        {
            Mock <ITestDiscoveryEventsHandler2> mockTestDiscoveryEventsHandler = new Mock <ITestDiscoveryEventsHandler2>();
            var testCases = new List <TestCase>()
            {
                new TestCase("x.y.z", new Uri("x://y"), "x.dll")
            };

            this.testDiscoveryManager = this.GetProxyDiscoveryManager();
            this.SetupChannelMessage(MessageType.StartDiscovery, MessageType.TestCasesFound, testCases);

            var completePayload = new DiscoveryCompletePayload()
            {
                IsAborted           = false,
                LastDiscoveredTests = null,
                TotalTests          = 1
            };
            var completeMessage = new Message()
            {
                MessageType = MessageType.DiscoveryComplete, Payload = null
            };

            mockTestDiscoveryEventsHandler.Setup(mh => mh.HandleDiscoveredTests(It.IsAny <IEnumerable <TestCase> >())).Callback(
                () =>
            {
                this.mockDataSerializer.Setup(ds => ds.DeserializeMessage(It.IsAny <string>())).Returns(completeMessage);
                this.mockDataSerializer.Setup(ds => ds.DeserializePayload <DiscoveryCompletePayload>(completeMessage)).Returns(completePayload);
            });

            // Act.
            this.testDiscoveryManager.DiscoverTests(this.discoveryCriteria, mockTestDiscoveryEventsHandler.Object);

            // Verify
            mockTestDiscoveryEventsHandler.Verify(mtdeh => mtdeh.HandleDiscoveredTests(It.IsAny <IEnumerable <TestCase> >()), Times.AtLeastOnce);
        }
Esempio n. 2
0
        private void SetupReceiveRawMessageAsyncAndDeserializeMessageAndInitialize(string rawMessage, Message message)
        {
            TestHostConnectionInfo connectionInfo;

            connectionInfo = new TestHostConnectionInfo
            {
                Endpoint  = IPAddress.Loopback + ":0",
                Role      = ConnectionRole.Client,
                Transport = Transport.Sockets
            };
            this.mockCommunicationManager = new Mock <ICommunicationManager>();
            this.mockDataSerializer       = new Mock <IDataSerializer>();
            this.testRequestSender        = new TestRequestSender(this.mockCommunicationManager.Object, connectionInfo, this.mockDataSerializer.Object, this.protocolConfig);
            this.mockCommunicationManager.Setup(mc => mc.HostServer(It.IsAny <IPEndPoint>())).Returns(new IPEndPoint(IPAddress.Loopback, 0));
            this.mockCommunicationManager.Setup(mc => mc.WaitForClientConnection(It.IsAny <int>())).Returns(true);
            this.testRequestSender.InitializeCommunication();
            this.mockCommunicationManager.Setup(mc => mc.ReceiveRawMessageAsync(It.IsAny <CancellationToken>())).Returns(Task.FromResult(rawMessage));
            this.mockDataSerializer.Setup(ds => ds.DeserializeMessage(rawMessage)).Returns(message);

            this.testDiscoveryManager = new ProxyDiscoveryManager(
                this.mockRequestData.Object,
                this.testRequestSender,
                this.mockTestHostManager.Object,
                this.mockDataSerializer.Object,
                this.testableClientConnectionTimeout);

            this.CheckAndSetProtocolVersion();
        }
        public ProxyDiscoveryManagerTests()
        {
            this.mockTestHostManager   = new Mock <ITestRuntimeProvider>();
            this.mockRequestSender     = new Mock <ITestRequestSender>();
            this.mockDataSerializer    = new Mock <IDataSerializer>();
            this.mockRequestData       = new Mock <IRequestData>();
            this.mockMetricsCollection = new Mock <IMetricsCollection>();
            this.mockRequestData.Setup(rd => rd.MetricsCollection).Returns(this.mockMetricsCollection.Object);

            this.testDiscoveryManager = new ProxyDiscoveryManager(
                this.mockRequestData.Object,
                this.mockRequestSender.Object,
                this.mockTestHostManager.Object,
                this.mockDataSerializer.Object,
                this.testableClientConnectionTimeout);
            this.discoveryCriteria = new DiscoveryCriteria(new[] { "test.dll" }, 1, string.Empty);

            // Default setup test host manager as shared (desktop)
            this.mockTestHostManager.SetupGet(th => th.Shared).Returns(true);
            this.mockTestHostManager.Setup(
                m => m.GetTestHostProcessStartInfo(
                    It.IsAny <IEnumerable <string> >(),
                    It.IsAny <IDictionary <string, string> >(),
                    It.IsAny <TestRunnerConnectionInfo>()))
            .Returns(new TestProcessStartInfo());
            this.mockTestHostManager.Setup(tmh => tmh.LaunchTestHostAsync(It.IsAny <TestProcessStartInfo>(), It.IsAny <CancellationToken>()))
            .Callback(
                () =>
            {
                this.mockTestHostManager.Raise(thm => thm.HostLaunched += null, new HostProviderEventArgs(string.Empty));
            })
            .Returns(Task.FromResult(true));
        }
Esempio n. 4
0
        public void HandlePartialDiscoveryCompleteShouldCreateANewProxyDiscoveryManagerIfIsAbortedIsTrue()
        {
            this.proxyManagerFuncCalled = false;
            var parallelDiscoveryManager = new ParallelProxyDiscoveryManager(this.mockRequestData.Object, this.proxyManagerFunc, 1, false);
            var proxyDiscovermanager     = new ProxyDiscoveryManager(this.mockRequestData.Object, new Mock <ITestRequestSender>().Object, new Mock <ITestRuntimeProvider>().Object);

            parallelDiscoveryManager.HandlePartialDiscoveryComplete(proxyDiscovermanager, 20, new List <TestCase>(), isAborted: true);

            Assert.IsTrue(this.proxyManagerFuncCalled);
        }
Esempio n. 5
0
        protected ProxyDiscoveryManager GetProxyDiscoveryManager()
        {
            this.SetupAndInitializeTestRequestSender();
            var testDiscoveryManager = new ProxyDiscoveryManager(
                mockRequestData.Object,
                testRequestSender,
                mockTestHostManager.Object,
                mockDataSerializer.Object,
                this.mockFileHelper.Object);

            return(testDiscoveryManager);
        }
Esempio n. 6
0
        protected ProxyDiscoveryManager GetProxyDiscoveryManager()
        {
            this.SetupAndInitializeTestRequestSender();
            var testDiscoveryManager = new ProxyDiscoveryManager(
                mockRequestData.Object,
                testRequestSender,
                mockTestHostManager.Object,
                mockDataSerializer.Object,
                clientConnectionTimeout);

            return(testDiscoveryManager);
        }
        public ProxyDiscoveryManagerTests()
        {
            this.mockTestHostManager  = new Mock <ITestHostManager>();
            this.mockRequestSender    = new Mock <ITestRequestSender>();
            this.testDiscoveryManager = new ProxyDiscoveryManager(
                this.mockRequestSender.Object,
                this.mockTestHostManager.Object,
                this.testableClientConnectionTimeout);
            this.discoveryCriteria = new DiscoveryCriteria(new[] { "test.dll" }, 1, string.Empty);

            // Default setup test host manager as shared (desktop)
            this.mockTestHostManager.SetupGet(th => th.Shared).Returns(true);
        }
Esempio n. 8
0
 public ProxyDiscoveryManagerTests()
 {
     this.mockRequestSender     = new Mock <ITestRequestSender>();
     this.mockRequestData       = new Mock <IRequestData>();
     this.mockMetricsCollection = new Mock <IMetricsCollection>();
     this.mockRequestData.Setup(rd => rd.MetricsCollection).Returns(this.mockMetricsCollection.Object);
     this.testDiscoveryManager = new ProxyDiscoveryManager(
         this.mockRequestData.Object,
         this.mockRequestSender.Object,
         this.mockTestHostManager.Object,
         this.mockDataSerializer.Object,
         this.testableClientConnectionTimeout);
     this.discoveryCriteria = new DiscoveryCriteria(new[] { "test.dll" }, 1, string.Empty);
 }