Skip to content

Commit f58ff43

Browse files
committed
add result value checks on tests
1 parent 61632da commit f58ff43

File tree

1 file changed

+27
-20
lines changed

1 file changed

+27
-20
lines changed

JixMinApiTests/Features/Todo/TodoEndpointsTests.cs

+27-20
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,23 @@ public async Task GetTodoByIdAsync_Returns_BadRequest_When_Id_Is_Empty()
1616
// Arrange
1717
var mediatorMock = new Mock<IMediator>();
1818
var emptyId = Guid.Empty;
19-
var expectedBadRequest = TypedResults.BadRequest<ValidationErrorDto>(
20-
new ValidationErrorDto(
21-
[new ValidationErrorItem("id", "id must not be an empty guid.")]
22-
));
19+
var expectedBadRequest = new ValidationErrorDto(
20+
[new ValidationErrorItem("id", "id must not be an empty guid.")]
21+
);
2322

2423
// Act
25-
var result = await TodoEndpoints.GetTodoByIdAsync(emptyId, mediatorMock.Object);
24+
var response = await TodoEndpoints.GetTodoByIdAsync(emptyId, mediatorMock.Object);
2625

2726
// Assert
28-
Assert.IsType<Results<BadRequest<ValidationErrorDto>, NotFound, Ok<TodoDto>>>(result);
29-
var badrequest = (BadRequest<ValidationErrorDto>)result.Result;
30-
Assert.NotNull(badrequest);
27+
Assert.IsType<Results<BadRequest<ValidationErrorDto>, NotFound, Ok<TodoDto>>>(response);
28+
29+
var result = (BadRequest<ValidationErrorDto>)response.Result;
30+
Assert.NotNull(result);
31+
Assert.Equal(StatusCodes.Status400BadRequest, result.StatusCode);
32+
33+
var value = Assert.IsType<ValidationErrorDto>(result.Value);
34+
Assert.True(value.ValidationErrors.Any());
35+
Assert.Equal(expectedBadRequest.ValidationErrors.FirstOrDefault(), value.ValidationErrors.FirstOrDefault());
3136
}
3237

3338
[Fact]
@@ -40,13 +45,14 @@ public async Task GetTodoByIdAsync_Returns_NotFound_When_Todo_Not_Found()
4045
.ReturnsAsync(new List<TodoDto>());
4146

4247
// Act
43-
var result = await TodoEndpoints.GetTodoByIdAsync(nonExistentId, mediatorMock.Object);
48+
var response = await TodoEndpoints.GetTodoByIdAsync(nonExistentId, mediatorMock.Object);
4449

4550
// Assert
46-
Assert.IsType<Results<BadRequest<ValidationErrorDto>, NotFound, Ok<TodoDto>>>(result);
47-
var notFoundResult = (NotFound)result.Result;
48-
49-
Assert.NotNull(notFoundResult);
51+
Assert.IsType<Results<BadRequest<ValidationErrorDto>, NotFound, Ok<TodoDto>>>(response);
52+
53+
var result = (NotFound)response.Result;
54+
Assert.NotNull(result);
55+
Assert.Equal(StatusCodes.Status404NotFound, result.StatusCode);
5056
}
5157

5258
[Fact]
@@ -55,21 +61,22 @@ public async Task GetTodoByIdAsync_Returns_Ok_When_Todo_Found()
5561
// Arrange
5662
var mediatorMock = new Mock<IMediator>();
5763
var existingId = Guid.NewGuid(); // Assuming this id exists
58-
var todoDto = new TodoDto(existingId, "", false); // Assuming todo with this id exists
64+
var todoDto = new TodoDto(existingId, "Test name", false); // Assuming todo with this id exists
5965

6066
mediatorMock.Setup(m => m.Send(It.IsAny<GetAllTodosQuery>(), CancellationToken.None))
6167
.ReturnsAsync(new List<TodoDto>() {
6268
todoDto
6369
});
6470

6571
// Act
66-
var result = await TodoEndpoints.GetTodoByIdAsync(existingId, mediatorMock.Object);
72+
var response = await TodoEndpoints.GetTodoByIdAsync(existingId, mediatorMock.Object);
6773

6874
// Assert
69-
Assert.IsType<Results<BadRequest<ValidationErrorDto>, NotFound, Ok<TodoDto>>>(result);
70-
var okResult = (Ok<TodoDto>)result.Result;
71-
72-
Assert.NotNull(okResult);
73-
Assert.Equal(todoDto, okResult.Value);
75+
Assert.IsType<Results<BadRequest<ValidationErrorDto>, NotFound, Ok<TodoDto>>>(response);
76+
77+
var result = (Ok<TodoDto>)response.Result;
78+
Assert.NotNull(result);
79+
Assert.Equal(StatusCodes.Status200OK, result.StatusCode);
80+
Assert.Equal(todoDto, result.Value);
7481
}
7582
}

0 commit comments

Comments
 (0)