private void ThenItShouldReturnAGlobalXMessage(GlobalXMessage message) { _globalXMessage.ShouldNotBeNull(); _globalXMessage.ShouldSatisfyAllConditions( () => _globalXMessage.Created.ShouldBe(message.Created), () => _globalXMessage.Text.ShouldBe(message.Text), () => { if (message.MessageParts != null) { _globalXMessage.MessageParts.ShouldNotBeNull(); _globalXMessage.MessageParts.Length.ShouldBe(message.MessageParts.Length); for (int i = 0; i < _globalXMessage.MessageParts.Length; i++) { _globalXMessage.MessageParts[i].MessageType.ShouldBe(message.MessageParts[i].MessageType); _globalXMessage.MessageParts[i].Text.ShouldBe(message.MessageParts[i].Text); _globalXMessage.MessageParts[i].UserId.ShouldBe(message.MessageParts[i].UserId); if (message.MessageParts[i].ListItems != null) { _globalXMessage.MessageParts[i].ListItems .SequenceEqual(message.MessageParts[i].ListItems).ShouldBeTrue(); } } } else { _globalXMessage.MessageParts.ShouldBeNull(); } }, () => _globalXMessage.Sender.ShouldBeNull(), () => _globalXMessage.RoomId.ShouldBe(message.RoomId), () => _globalXMessage.RoomType.ShouldBe(message.RoomType) ); }
internal void TestProcessMessageWebhookCallback(string body, string messageId, WebexTeamsMessage apiResponse, WebexTeamsPerson sender, GlobalXMessage output) { this.Given(x => GivenACallbackBody(body)) .When(x => WhenProcessingAWebhookCallback(messageId, apiResponse, output, sender)) .Then(x => ThenItShouldReturnTheGlobalXMessage(output)) .BDDfy(); }
internal void TestUnsuccessfulParseCreateMessageRequest(GlobalXMessage input, Type exceptionType, string message) { this.Given(x => GivenAGlobalXMessage(input)) .When(x => WhenParsingACreateMessageRequest()) .Then(x => ThenItShouldThrowAnExceptionOfType(exceptionType)) .And(x => ThenTheExceptionMessageShouldContain(message)) .BDDfy(); }
internal void TestParseCreateMessageRequest(GlobalXMessage input, CreateMessageRequest output) { this.Given(x => GivenAGlobalXMessage(input)) .When(x => WhenParsingACreateMessageRequest()) .Then(x => ThenItShouldReturnACreateMessageRequest(output)) .And(x => ThenItShouldNotThrowAnException()) .BDDfy(); }
internal void TestParseMessage(WebexTeamsMessage input, GlobalXMessage output) { this.Given(x => GivenAWebexTeamsMessage(input)) .When(x => WhenParsingAMessage()) .Then(x => ThenItShouldReturnAGlobalXMessage(output)) .And(x => ThenItShouldNotThrowAnException()) .BDDfy(); }
private async void WhenProcessingAWebhookCallback(string messageId, WebexTeamsMessage apiResponse, GlobalXMessage parsedMessage, WebexTeamsPerson sender) { _apiService.GetMessageAsync(messageId).Returns(Task.FromResult(apiResponse)); _messageParser .ParseMessage(Arg.Is <WebexTeamsMessage>(x => x.Id == apiResponse.Id && x.Html == apiResponse.Html)) .Returns(parsedMessage); _apiService.GetPersonAsync(apiResponse.PersonId).Returns(Task.FromResult(sender)); _result = await _subject.ProcessMessageWebhookCallbackAsync(_callbackBody); }
private void WhenParsingAMessage() { try { _globalXMessage = _subject.ParseMessage(_webexTeamsMessage); } catch (Exception e) { _exception = e; } }
private void ThenItShouldReturnTheGlobalXMessage(GlobalXMessage result) { _result.ShouldNotBeNull(); _result.ShouldSatisfyAllConditions( () => _result.Created.ShouldBe(result.Created), () => _result.Text.ShouldBe(result.Text), () => { if (result.MessageParts != null) { _result.MessageParts.ShouldNotBeNull(); _result.MessageParts.Length.ShouldBe(result.MessageParts.Length); for (int i = 0; i < _result.MessageParts.Length; i++) { _result.MessageParts[i].MessageType.ShouldBe(result.MessageParts[i].MessageType); _result.MessageParts[i].Text.ShouldBe(result.MessageParts[i].Text); _result.MessageParts[i].UserId.ShouldBe(result.MessageParts[i].UserId); } } else { _result.MessageParts.ShouldBeNull(); } }, () => { if (result.Sender != null) { ComparePeople(result.Sender, _result.Sender); } else { _result.Sender.ShouldBeNull(); } }, () => _result.RoomId.ShouldBe(result.RoomId), () => _result.RoomType.ShouldBe(result.RoomType) ); }
private void GivenAGlobalXMessage(GlobalXMessage message) { _globalXMessage = message; }