public async Task GetWordsByCategoryAsync_ThrowsIfResponseStatusCodeIsNotSuccessful() { // Arrange var clientFactoryMock = GetHttpClientFactoryMock( HttpStatusCode.BadRequest, InvalidResponseText); var systemUnderTest = new WordsProvider(_gameOptionsMock, clientFactoryMock, _loggerMock); // Act Func <Task <IReadOnlyCollection <string> > > action = () => systemUnderTest.GetWordsByCategoryAsync(Category); // Assert await action.Should() .ThrowAsync <HttpRequestException>(); }
public async Task GetWordsByCategoryAsync_ThrowsIfResponseCannotBeParsed( string serverResponseContent) { // Arrange var clientFactoryMock = GetHttpClientFactoryMock( HttpStatusCode.OK, serverResponseContent); var systemUnderTest = new WordsProvider(_gameOptionsMock, clientFactoryMock, _loggerMock); // Act Func <Task <IReadOnlyCollection <string> > > action = () => systemUnderTest.GetWordsByCategoryAsync(Category); // Assert await action.Should() .ThrowAsync <JsonReaderException>(); }
public async Task GetWordsByCategoryAsync_CanReturnWordsByCategory() { // Arrange var clientFactoryMock = GetHttpClientFactoryMock( HttpStatusCode.OK, ServerResponses.WordAssociationsJsonResponse); var systemUnderTest = new WordsProvider(_gameOptionsMock, clientFactoryMock, _loggerMock); // Act var wordsByCategory = await systemUnderTest.GetWordsByCategoryAsync(Category); // Assert wordsByCategory.Should() .Contain("gardening"); wordsByCategory.Should() .Contain("collecting"); wordsByCategory.Should() .Contain("cooking"); }