Beispiel #1
0
        public async Task Mutate_messages()
        {
            /* Given */
            _chat.AddMessage(new ReceivedMessage
            {
                Content = "test",
                FromId  = "1",
                SentAt  = DateTime.Now.Date
            });

            string id = "1";

            _transportReader.AddMessageToRead(new OperationMessage
            {
                Id   = id,
                Type = MessageType.GQL_CONNECTION_INIT
            });
            _transportReader.AddMessageToRead(new OperationMessage
            {
                Id      = id,
                Type    = MessageType.GQL_START,
                Payload = JObject.FromObject(new OperationMessagePayload
                {
                    OperationName = "",
                    Query         = @"mutation AddMessage($message: MessageInputType!) {
  addMessage(message: $message) {
    from {
      id
      displayName
    }
    content
  }
}",
                    Variables     = JObject.Parse(@"{
  ""message"": {
        ""content"": ""Message"",
        ""fromId"": ""1""
    }
}")
                })
            });
            _transportReader.AddMessageToRead(new OperationMessage
            {
                Id   = id,
                Type = MessageType.GQL_CONNECTION_TERMINATE
            });

            /* When */
            await _server.OnConnect();

            /* Then */
            Assert.Contains(_transportWriter.WrittenMessages, message => message.Type == MessageType.GQL_CONNECTION_ACK);
            Assert.Contains(_transportWriter.WrittenMessages, message => message.Type == MessageType.GQL_DATA);
            Assert.Contains(_transportWriter.WrittenMessages, message => message.Type == MessageType.GQL_COMPLETE);
        }
    public async Task Listener_BeforeHandle()
    {
        /* Given */
        var expected = new OperationMessage
        {
            Type = MessageType.GQL_CONNECTION_INIT
        };

        _transportReader.AddMessageToRead(expected);
        await _transportReader.Complete();

        /* When */
        await _sut.OnConnect();

        /* Then */
        await _messageListener.Received().BeforeHandleAsync(Arg.Is <MessageHandlingContext>(context =>
                                                                                            context.Writer == _transportWriter &&
                                                                                            context.Reader == _transportReader &&
                                                                                            context.Subscriptions == _subscriptionManager &&
                                                                                            context.Message == expected));
    }
Beispiel #3
0
    public async Task Receive_init()
    {
        /* Given */
        var expected = new OperationMessage
        {
            Type = MessageType.GQL_CONNECTION_INIT
        };

        _transportReader.AddMessageToRead(expected);
        await _transportReader.Complete();

        /* When */
        await _server.OnConnect();

        /* Then */
        Assert.Contains(_transportWriter.WrittenMessages,
                        message => message.Type == MessageType.GQL_CONNECTION_ACK);
    }