-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathCreateMissionsControllerTests.cs
More file actions
97 lines (87 loc) · 3.63 KB
/
CreateMissionsControllerTests.cs
File metadata and controls
97 lines (87 loc) · 3.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using ArmaForces.Boderator.BotService.Features.Missions.DTOs;
using ArmaForces.Boderator.BotService.Tests.TestUtilities.TestBases;
using ArmaForces.Boderator.BotService.Tests.TestUtilities.TestFixtures;
using ArmaForces.Boderator.Core.Tests.TestUtilities;
using Xunit;
namespace ArmaForces.Boderator.BotService.Tests.Features.Missions
{
[Trait("Category", "Integration")]
public class MissionsControllerTests : ApiTestBase
{
public MissionsControllerTests(TestApiServiceFixture testApi)
: base(testApi) { }
[Theory, ClassData(typeof(CreateMissionInvalidRequestTestData)), Trait("Category", "Integration")]
public async Task CreateMission_InvalidRequest_ReturnsBadRequest(MissionCreateRequestDto missionCreateRequestDto)
{
var result = await HttpPostAsync<MissionCreateRequestDto, MissionDto>("api/missions", missionCreateRequestDto);
result.ShouldBeFailure();
}
[Theory, ClassData(typeof(CreateMissionValidRequestTestData)), Trait("Category", "Integration")]
public async Task CreateMission_ValidRequest_MissionCreated(MissionCreateRequestDto missionCreateRequestDto)
{
var result = await HttpPostAsync<MissionCreateRequestDto, MissionDto>("api/missions", missionCreateRequestDto);
result.ShouldBeSuccess(missionCreateRequestDto);
}
private class CreateMissionValidRequestTestData : TheoryData<MissionCreateRequestDto>
{
private readonly MissionCreateRequestDto _minimalRequest = new()
{
Title = "Test mission title",
Owner = "Test mission owner"
};
public CreateMissionValidRequestTestData()
{
var testCases = new List<MissionCreateRequestDto>
{
_minimalRequest,
_minimalRequest with
{
Description = "Test mission description"
},
_minimalRequest with
{
MissionDate = DateTime.Now.AddHours(-1)
},
_minimalRequest with
{
ModsetName = "Test-mission-modset"
},
_minimalRequest with
{
Description = "Test mission description",
MissionDate = DateTime.Now.AddHours(-1),
ModsetName = "Test-mission-modset"
}
};
foreach (var testCase in testCases) Add(testCase);
}
}
private class CreateMissionInvalidRequestTestData : TheoryData<MissionCreateRequestDto>
{
public CreateMissionInvalidRequestTestData()
{
var testCases = new List<MissionCreateRequestDto>
{
new()
{
Title = "Test mission title without owner"
},
new()
{
Owner = "Test mission owner without title"
},
new()
{
Title = "Test mission title",
Owner = "Test mission owner",
ModsetName = "Modset name with whitespace characters"
}
};
foreach (var testCase in testCases) Add(testCase);
}
}
}
}