Пример #1
0
        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>();
        }
Пример #2
0
        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>();
        }
Пример #3
0
        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>());
        }
Пример #4
0
        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>());
        }
Пример #5
0
        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();
        }