public void SetupChannelShouldCallSetupClientIfRunnerIsClient() { var connectionInfo = new TestHostConnectionInfo { Endpoint = IPAddress.Loopback + ":0", Role = ConnectionRole.Host, Transport = Transport.Sockets }; ProtocolConfig protocolConfig = new ProtocolConfig { Version = 2 }; var mockCommunicationManager = new Mock <ICommunicationManager>(); mockCommunicationManager.Setup(mc => mc.SetupClientAsync(new IPEndPoint(IPAddress.Loopback, 0))); mockCommunicationManager.Setup(mc => mc.WaitForServerConnection(It.IsAny <int>())).Returns(true); var mockDataSerializer = new Mock <IDataSerializer>(); var testRequestSender = new TestRequestSender(mockCommunicationManager.Object, connectionInfo, mockDataSerializer.Object, new ProtocolConfig { Version = 2 }); this.mockTestHostManager.Setup(thm => thm.GetTestHostConnectionInfo()).Returns(connectionInfo); var message = new Message() { MessageType = MessageType.VersionCheck, Payload = protocolConfig.Version }; mockCommunicationManager.Setup(mc => mc.ReceiveMessage()).Returns(message); mockDataSerializer.Setup(ds => ds.DeserializePayload <int>(It.IsAny <Message>())).Returns(protocolConfig.Version); var localTestOperationManager = new TestableProxyOperationManager(testRequestSender, this.mockTestHostManager.Object, this.connectionTimeout); localTestOperationManager.SetupChannel(Enumerable.Empty <string>(), CancellationToken.None); mockCommunicationManager.Verify(s => s.SetupClientAsync(It.IsAny <IPEndPoint>()), Times.Once); }
public void SetupChannelShouldCallSetupClientIfRunnerIsClient() { var connectionInfo = new TestHostConnectionInfo { Endpoint = IPAddress.Loopback + ":124", Role = ConnectionRole.Host, Transport = Transport.Sockets }; ProtocolConfig protocolConfig = new ProtocolConfig { Version = 2 }; var mockCommunicationEndpoint = new Mock <ICommunicationEndPoint>(); mockCommunicationEndpoint.Setup(mc => mc.Start(connectionInfo.Endpoint)).Returns(connectionInfo.Endpoint).Callback(() => { mockCommunicationEndpoint.Raise( s => s.Connected += null, mockCommunicationEndpoint.Object, new ConnectedEventArgs(this.mockChannel.Object)); }); this.SetupChannelMessage(MessageType.VersionCheck, MessageType.VersionCheck, protocolConfig.Version); var testRequestSender = new TestRequestSender(mockCommunicationEndpoint.Object, connectionInfo, mockDataSerializer.Object, new ProtocolConfig { Version = 2 }, CLIENTPROCESSEXITWAIT); this.mockTestHostManager.Setup(thm => thm.GetTestHostConnectionInfo()).Returns(connectionInfo); var localTestOperationManager = new TestableProxyOperationManager(this.mockRequestData.Object, testRequestSender, this.mockTestHostManager.Object); localTestOperationManager.SetupChannel(Enumerable.Empty <string>()); mockCommunicationEndpoint.Verify(s => s.Start(It.IsAny <string>()), Times.Once); }
public void SetupChannelShouldThrowIfLaunchTestHostFails() { SetupTestHostLaunched(false); this.mockRequestSender.Setup(rs => rs.WaitForRequestHandlerConnection(this.connectionTimeout)).Returns(true); var operationManager = new TestableProxyOperationManager(this.mockRequestSender.Object, this.mockTestHostManager.Object, this.connectionTimeout); Assert.ThrowsException <TestPlatformException>(() => operationManager.SetupChannel(Enumerable.Empty <string>(), CancellationToken.None)); }
public void SetupChannelForDotnetHostManagerWithIsVersionCheckRequiredTrueShouldCheckVersionWithTestHost() { var testHostManager = new TestableDotnetTestHostManager(true); var operationManager = new TestableProxyOperationManager(this.mockRequestSender.Object, testHostManager, this.connectionTimeout); operationManager.SetupChannel(Enumerable.Empty <string>()); this.mockRequestSender.Verify(rs => rs.CheckVersionWithTestHost(), Times.Once); }
public void SetupChannelForDotnetHostManagerWithIsVersionCheckRequiredTrueShouldCheckVersionWithTestHost() { this.SetUpMocksForDotNetTestHost(); var testHostManager = new TestableDotnetTestHostManager(true, this.mockProcessHelper.Object, this.mockFileHelper.Object, this.mockEnvironment.Object); var operationManager = new TestableProxyOperationManager(this.mockRequestSender.Object, testHostManager, this.connectionTimeout); operationManager.SetupChannel(Enumerable.Empty <string>(), CancellationToken.None); this.mockRequestSender.Verify(rs => rs.CheckVersionWithTestHost(), Times.Once); }
public void SetupChannelForDotnetHostManagerWithIsVersionCheckRequiredFalseShouldNotCheckVersionWithTestHost() { this.SetUpMocksForDotNetTestHost(); var testHostManager = new TestableDotnetTestHostManager(false, this.mockProcessHelper.Object, this.mockFileHelper.Object, this.mockEnvironment.Object); var operationManager = new TestableProxyOperationManager(this.mockRequestData.Object, this.mockRequestSender.Object, testHostManager); operationManager.SetupChannel(Enumerable.Empty <string>()); this.mockRequestSender.Verify(rs => rs.CheckVersionWithTestHost(), Times.Never); }
public void SetupChannelShouldThrowIfLaunchTestHostFails() { SetupTestHostLaunched(false); this.mockRequestSender.Setup(rs => rs.WaitForRequestHandlerConnection(this.connectionTimeout, It.IsAny <CancellationToken>())).Returns(true); var operationManager = new TestableProxyOperationManager(this.mockRequestData.Object, this.mockRequestSender.Object, this.mockTestHostManager.Object); var message = Assert.ThrowsException <TestPlatformException>(() => operationManager.SetupChannel(Enumerable.Empty <string>())).Message; Assert.AreEqual(message, string.Format(CultureInfo.CurrentUICulture, Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Resources.Resources.InitializationFailed)); }
public void SetupChannelShouldThrowIfWaitForTestHostConnectionTimesOut() { SetupTestHostLaunched(true); this.mockRequestSender.Setup(rs => rs.WaitForRequestHandlerConnection(this.connectionTimeout, It.IsAny <CancellationToken>())).Returns(false); var operationManager = new TestableProxyOperationManager(this.mockRequestData.Object, this.mockRequestSender.Object, this.mockTestHostManager.Object); var message = Assert.ThrowsException <TestPlatformException>(() => operationManager.SetupChannel(Enumerable.Empty <string>())).Message; Assert.AreEqual(message, ProxyOperationManagerTests.TimoutErrorMessage); }
public void SetupChannelShouldThrowIfRequestCancelled() { SetupTestHostLaunched(true); this.mockRequestSender.Setup(rs => rs.WaitForRequestHandlerConnection(this.connectionTimeout, It.IsAny <CancellationToken>())).Returns(false); var cancellationTokenSource = new CancellationTokenSource(); var operationManager = new TestableProxyOperationManager(this.mockRequestData.Object, this.mockRequestSender.Object, this.mockTestHostManager.Object, cancellationTokenSource); cancellationTokenSource.Cancel(); Assert.ThrowsException <OperationCanceledException>(() => operationManager.SetupChannel(Enumerable.Empty <string>())); }
public void SetupChannelShouldThrowTestPlatformExceptionIfRequestCancelled() { SetupTestHostLaunched(true); this.mockRequestSender.Setup(rs => rs.WaitForRequestHandlerConnection(this.connectionTimeout, It.IsAny <CancellationToken>())).Returns(false); var cancellationTokenSource = new CancellationTokenSource(); var operationManager = new TestableProxyOperationManager(this.mockRequestData.Object, this.mockRequestSender.Object, this.mockTestHostManager.Object, cancellationTokenSource); cancellationTokenSource.Cancel(); var message = Assert.ThrowsException <TestPlatformException>(() => operationManager.SetupChannel(Enumerable.Empty <string>(), this.defaultRunSettings)).Message; StringAssert.Equals("Cancelling the operation as requested.", message); }
public void SetupChannelShouldThrowTestPlatformExceptionIfRequestCancelledDuringLaunchOfTestHost() { SetupTestHostLaunched(true); this.mockRequestSender.Setup(rs => rs.WaitForRequestHandlerConnection(this.connectionTimeout, It.IsAny <CancellationToken>())).Returns(false); this.mockTestHostManager.Setup(rs => rs.LaunchTestHostAsync(It.IsAny <TestProcessStartInfo>(), It.IsAny <CancellationToken>())).Callback(() => Task.Run(() => { throw new OperationCanceledException(); })); var cancellationTokenSource = new CancellationTokenSource(); var operationManager = new TestableProxyOperationManager(this.mockRequestData.Object, this.mockRequestSender.Object, this.mockTestHostManager.Object, cancellationTokenSource); var message = Assert.ThrowsException <TestPlatformException>(() => operationManager.SetupChannel(Enumerable.Empty <string>())).Message; StringAssert.Equals("Cancelling the operation as requested.", message); }
public void UpdateTestProcessStartInfoShouldUpdateTelemetryOptedInArgFalseIfTelemetryOptedOut() { TestProcessStartInfo receivedTestProcessInfo = new TestProcessStartInfo(); var mockRequestData = new Mock <IRequestData>(); mockRequestData.Setup(rd => rd.IsTelemetryOptedIn).Returns(false); var testOperationManager = new TestableProxyOperationManager(mockRequestData.Object, this.mockRequestSender.Object, this.mockTestHostManager.Object); this.mockTestHostManager .Setup(tm => tm.LaunchTestHostAsync(It.IsAny <TestProcessStartInfo>(), It.IsAny <CancellationToken>())) .Callback <TestProcessStartInfo, CancellationToken>( (testProcessStartInfo, cancellationToken) => { receivedTestProcessInfo = testProcessStartInfo; }) .Returns(Task.FromResult(true)); // Act. testOperationManager.SetupChannel(Enumerable.Empty <string>()); // Verify. Assert.IsTrue(receivedTestProcessInfo.Arguments.Contains("--telemetryoptedin false")); }