public async void CoreDeserializeRequestDataAsyncFromStreamWhenJsonStreamIsNull()
        {
            var jsonRpcSerializer = new Utf8JsonRpcSerializer();

            await Assert.ThrowsAsync <ArgumentNullException>(() =>
                                                             jsonRpcSerializer.DeserializeRequestDataAsync((Stream)null));
        }
        public async void CoreDeserializeRequestDataAsyncFromStreamWhenJsonStreamIsEmpty()
        {
            var jsonRpcSerializer = new Utf8JsonRpcSerializer();

            var exception = await Assert.ThrowsAsync <JsonRpcException>(() =>
                                                                        jsonRpcSerializer.DeserializeRequestDataAsync(Stream.Null));

            Assert.Equal(JsonRpcErrorCodes.InvalidJson, exception.ErrorCode);
        }
        public async void CoreDeserializeRequestDatatAsyncFromStream()
        {
            var jsonSample        = EmbeddedResourceManager.GetString("Assets.v2_core_req.json");
            var jsonRpcSerializer = new Utf8JsonRpcSerializer();

            jsonRpcSerializer.RequestContracts["m"] = new JsonRpcRequestContract();

            using (var jsonStream = new MemoryStream(Encoding.UTF8.GetBytes(jsonSample)))
            {
                var jsonRpcData = await jsonRpcSerializer.DeserializeRequestDataAsync(jsonStream);

                Assert.False(jsonRpcData.IsBatch);

                var jsonRpcItem = jsonRpcData.Item;

                Assert.True(jsonRpcItem.IsValid);

                var jsonRpcMessage = jsonRpcItem.Message;

                Assert.Equal(0L, jsonRpcMessage.Id);
                Assert.Equal("m", jsonRpcMessage.Method);
                Assert.Equal(JsonRpcParametersType.None, jsonRpcMessage.ParametersType);
            }
        }