Added tests
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
using Ardalis.Result;
|
||||
using FluentAssertions;
|
||||
using Musify.Application.PlayLists.Handlers;
|
||||
using Musify.Application.PlayLists.Queries;
|
||||
using Musify.Application.Tests.Infrastructure;
|
||||
using Musify.Application.Tracks.Handlers;
|
||||
using Musify.Application.Tracks.Queries;
|
||||
using Musify.Application.Users.Handlers;
|
||||
using Musify.Application.Users.Queries;
|
||||
using Xunit;
|
||||
|
||||
namespace Musify.Application.Tests.Handlers;
|
||||
|
||||
public sealed class GetByIdQueryHandlerTests
|
||||
{
|
||||
[Fact]
|
||||
public async Task GetTrackById_returns_track_when_found()
|
||||
{
|
||||
await using var ctx = new SqliteTestContext();
|
||||
var track = TestData.Track(title: "Found");
|
||||
ctx.Database.Tracks.Add(track);
|
||||
await ctx.Database.SaveChangesAsync(CancellationToken.None);
|
||||
|
||||
var sut = new GetTrackByIdQueryHandler(ctx.Database);
|
||||
var result = await sut.Handle(new GetTrackByIdQuery(track.Id), CancellationToken.None);
|
||||
|
||||
result.IsSuccess.Should().BeTrue();
|
||||
result.Value.Title.Should().Be("Found");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetTrackById_returns_not_found_when_missing()
|
||||
{
|
||||
await using var ctx = new SqliteTestContext();
|
||||
var sut = new GetTrackByIdQueryHandler(ctx.Database);
|
||||
|
||||
var result = await sut.Handle(new GetTrackByIdQuery(Guid.NewGuid()), CancellationToken.None);
|
||||
|
||||
result.Status.Should().Be(ResultStatus.NotFound);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetPlayListById_returns_playlist_when_found()
|
||||
{
|
||||
await using var ctx = new SqliteTestContext();
|
||||
var playList = TestData.PlayList(Guid.NewGuid(), name: "MyList");
|
||||
ctx.Database.PlayLists.Add(playList);
|
||||
await ctx.Database.SaveChangesAsync(CancellationToken.None);
|
||||
|
||||
var sut = new GetPlayListByIdQueryHandler(ctx.Database);
|
||||
var result = await sut.Handle(new GetPlayListByIdQuery(playList.Id), CancellationToken.None);
|
||||
|
||||
result.IsSuccess.Should().BeTrue();
|
||||
result.Value.Name.Should().Be("MyList");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetPlayListById_returns_not_found_when_missing()
|
||||
{
|
||||
await using var ctx = new SqliteTestContext();
|
||||
var sut = new GetPlayListByIdQueryHandler(ctx.Database);
|
||||
|
||||
var result = await sut.Handle(new GetPlayListByIdQuery(Guid.NewGuid()), CancellationToken.None);
|
||||
|
||||
result.Status.Should().Be(ResultStatus.NotFound);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetUserById_returns_user_when_found()
|
||||
{
|
||||
await using var ctx = new SqliteTestContext();
|
||||
var user = TestData.User(name: "Carol");
|
||||
ctx.Database.Users.Add(user);
|
||||
await ctx.Database.SaveChangesAsync(CancellationToken.None);
|
||||
|
||||
var sut = new GetUserByIdQueryHandler(ctx.Database);
|
||||
var result = await sut.Handle(new GetUserByIdQuery(user.Id), CancellationToken.None);
|
||||
|
||||
result.IsSuccess.Should().BeTrue();
|
||||
result.Value.Name.Should().Be("Carol");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetUserById_returns_not_found_when_missing()
|
||||
{
|
||||
await using var ctx = new SqliteTestContext();
|
||||
var sut = new GetUserByIdQueryHandler(ctx.Database);
|
||||
|
||||
var result = await sut.Handle(new GetUserByIdQuery(Guid.NewGuid()), CancellationToken.None);
|
||||
|
||||
result.Status.Should().Be(ResultStatus.NotFound);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user