Init repo
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
using FastEndpoints;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using MissionControl.Domain.Entities;
|
||||
using MissionControl.Server.Endpoints.Missions;
|
||||
using Shouldly;
|
||||
|
||||
namespace MissionControl.Server.Tests.Endpoints.Missions;
|
||||
|
||||
public class CreateMissionTests
|
||||
{
|
||||
[Fact]
|
||||
public async Task Creates_a_planned_mission_and_saves_it()
|
||||
{
|
||||
using var database = new TestDatabase();
|
||||
var endpoint = Factory.Create<CreateMission>(database.Context);
|
||||
var request = new CreateMissionRequest
|
||||
{
|
||||
Name = "Orbital Bloom",
|
||||
Description = "Grow the first orchard in orbit.",
|
||||
};
|
||||
|
||||
await endpoint.HandleAsync(request, CancellationToken.None);
|
||||
|
||||
var saved = await database.Context.Missions.SingleAsync();
|
||||
saved.Name.ShouldBe("Orbital Bloom");
|
||||
saved.Status.ShouldBe(MissionStatus.Planned);
|
||||
endpoint.Response.Id.ShouldBe(saved.Id);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("")]
|
||||
[InlineData(" ")]
|
||||
public void Rejects_a_blank_mission_name(string name)
|
||||
{
|
||||
var validator = new CreateMissionRequestValidator();
|
||||
|
||||
var result = validator.Validate(new CreateMissionRequest { Name = name });
|
||||
|
||||
result.IsValid.ShouldBeFalse();
|
||||
result.Errors.ShouldContain(e => e.PropertyName == nameof(CreateMissionRequest.Name));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user