public async void ShouldRouteRequestFromUserWithGatheredLanguageCorrectly()
        {
            var message = new Messaging
            {
                Sender = new Sender {
                    Id = "sample-registering-user-with-lang"
                },
                Recipient = new Recipient {
                    Id = "sample-page-id"
                },
                Timestamp = 12345678,
                Message   = new Message
                {
                    Mid        = "sample-message-id",
                    Text       = "sample-message-text",
                    QuickReply = new QuickReply {
                        Payload = new Payload(PayloadType.Year).ToJson()
                    }
                }
            };

            var builder = new RegisteringUserMessageHandlerBuilder();
            await builder.RegisteringUserMessageHandler.Handle(message);

            var user = await builder.FakeRegistrationDb.IncompleteUsers.FindAsync("sample-registering-user-with-lang");

            builder.GatherYearMessageHandlerMock.Verify(x =>
                                                        x.Handle(user, It.Is <Payload>(y => y.Type == PayloadType.Year)));
            builder.VerifyNoOtherCalls();
        }
        public async void ShouldRouteCancellationRequestCorrectly()
        {
            var message = new Messaging
            {
                Sender = new Sender {
                    Id = "sample-registering-user"
                },
                Recipient = new Recipient {
                    Id = "sample-page-id"
                },
                Timestamp = 12345678,
                Message   = new Message
                {
                    Mid        = "sample-message-id",
                    Text       = "sample-message-text",
                    QuickReply = new QuickReply {
                        Payload = new Payload(PayloadType.Cancel).ToJson()
                    }
                }
            };

            var builder = new RegisteringUserMessageHandlerBuilder();
            await builder.RegisteringUserMessageHandler.Handle(message);

            builder.CancelRegistrationMessageHandlerMock.Verify(x => x.Handle(message), Times.Once);
            builder.VerifyNoOtherCalls();
        }