Skip to content

Commit d8aefda

Browse files
Merge branch 'main' into seo/53168-fluentvalidation-in-aspnet
2 parents 13013b6 + f246996 commit d8aefda

198 files changed

Lines changed: 2516 additions & 2755 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎aspnetcore-webapi/UsingResultPatternInNETWebAPI/Tests/ApiApplicationFactory.cs‎

Lines changed: 0 additions & 5 deletions
This file was deleted.

‎aspnetcore-webapi/UsingResultPatternInNETWebAPI/Tests/Controllers/ContactControllerIntegrationTest.cs‎

Lines changed: 0 additions & 141 deletions
This file was deleted.
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
namespace Tests.Endpoints;
2+
3+
public class ContactEndpointsTests(WebApplicationFactory<Program> factory)
4+
: IClassFixture<WebApplicationFactory<Program>>
5+
{
6+
private const string ExistingId = "ffffffff-ffff-ffff-ffff-ffffffffffff";
7+
private const string NonExistingId = "00000000-0000-0000-0000-000000000000";
8+
9+
private readonly HttpClient _client = factory.CreateClient();
10+
11+
[Theory]
12+
[InlineData(1)]
13+
[InlineData(2)]
14+
[InlineData(3)]
15+
[InlineData(4)]
16+
[InlineData(5)]
17+
public async Task GetAll_ReturnsOk(int version)
18+
{
19+
var response = await _client.GetAsync($"/api/v{version}/contacts", TestContext.Current.CancellationToken);
20+
21+
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
22+
}
23+
24+
[Theory]
25+
[InlineData(1)]
26+
[InlineData(2)]
27+
[InlineData(3)]
28+
[InlineData(4)]
29+
[InlineData(5)]
30+
public async Task GetById_ForExistingContact_ReturnsOk(int version)
31+
{
32+
var response = await _client.GetAsync(
33+
$"/api/v{version}/contacts/{ExistingId}", TestContext.Current.CancellationToken);
34+
35+
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
36+
}
37+
38+
[Theory]
39+
[InlineData(1, HttpStatusCode.OK)]
40+
[InlineData(2, HttpStatusCode.NotFound)]
41+
[InlineData(3, HttpStatusCode.NotFound)]
42+
[InlineData(4, HttpStatusCode.NotFound)]
43+
[InlineData(5, HttpStatusCode.NotFound)]
44+
public async Task GetById_ForNonExistingContact_ReturnsTheVersionsStatusCode(
45+
int version, HttpStatusCode statusCode)
46+
{
47+
var response = await _client.GetAsync(
48+
$"/api/v{version}/contacts/{NonExistingId}", TestContext.Current.CancellationToken);
49+
50+
Assert.Equal(statusCode, response.StatusCode);
51+
}
52+
53+
[Theory]
54+
[InlineData(3)]
55+
[InlineData(4)]
56+
[InlineData(5)]
57+
public async Task GetById_ForNonExistingContact_ReturnsProblemDetails(int version)
58+
{
59+
var response = await _client.GetAsync(
60+
$"/api/v{version}/contacts/{NonExistingId}", TestContext.Current.CancellationToken);
61+
62+
Assert.Equal("application/problem+json", response.Content.Headers.ContentType?.MediaType);
63+
}
64+
65+
[Theory]
66+
[InlineData(1)]
67+
[InlineData(2)]
68+
[InlineData(3)]
69+
[InlineData(4)]
70+
[InlineData(5)]
71+
public async Task Create_WithNewEmail_ReturnsCreated(int version)
72+
{
73+
var response = await _client.PostAsJsonAsync(
74+
$"/api/v{version}/contacts",
75+
new CreateContactDto($"asmith-v{version}@unknown.com"),
76+
TestContext.Current.CancellationToken);
77+
78+
Assert.Equal(HttpStatusCode.Created, response.StatusCode);
79+
}
80+
81+
[Theory]
82+
[InlineData(1)]
83+
[InlineData(2)]
84+
[InlineData(3)]
85+
[InlineData(4)]
86+
[InlineData(5)]
87+
public async Task Create_WithInvalidEmail_ReturnsBadRequest(int version)
88+
{
89+
var response = await _client.PostAsJsonAsync(
90+
$"/api/v{version}/contacts",
91+
new CreateContactDto("NOT_AN_EMAIL"),
92+
TestContext.Current.CancellationToken);
93+
94+
Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
95+
}
96+
97+
[Theory]
98+
[InlineData(1, HttpStatusCode.Created)]
99+
[InlineData(2, HttpStatusCode.BadRequest)]
100+
[InlineData(3, HttpStatusCode.Conflict)]
101+
[InlineData(4, HttpStatusCode.Conflict)]
102+
[InlineData(5, HttpStatusCode.Conflict)]
103+
public async Task Create_WithExistingEmail_ReturnsTheVersionsStatusCode(
104+
int version, HttpStatusCode statusCode)
105+
{
106+
var response = await _client.PostAsJsonAsync(
107+
$"/api/v{version}/contacts",
108+
new CreateContactDto("jdoe@unknown.com"),
109+
TestContext.Current.CancellationToken);
110+
111+
Assert.Equal(statusCode, response.StatusCode);
112+
}
113+
}
Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
1-
global using Xunit;
2-
global using Xunit.Abstractions;
3-
global using Microsoft.AspNetCore.Mvc.Testing;
41
global using System.Net;
52
global using System.Net.Http.Json;
6-
global using UsingResultPatternInNETWebAPI;
3+
global using Microsoft.AspNetCore.Mvc.Testing;
74
global using UsingResultPatternInNETWebAPI.Dtos;
8-
global using UsingResultPatternInNETWebAPI.Errors;
95
global using UsingResultPatternInNETWebAPI.Exceptions;
106
global using UsingResultPatternInNETWebAPI.Repositories;
11-
global using UsingResultPatternInNETWebAPI.Services;
7+
global using UsingResultPatternInNETWebAPI.Services;
8+
global using Xunit;

‎aspnetcore-webapi/UsingResultPatternInNETWebAPI/Tests/Services/BasicContactServiceIntegrationTest.cs‎

Lines changed: 0 additions & 69 deletions
This file was deleted.

0 commit comments

Comments
 (0)