Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
246 changes: 0 additions & 246 deletions Dotnet.Samples.AspNetCore.WebApi.Tests/PlayerServiceTests.cs

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
using Dotnet.Samples.AspNetCore.WebApi.Controllers;
using Dotnet.Samples.AspNetCore.WebApi.Models;
using Dotnet.Samples.AspNetCore.WebApi.Services;
using Dotnet.Samples.AspNetCore.WebApi.Tests.Utilities;
using FluentAssertions;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.HttpResults;
using Moq;

namespace Dotnet.Samples.AspNetCore.WebApi.Tests;
namespace Dotnet.Samples.AspNetCore.WebApi.Tests.Unit;

public class PlayerControllerTests
{
Expand All @@ -15,39 +16,39 @@
* ---------------------------------------------------------------------- */

[Fact]
[Trait("Category", "PostAsync")]
[Trait("Category", "Unit")]
public async Task GivenPostAsync_WhenModelStateIsInvalid_ThenResponseStatusCodeShouldBe400BadRequest()
{
// Arrange
var service = new Mock<IPlayerService>();
var logger = PlayerMocks.LoggerMock<PlayersController>();

var controller = new PlayersController(service.Object, logger.Object);
controller.ModelState.Merge(PlayerStubs.CreateModelError("FirstName", "Required"));

// Act
var response = await controller.PostAsync(It.IsAny<Player>()) as BadRequest;

// Assert

Check warning on line 32 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 12 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:239
response.Should().NotBeNull().And.BeOfType<BadRequest>();
response?.StatusCode.Should().Be(StatusCodes.Status400BadRequest);
}

[Fact]
[Trait("Category", "PostAsync")]
[Trait("Category", "Unit")]
public async Task GivenPostAsync_WhenServiceRetrieveByIdAsyncReturnsPlayer_ThenResponseStatusCodeShouldBe409Conflict()
{

Check warning on line 40 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 10 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:250
// Arrange
var player = PlayerFakes.CreateOneByIdFromStarting11(10);
var service = new Mock<IPlayerService>();
service.Setup(service => service.RetrieveByIdAsync(It.IsAny<long>())).ReturnsAsync(player);
var logger = PlayerMocks.LoggerMock<PlayersController>();

Check warning on line 46 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 7 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:331
var controller = new PlayersController(service.Object, logger.Object);

// Act
var response = await controller.PostAsync(player) as Conflict;

Check warning on line 51 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 12 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:159
// Assert
service.Verify(service => service.RetrieveByIdAsync(It.IsAny<long>()), Times.Exactly(1));
response.Should().NotBeNull().And.BeOfType<Conflict>();
Expand All @@ -55,7 +56,7 @@
}

[Fact]
[Trait("Category", "PostAsync")]
[Trait("Category", "Unit")]
public async Task GivenPostAsync_WhenServiceRetrieveByIdAsyncReturnsNull_ThenResponseStatusCodeShouldBe201Created()
{
// Arrange
Expand Down Expand Up @@ -88,20 +89,20 @@
* ---------------------------------------------------------------------- */

[Fact]
[Trait("Category", "GetAsync")]
[Trait("Category", "Unit")]
public async Task GivenGetAsync_WhenServiceRetrieveAsyncReturnsListOfPlayers_ThenResponseShouldBeEquivalentToListOfPlayers()
{
// Arrange
var players = PlayerFakes.CreateStarting11();
var service = new Mock<IPlayerService>();
service.Setup(service => service.RetrieveAsync()).ReturnsAsync(players);
var logger = PlayerMocks.LoggerMock<PlayersController>();

var controller = new PlayersController(service.Object, logger.Object);

// Act
var response = await controller.GetAsync() as Ok<List<Player>>;

Check warning on line 105 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 8 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:120
// Assert
service.Verify(service => service.RetrieveAsync(), Times.Exactly(1));
response.Should().NotBeNull().And.BeOfType<Ok<List<Player>>>();
Expand All @@ -111,77 +112,77 @@
}

[Fact]
[Trait("Category", "GetAsync")]
[Trait("Category", "Unit")]
public async Task GivenGetAsync_WhenServiceRetrieveAsyncReturnsEmptyList_ThenResponseStatusCodeShouldBe404NotFound()
{
// Arrange
var players = new List<Player>(); // Count = 0
var service = new Mock<IPlayerService>();
service.Setup(service => service.RetrieveAsync()).ReturnsAsync(players);
var logger = PlayerMocks.LoggerMock<PlayersController>();

var controller = new PlayersController(service.Object, logger.Object);

// Act
var response = await controller.GetAsync() as NotFound;

Check warning on line 128 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 8 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:97
// Assert
service.Verify(service => service.RetrieveAsync(), Times.Exactly(1));
response.Should().NotBeNull().And.BeOfType<NotFound>();
response?.StatusCode.Should().Be(StatusCodes.Status404NotFound);
}

[Fact]
[Trait("Category", "GetByIdAsync")]
[Trait("Category", "Unit")]
public async Task GivenGetByIdAsync_WhenServiceRetrieveByIdAsyncReturnsNull_ThenResponseStatusCodeShouldBe404NotFound()
{

Check warning on line 138 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 8 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:152
// Arrange
var service = new Mock<IPlayerService>();
service
.Setup(service => service.RetrieveByIdAsync(It.IsAny<long>()))
.ReturnsAsync(null as Player);
var logger = PlayerMocks.LoggerMock<PlayersController>();

var controller = new PlayersController(service.Object, logger.Object);

// Act
var response = await controller.GetByIdAsync(It.IsAny<long>()) as NotFound;

Check warning on line 150 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 13 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:259

Check warning on line 150 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 13 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:309
// Assert
service.Verify(service => service.RetrieveByIdAsync(It.IsAny<long>()), Times.Exactly(1));
response.Should().NotBeNull().And.BeOfType<NotFound>();
response?.StatusCode.Should().Be(StatusCodes.Status404NotFound);
}

[Fact]
[Trait("Category", "GetByIdAsync")]
[Trait("Category", "Unit")]
public async Task GivenGetByIdAsync_WhenServiceRetrieveByIdAsyncReturnsPlayer_ThenResponseStatusCodeShouldBe200Ok()
{

Check warning on line 160 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 8 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:130

Check warning on line 160 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 11 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:271

Check warning on line 160 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 11 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:321
// Arrange
var player = PlayerFakes.CreateOneByIdFromStarting11(10);

Check warning on line 162 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 10 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:198
var service = new Mock<IPlayerService>();
service.Setup(service => service.RetrieveByIdAsync(It.IsAny<long>())).ReturnsAsync(player);
var logger = PlayerMocks.LoggerMock<PlayersController>();

var controller = new PlayersController(service.Object, logger.Object);

// Act
var response = await controller.GetByIdAsync(It.IsAny<long>()) as Ok<Player>;

Check warning on line 171 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 12 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:39
// Assert
service.Verify(service => service.RetrieveByIdAsync(It.IsAny<long>()), Times.Exactly(1));
response.Should().NotBeNull().And.BeOfType<Ok<Player>>();
response?.StatusCode.Should().Be(StatusCodes.Status200OK);
response?.Value.Should().NotBeNull().And.BeOfType<Player>();
response?.Value.Should().BeEquivalentTo(player);
}

[Fact]
[Trait("Category", "GetBySquadNumberAsync")]
[Trait("Category", "Unit")]
public async Task GivenGetBySquadNumberAsync_WhenServiceRetrieveBySquadNumberAsyncReturnsNull_ThenResponseStatusCodeShouldBe404NotFound()
{
// Arrange
var service = new Mock<IPlayerService>();

Check warning on line 185 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 12 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:224
service
.Setup(service => service.RetrieveBySquadNumberAsync(It.IsAny<int>()))
.ReturnsAsync(null as Player);
Expand All @@ -194,17 +195,17 @@

// Assert
service.Verify(
service => service.RetrieveBySquadNumberAsync(It.IsAny<int>()),
Times.Exactly(1)
);
response.Should().NotBeNull().And.BeOfType<NotFound>();
response?.StatusCode.Should().Be(StatusCodes.Status404NotFound);
}

[Fact]
[Trait("Category", "GetBySquadNumberAsync")]
[Trait("Category", "Unit")]
public async Task GivenGetBySquadNumberAsync_WhenServiceRetrieveBySquadNumberAsyncReturnsPlayer_ThenResponseStatusCodeShouldBe200Ok()
{

Check warning on line 208 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 10 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:152
// Arrange
var player = PlayerFakes.CreateOneByIdFromStarting11(10);
var service = new Mock<IPlayerService>();
Expand All @@ -220,65 +221,65 @@

// Assert
service.Verify(
service => service.RetrieveBySquadNumberAsync(It.IsAny<int>()),
Times.Exactly(1)
);
response.Should().NotBeNull().And.BeOfType<Ok<Player>>();
response?.StatusCode.Should().Be(StatusCodes.Status200OK);
response?.Value.Should().NotBeNull().And.BeOfType<Player>();
response?.Value.Should().BeEquivalentTo(player);
}

/* -------------------------------------------------------------------------
* HTTP PUT
* ---------------------------------------------------------------------- */

Check warning on line 236 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 12 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:173
[Fact]
[Trait("Category", "PutAsync")]
[Trait("Category", "Unit")]
public async Task GivenPutAsync_WhenModelStateIsInvalid_ThenResponseStatusCodeShouldBe400BadRequest()
{
// Arrange
var service = new Mock<IPlayerService>();
var logger = PlayerMocks.LoggerMock<PlayersController>();

var controller = new PlayersController(service.Object, logger.Object);
controller.ModelState.Merge(PlayerStubs.CreateModelError("FirstName", "Required"));

// Act
var response =
await controller.PutAsync(It.IsAny<long>(), It.IsAny<Player>()) as BadRequest;

Check warning on line 251 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 12 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:20
// Assert
response.Should().NotBeNull().And.BeOfType<BadRequest>();
response?.StatusCode.Should().Be(StatusCodes.Status400BadRequest);
}

[Fact]
[Trait("Category", "PutAsync")]
[Trait("Category", "Unit")]
public async Task GivenPutAsync_WhenServiceRetrieveByIdAsyncReturnsNull_ThenResponseStatusCodeShouldBe404NotFound()
{

Check warning on line 260 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 10 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:30
// Arrange
var service = new Mock<IPlayerService>();
service
.Setup(service => service.RetrieveByIdAsync(It.IsAny<long>()))
.ReturnsAsync(null as Player);
var logger = PlayerMocks.LoggerMock<PlayersController>();

var controller = new PlayersController(service.Object, logger.Object);

// Act
var response = await controller.PutAsync(It.IsAny<long>(), It.IsAny<Player>()) as NotFound;

Check warning on line 272 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 13 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:137
// Assert
service.Verify(service => service.RetrieveByIdAsync(It.IsAny<long>()), Times.Exactly(1));
response.Should().NotBeNull().And.BeOfType<NotFound>();
response?.StatusCode.Should().Be(StatusCodes.Status404NotFound);
}

[Fact]
[Trait("Category", "PutAsync")]
[Trait("Category", "Unit")]
public async Task GivenPutAsync_WhenServiceRetrieveByIdAsyncReturnsPlayer_ThenResponseStatusCodeShouldBe204NoContent()
{

Check warning on line 282 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 11 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:149
// Arrange
var id = 10;
var player = PlayerFakes.CreateOneByIdFromStarting11(id);
Expand All @@ -304,37 +305,37 @@
* ---------------------------------------------------------------------- */

[Fact]
[Trait("Category", "DeleteAsync")]
[Trait("Category", "Unit")]
public async Task GivenDeleteAsync_WhenServiceRetrieveByIdAsyncReturnsNull_ThenResponseStatusCodeShouldBe404NotFound()
{
// Arrange
var service = new Mock<IPlayerService>();
service
.Setup(service => service.RetrieveByIdAsync(It.IsAny<long>()))
.ReturnsAsync(null as Player);
var logger = PlayerMocks.LoggerMock<PlayersController>();

var controller = new PlayersController(service.Object, logger.Object);

// Act
var response = await controller.DeleteAsync(It.IsAny<long>()) as NotFound;

Check warning on line 322 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 13 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:137
// Assert
service.Verify(service => service.RetrieveByIdAsync(It.IsAny<long>()), Times.Exactly(1));
response.Should().NotBeNull().And.BeOfType<NotFound>();
response?.StatusCode.Should().Be(StatusCodes.Status404NotFound);
}

[Fact]
[Trait("Category", "DeleteAsync")]
[Trait("Category", "Unit")]
public async Task GivenDeleteAsync_WhenServiceRetrieveByIdAsyncReturnsPlayer_ThenResponseStatusCodeShouldBe204NoContent()
{

Check warning on line 332 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 11 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:149
// Arrange
var player = PlayerFakes.CreateOneByIdFromStarting11(10);
var service = new Mock<IPlayerService>();
service.Setup(service => service.RetrieveByIdAsync(It.IsAny<long>())).ReturnsAsync(player);
service.Setup(service => service.DeleteAsync(It.IsAny<long>()));
var logger = PlayerMocks.LoggerMock<PlayersController>();

Check warning on line 338 in Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs

View check run for this annotation

Codeac.io / Codeac Code Quality

CodeDuplication

This block of 7 lines is too similar to Dotnet.Samples.AspNetCore.WebApi.Tests/Unit/PlayerControllerTests.cs:39

var controller = new PlayersController(service.Object, logger.Object);

Expand Down
Loading
Loading