From dbed2a0e3685da4e94d5ec9916d695271ae7d18f Mon Sep 17 00:00:00 2001 From: StevanFreeborn Date: Mon, 11 Jul 2022 11:31:53 -0500 Subject: [PATCH] finished writing integration tests for seasons controller --- .../SeasonsControllerIntegrationTests.cs | 64 +++++++++++++++++-- .../unitTests/SeasonsControllerUnitTests.cs | 2 +- 2 files changed, 59 insertions(+), 7 deletions(-) diff --git a/server.tests/v1/integrationTests/SeasonsControllerIntegrationTests.cs b/server.tests/v1/integrationTests/SeasonsControllerIntegrationTests.cs index 39b7194..fe5f403 100644 --- a/server.tests/v1/integrationTests/SeasonsControllerIntegrationTests.cs +++ b/server.tests/v1/integrationTests/SeasonsControllerIntegrationTests.cs @@ -1,5 +1,10 @@ -using server.tests.Http; +using FluentAssertions; +using Microsoft.AspNetCore.Mvc; +using server.Models; +using server.tests.Helpers; +using server.tests.Http; using server.tests.Options; +using System.Net; using System.Text.Json; namespace server.tests.v1.integrationTests @@ -22,25 +27,72 @@ namespace server.tests.v1.integrationTests [Fact] public async Task GetSeasonsAsync_AllSeasons_Returns200StatusCodeWithSeasons() { - throw new NotImplementedException(); + var response = await _client.GetAsync(_endpoint); + + var data = await response.Content.ReadAsStreamAsync(); + + var seasons = JsonSerializer.Deserialize>(data, _serializerOptions); + + response.StatusCode.Should().Be(System.Net.HttpStatusCode.OK); + AssertHelper.CheckForRateLimitingHeaders(response.Headers); + + seasons.Should().NotBeNull(); + seasons.Should().BeOfType>(); + seasons.Should().HaveCountGreaterThan(0); } [Fact] public async Task GetSeasonByNumberAsync_SeasonOne_Returns200StatusCodeWithSeason() { - throw new NotImplementedException(); + var seasonNumber = 1; + + var url = $"{_endpoint}/{seasonNumber}"; + + var response = await _client.GetAsync(url); + + var data = await response.Content.ReadAsStreamAsync(); + + var season = JsonSerializer.Deserialize(data, _serializerOptions); + + response.StatusCode.Should().Be(HttpStatusCode.OK); + AssertHelper.CheckForRateLimitingHeaders(response.Headers); + + season.Should().NotBeNull(); + season.Should().BeOfType(); + season.SeasonNumber.Should().Be(seasonNumber); } [Fact] public async Task GetSeasonByNumberAsync_InvalidSeason_Returns404StatusCode() - { - throw new NotImplementedException(); + { + var seasonNumber = "test"; + + var url = $"{_endpoint}/{seasonNumber}"; + + var response = await _client.GetAsync(url); + + response.StatusCode.Should().Be(HttpStatusCode.NotFound); + AssertHelper.CheckForRateLimitingHeaders(response.Headers); } [Fact] public async Task GetSeasonByNumberAsync_ValidSeasonNumberForNonExistentSeason_Returns404StatusCode() { - throw new NotImplementedException(); + var seasonNumber = 20; + + var url = $"{_endpoint}/{seasonNumber}"; + + var response = await _client.GetAsync(url); + + var data = await response.Content.ReadAsStreamAsync(); + + var details = JsonSerializer.Deserialize(data, _serializerOptions); + + response.StatusCode.Should().Be(HttpStatusCode.NotFound); + AssertHelper.CheckForRateLimitingHeaders(response.Headers); + + details.Should().NotBeNull(); + details.Should().BeOfType(); } } diff --git a/server.tests/v1/unitTests/SeasonsControllerUnitTests.cs b/server.tests/v1/unitTests/SeasonsControllerUnitTests.cs index 327372d..aa288f5 100644 --- a/server.tests/v1/unitTests/SeasonsControllerUnitTests.cs +++ b/server.tests/v1/unitTests/SeasonsControllerUnitTests.cs @@ -84,7 +84,7 @@ namespace server.tests.v1.unitTests response.StatusCode.Should().Be((int)HttpStatusCode.OK); season.Should().NotBeNull(); - season.Should().BeOfType(); + season.Should().BeOfType(); } [Fact]