public void NegotiateShouldThrowInvalidOperationExceptionWhenClientIsNull() { // Arrange IMultiplayerSessionConnectionContext connectionContext = Substitute.For <IMultiplayerSessionConnectionContext>(); connectionContext.Client.Returns((IClient)null); connectionContext.IpAddress.Returns(TestConstants.TEST_IP_ADDRESS); Disconnected connectionState = new Disconnected(); // Act Action action = () => connectionState.NegotiateReservation(connectionContext); // Assert action.ShouldThrow <InvalidOperationException>(); }
public void NegotiateShouldThrowInvalidOperationExceptionWhenIpAddressIsNull() { // Arrange IClient client = Substitute.For <IClient>(); IMultiplayerSessionConnectionContext connectionContext = Substitute.For <IMultiplayerSessionConnectionContext>(); connectionContext.Client.Returns(client); connectionContext.IpAddress.Returns((string)null); Disconnected connectionState = new Disconnected(); // Act Action action = () => connectionState.NegotiateReservation(connectionContext); // Assert action.ShouldThrow <InvalidOperationException>(); }
public void NegotiateShouldTransitionToEstablishingSessionPolicyState() { // Arrange IClient serverClient = Substitute.For <IClient>(); serverClient.IsConnected.Returns(false); serverClient .When(client => client.Start(Arg.Any <string>())) .Do(info => serverClient.IsConnected.Returns(true)); IMultiplayerSessionConnectionContext connectionContext = Substitute.For <IMultiplayerSessionConnectionContext>(); connectionContext.Client.Returns(serverClient); Disconnected connectionState = new Disconnected(); // Act connectionState.NegotiateReservation(connectionContext); // Assert connectionContext.Received().UpdateConnectionState(Arg.Any <EstablishingSessionPolicy>()); }
public void NegotiateShouldSendMultiplayerSessionPolicyRequestPacketToClient() { // Arrange IClient serverClient = Substitute.For <IClient>(); serverClient.IsConnected.Returns(false); serverClient .When(client => client.Start(Arg.Any <string>())) .Do(info => serverClient.IsConnected.Returns(true)); IMultiplayerSessionConnectionContext connectionContext = Substitute.For <IMultiplayerSessionConnectionContext>(); connectionContext.Client.Returns(serverClient); Disconnected connectionState = new Disconnected(); // Act connectionState.NegotiateReservation(connectionContext); // Assert serverClient.Received().Send(Arg.Any <MultiplayerSessionPolicyRequest>()); }
public void NegotiateShouldStartTheClientOnTheContext() { // Arrange IClient serverClient = Substitute.For <IClient>(); serverClient.IsConnected.Returns(false); serverClient .When(client => client.Start(Arg.Any <string>())) .Do(info => serverClient.IsConnected.Returns(true)); IMultiplayerSessionConnectionContext connectionContext = Substitute.For <IMultiplayerSessionConnectionContext>(); connectionContext.Client.Returns(serverClient); Disconnected connectionState = new Disconnected(); // Act connectionState.NegotiateReservation(connectionContext); // Assert serverClient.IsConnected.Should().BeTrue(); }