Пример #1
0
        public void FromObject_ThrowsForNullValue()
        {
            var exception = Assert.Throws <ArgumentNullException>(
                () => JsonSerializationUtilities.FromObject(value: null));

            Assert.Equal("value", exception.ParamName);
        }
Пример #2
0
        public void JsonSerialization_ReturnsCorrectJson()
        {
            var version = new SemanticVersion(major: 1, minor: 2, patch: 3);
            var request = new HandshakeRequest(protocolVersion: version, minimumProtocolVersion: version);
            var payload = JsonSerializationUtilities.FromObject(request);
            var message = new Message(
                requestId: "a",
                type: MessageType.Request,
                method: MessageMethod.None,
                payload: payload);

            var actualJson   = TestUtilities.Serialize(message);
            var expectedJson = "{\"RequestId\":\"a\",\"Type\":\"Request\",\"Method\":\"None\",\"Payload\":{\"ProtocolVersion\":\"1.2.3\",\"MinimumProtocolVersion\":\"1.2.3\"}}";

            Assert.Equal(expectedJson, actualJson);
        }
        private async Task Verify(
            SemanticVersion requestedProtocolVersion,
            SemanticVersion requestedMinimumProtocolVersion,
            SemanticVersion negotiatedProtocolVersion)
        {
            using (var handshake = CreateHandshake())
            {
                var responseHandler = new Mock <IResponseHandler>(MockBehavior.Strict);

                responseHandler.Setup(x => x.SendResponseAsync(
                                          It.IsNotNull <Message>(),
                                          It.IsNotNull <HandshakeResponse>(),
                                          It.IsAny <CancellationToken>()))
                .Returns(Task.FromResult(0));

                var request        = new HandshakeRequest(requestedProtocolVersion, requestedMinimumProtocolVersion);
                var inboundMessage = new Message(
                    requestId: "a",
                    type: MessageType.Request,
                    method: MessageMethod.Handshake,
                    payload: JsonSerializationUtilities.FromObject(request));

                await handshake.HandleResponseAsync(
                    Mock.Of <IConnection>(),
                    inboundMessage,
                    responseHandler.Object,
                    CancellationToken.None);

                var expectedResponseCode = negotiatedProtocolVersion == null
                    ? MessageResponseCode.Error : MessageResponseCode.Success;

                responseHandler.Verify(x => x.SendResponseAsync(
                                           It.Is <Message>(message => message == inboundMessage),
                                           It.Is <HandshakeResponse>(response => response.ResponseCode == expectedResponseCode &&
                                                                     response.ProtocolVersion == negotiatedProtocolVersion),
                                           It.Is <CancellationToken>(token => !token.IsCancellationRequested)),
                                       Times.Once);
            }
        }
Пример #4
0
        public void FromObject_ReturnsCorrectJObject()
        {
            var jObject = JsonSerializationUtilities.FromObject(_expectedObject);

            Assert.Equal(_expectedJson, jObject.ToString(Formatting.None));
        }