-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
14b53b8
commit 84ad082
Showing
44 changed files
with
2,079 additions
and
2 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
global using System.Threading.Tasks; | ||
global using System; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
|
||
<PropertyGroup> | ||
<TargetFramework>net7.0</TargetFramework> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<PackageReference Include="FluentAssertions" Version="6.11.0" /> | ||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" /> | ||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="7.0.0" /> | ||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" /> | ||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.3" /> | ||
<PackageReference Include="NSubstitute" Version="5.0.0" /> | ||
<PackageReference Include="xunit" Version="2.5.0" /> | ||
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="7.0.9" /> | ||
<PackageReference Include="Ogooreck" Version="0.6.0" /> | ||
<PackageReference Include="Bogus" Version="34.0.2" /> | ||
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.0"> | ||
<PrivateAssets>all</PrivateAssets> | ||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||
</PackageReference> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<ProjectReference Include="..\Helpdesk.Api\Helpdesk.Api.csproj" /> | ||
</ItemGroup> | ||
</Project> |
40 changes: 40 additions & 0 deletions
40
Helpdesk.Api.Tests/Incidents/AcknowledgeResolutionIncidentTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
using Helpdesk.Api.Incidents; | ||
using Helpdesk.Api.Tests.Incidents.Fixtures; | ||
using Xunit; | ||
using static Ogooreck.API.ApiSpecification; | ||
|
||
namespace Helpdesk.Api.Tests.Incidents; | ||
|
||
public class AcknowledgeResolutionIncidentTests: IClassFixture<ApiWithResolvedIncident> | ||
{ | ||
[Fact] | ||
[Trait("Category", "Acceptance")] | ||
public async Task ResolveCommand_Succeeds() | ||
{ | ||
await API | ||
.Given( | ||
URI($"/api/customers/{API.Incident.CustomerId}/incidents/{API.Incident.Id}/acknowledge"), | ||
HEADERS(IF_MATCH(2)) | ||
) | ||
.When(POST) | ||
.Then(OK); | ||
|
||
await API | ||
.Given(URI($"/api/incidents/{API.Incident.Id}")) | ||
.When(GET) | ||
.Then( | ||
OK, | ||
RESPONSE_BODY( | ||
API.Incident with | ||
{ | ||
Status = IncidentStatus.ResolutionAcknowledgedByCustomer, | ||
Version = 3 | ||
} | ||
) | ||
); | ||
} | ||
|
||
private readonly ApiWithResolvedIncident API; | ||
|
||
public AcknowledgeResolutionIncidentTests(ApiWithResolvedIncident api) => API = api; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
using Helpdesk.Api.Tests.Incidents.Fixtures; | ||
using Xunit; | ||
using static Ogooreck.API.ApiSpecification; | ||
|
||
namespace Helpdesk.Api.Tests.Incidents; | ||
|
||
public class AssignAgentToIncidentTests: IClassFixture<ApiWithLoggedIncident> | ||
{ | ||
[Fact] | ||
[Trait("Category", "Acceptance")] | ||
public async Task AssignAgentCommand_ChangesIncidentCategory() | ||
{ | ||
await API | ||
.Given( | ||
URI($"/api/agents/{agentId}/incidents/{API.Incident.Id}/assign"), | ||
HEADERS(IF_MATCH(1)) | ||
) | ||
.When(POST) | ||
.Then(OK); | ||
|
||
await API | ||
.Given(URI($"/api/incidents/{API.Incident.Id}")) | ||
.When(GET) | ||
.Then( | ||
OK, | ||
RESPONSE_BODY( | ||
API.Incident with | ||
{ | ||
AgentId = agentId, | ||
Version = 2 | ||
} | ||
) | ||
); | ||
} | ||
|
||
private readonly Guid agentId = Guid.NewGuid(); | ||
private readonly ApiWithLoggedIncident API; | ||
|
||
public AssignAgentToIncidentTests(ApiWithLoggedIncident api) => API = api; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
using Bogus; | ||
using Helpdesk.Api.Incidents; | ||
using Helpdesk.Api.Tests.Incidents.Fixtures; | ||
using Xunit; | ||
using static Ogooreck.API.ApiSpecification; | ||
|
||
namespace Helpdesk.Api.Tests.Incidents; | ||
|
||
public class CategoriseIncidentTests: IClassFixture<ApiWithLoggedIncident> | ||
{ | ||
[Fact] | ||
[Trait("Category", "Acceptance")] | ||
public async Task CategoriseCommand_ChangesIncidentCategory() | ||
{ | ||
await API | ||
.Given( | ||
URI($"/api/agents/{agentId}/incidents/{API.Incident.Id}/category"), | ||
BODY(new CategoriseIncidentRequest(category)), | ||
HEADERS(IF_MATCH(1)) | ||
) | ||
.When(POST) | ||
.Then(OK); | ||
|
||
await API | ||
.Given(URI($"/api/incidents/{API.Incident.Id}")) | ||
.When(GET) | ||
.Then( | ||
OK, | ||
RESPONSE_BODY( | ||
API.Incident with | ||
{ | ||
Category = category, | ||
Version = 2 | ||
} | ||
) | ||
); | ||
} | ||
|
||
private readonly Guid agentId = Guid.NewGuid(); | ||
private readonly IncidentCategory category = new Faker().PickRandom<IncidentCategory>(); | ||
private readonly ApiWithLoggedIncident API; | ||
|
||
public CategoriseIncidentTests(ApiWithLoggedIncident api) => API = api; | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
using Helpdesk.Api.Incidents; | ||
using Helpdesk.Api.Tests.Incidents.Fixtures; | ||
using Xunit; | ||
using static Ogooreck.API.ApiSpecification; | ||
|
||
namespace Helpdesk.Api.Tests.Incidents; | ||
|
||
public class CloseIncidentTests: IClassFixture<ApiWithAcknowledgedIncident> | ||
{ | ||
[Fact] | ||
[Trait("Category", "Acceptance")] | ||
public async Task ResolveCommand_Succeeds() | ||
{ | ||
await API | ||
.Given( | ||
URI($"/api/agents/{agentId}/incidents/{API.Incident.Id}/close"), | ||
HEADERS(IF_MATCH(3)) | ||
) | ||
.When(POST) | ||
.Then(OK); | ||
|
||
await API | ||
.Given(URI($"/api/incidents/{API.Incident.Id}")) | ||
.When(GET) | ||
.Then( | ||
OK, | ||
RESPONSE_BODY( | ||
API.Incident with | ||
{ | ||
Status = IncidentStatus.Closed, | ||
Version = 4 | ||
} | ||
) | ||
); | ||
} | ||
|
||
private readonly ApiWithAcknowledgedIncident API; | ||
private Guid agentId = Guid.NewGuid(); | ||
|
||
public CloseIncidentTests(ApiWithAcknowledgedIncident api) => API = api; | ||
} |
18 changes: 18 additions & 0 deletions
18
Helpdesk.Api.Tests/Incidents/Fixtures/ApiWithAcknowledgedIncident.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
using Helpdesk.Api.Incidents.GetIncidentDetails; | ||
using Ogooreck.API; | ||
using Xunit; | ||
|
||
namespace Helpdesk.Api.Tests.Incidents.Fixtures; | ||
|
||
public class ApiWithAcknowledgedIncident: ApiSpecification<Program>, IAsyncLifetime | ||
{ | ||
public async Task InitializeAsync() | ||
{ | ||
Incident = await this.AcknowledgedIncident(); | ||
} | ||
|
||
public IncidentDetails Incident { get; set; } = default!; | ||
|
||
public Task DisposeAsync() => Task.CompletedTask; | ||
} | ||
|
15 changes: 15 additions & 0 deletions
15
Helpdesk.Api.Tests/Incidents/Fixtures/ApiWithLoggedIncident.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
using Helpdesk.Api.Incidents.GetIncidentDetails; | ||
using Ogooreck.API; | ||
using Xunit; | ||
|
||
namespace Helpdesk.Api.Tests.Incidents.Fixtures; | ||
|
||
public class ApiWithLoggedIncident: ApiSpecification<Program>, IAsyncLifetime | ||
{ | ||
public async Task InitializeAsync() | ||
{ | ||
Incident = await this.LoggedIncident(); | ||
} | ||
public IncidentDetails Incident { get; protected set; } = default!; | ||
public Task DisposeAsync() => Task.CompletedTask; | ||
} |
18 changes: 18 additions & 0 deletions
18
Helpdesk.Api.Tests/Incidents/Fixtures/ApiWithResolvedIncident.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
using Helpdesk.Api.Incidents.GetIncidentDetails; | ||
using Ogooreck.API; | ||
using Xunit; | ||
|
||
namespace Helpdesk.Api.Tests.Incidents.Fixtures; | ||
|
||
public class ApiWithResolvedIncident: ApiSpecification<Program>, IAsyncLifetime | ||
{ | ||
public async Task InitializeAsync() | ||
{ | ||
Incident = await this.ResolvedIncident(); | ||
} | ||
|
||
public IncidentDetails Incident { get; set; } = default!; | ||
|
||
public Task DisposeAsync() => Task.CompletedTask; | ||
} | ||
|
Oops, something went wrong.