Add editorconfig and analyzers, format backend code
This commit is contained in:
@@ -3,53 +3,52 @@ using Musify.Application.Tests.TestSupport;
|
||||
using Musify.Domain.Entities;
|
||||
using Xunit;
|
||||
|
||||
namespace Musify.Application.Tests.Likes
|
||||
namespace Musify.Application.Tests.Likes;
|
||||
|
||||
public sealed class GetLikedTracksQueryHandlerTests : HandlerTestBase
|
||||
{
|
||||
public sealed class GetLikedTracksQueryHandlerTests : HandlerTestBase
|
||||
private GetLikedTracksQueryHandler CreateHandler() => new(Database);
|
||||
|
||||
[Fact]
|
||||
public async Task Handle_MultipleLikes_ReturnsMostRecentFirst()
|
||||
{
|
||||
private GetLikedTracksQueryHandler CreateHandler() => new(Database);
|
||||
var owner = TestEntities.User();
|
||||
var older = TestEntities.Track(owner, "Older like");
|
||||
var newer = TestEntities.Track(owner, "Newer like");
|
||||
await SeedAsync(
|
||||
owner, older, newer,
|
||||
new TrackLike { UserId = owner.Id, TrackId = older.Id, CreatedAt = DateTime.UtcNow.AddMinutes(-10) },
|
||||
new TrackLike { UserId = owner.Id, TrackId = newer.Id, CreatedAt = DateTime.UtcNow });
|
||||
|
||||
[Fact]
|
||||
public async Task Handle_MultipleLikes_ReturnsMostRecentFirst()
|
||||
{
|
||||
var owner = TestEntities.User();
|
||||
var older = TestEntities.Track(owner, "Older like");
|
||||
var newer = TestEntities.Track(owner, "Newer like");
|
||||
await SeedAsync(
|
||||
owner, older, newer,
|
||||
new TrackLike { UserId = owner.Id, TrackId = older.Id, CreatedAt = DateTime.UtcNow.AddMinutes(-10) },
|
||||
new TrackLike { UserId = owner.Id, TrackId = newer.Id, CreatedAt = DateTime.UtcNow });
|
||||
var result = await CreateHandler().Handle(new GetLikedTracksQuery(owner.Id, 1, 10), TestContext.Current.CancellationToken);
|
||||
|
||||
var result = await CreateHandler().Handle(new GetLikedTracksQuery(owner.Id, 1, 10), TestContext.Current.CancellationToken);
|
||||
Assert.False(result.IsError);
|
||||
Assert.Equal(["Newer like", "Older like"], result.Value.Items.Select(track => track.Title));
|
||||
}
|
||||
|
||||
Assert.False(result.IsError);
|
||||
Assert.Equal(["Newer like", "Older like"], result.Value.Items.Select(track => track.Title));
|
||||
}
|
||||
[Fact]
|
||||
public async Task Handle_NoLikes_ReturnsEmpty()
|
||||
{
|
||||
var owner = TestEntities.User();
|
||||
await SeedAsync(owner);
|
||||
|
||||
[Fact]
|
||||
public async Task Handle_NoLikes_ReturnsEmpty()
|
||||
{
|
||||
var owner = TestEntities.User();
|
||||
await SeedAsync(owner);
|
||||
var result = await CreateHandler().Handle(new GetLikedTracksQuery(owner.Id, 1, 10), TestContext.Current.CancellationToken);
|
||||
|
||||
var result = await CreateHandler().Handle(new GetLikedTracksQuery(owner.Id, 1, 10), TestContext.Current.CancellationToken);
|
||||
Assert.False(result.IsError);
|
||||
Assert.Empty(result.Value.Items);
|
||||
}
|
||||
|
||||
Assert.False(result.IsError);
|
||||
Assert.Empty(result.Value.Items);
|
||||
}
|
||||
[Fact]
|
||||
public async Task Handle_OtherUsersLikes_AreExcluded()
|
||||
{
|
||||
var owner = TestEntities.User(1, "owner");
|
||||
var stranger = TestEntities.User(2, "stranger");
|
||||
var track = TestEntities.Track(owner);
|
||||
await SeedAsync(owner, stranger, track, new TrackLike { UserId = stranger.Id, TrackId = track.Id });
|
||||
|
||||
[Fact]
|
||||
public async Task Handle_OtherUsersLikes_AreExcluded()
|
||||
{
|
||||
var owner = TestEntities.User(1, "owner");
|
||||
var stranger = TestEntities.User(2, "stranger");
|
||||
var track = TestEntities.Track(owner);
|
||||
await SeedAsync(owner, stranger, track, new TrackLike { UserId = stranger.Id, TrackId = track.Id });
|
||||
var result = await CreateHandler().Handle(new GetLikedTracksQuery(owner.Id, 1, 10), TestContext.Current.CancellationToken);
|
||||
|
||||
var result = await CreateHandler().Handle(new GetLikedTracksQuery(owner.Id, 1, 10), TestContext.Current.CancellationToken);
|
||||
|
||||
Assert.False(result.IsError);
|
||||
Assert.Empty(result.Value.Items);
|
||||
}
|
||||
Assert.False(result.IsError);
|
||||
Assert.Empty(result.Value.Items);
|
||||
}
|
||||
}
|
||||
|
||||
+37
-38
@@ -4,53 +4,52 @@ using Musify.Application.Likes;
|
||||
using Musify.Application.Tests.TestSupport;
|
||||
using Xunit;
|
||||
|
||||
namespace Musify.Application.Tests.Likes
|
||||
namespace Musify.Application.Tests.Likes;
|
||||
|
||||
public sealed class ToggleTrackLikeCommandHandlerTests : HandlerTestBase
|
||||
{
|
||||
public sealed class ToggleTrackLikeCommandHandlerTests : HandlerTestBase
|
||||
private ToggleTrackLikeCommandHandler CreateHandler() =>
|
||||
new(Database, NoOpLogger<ToggleTrackLikeCommandHandler>());
|
||||
|
||||
[Fact]
|
||||
public async Task Handle_TrackNotLiked_LikesIt()
|
||||
{
|
||||
private ToggleTrackLikeCommandHandler CreateHandler() =>
|
||||
new(Database, NoOpLogger<ToggleTrackLikeCommandHandler>());
|
||||
var owner = TestEntities.User();
|
||||
var track = TestEntities.Track(owner);
|
||||
await SeedAsync(owner, track);
|
||||
|
||||
[Fact]
|
||||
public async Task Handle_TrackNotLiked_LikesIt()
|
||||
{
|
||||
var owner = TestEntities.User();
|
||||
var track = TestEntities.Track(owner);
|
||||
await SeedAsync(owner, track);
|
||||
var result = await CreateHandler().Handle(
|
||||
new ToggleTrackLikeCommand(owner.Id, track.Id), TestContext.Current.CancellationToken);
|
||||
|
||||
var result = await CreateHandler().Handle(
|
||||
new ToggleTrackLikeCommand(owner.Id, track.Id), TestContext.Current.CancellationToken);
|
||||
Assert.False(result.IsError);
|
||||
Assert.True(result.Value);
|
||||
Assert.Single(await Database.TrackLikes.ToListAsync(TestContext.Current.CancellationToken));
|
||||
}
|
||||
|
||||
Assert.False(result.IsError);
|
||||
Assert.True(result.Value);
|
||||
Assert.Single(await Database.TrackLikes.ToListAsync(TestContext.Current.CancellationToken));
|
||||
}
|
||||
[Fact]
|
||||
public async Task Handle_TrackAlreadyLiked_UnlikesIt()
|
||||
{
|
||||
var owner = TestEntities.User();
|
||||
var track = TestEntities.Track(owner);
|
||||
await SeedAsync(owner, track, new Musify.Domain.Entities.TrackLike { UserId = owner.Id, TrackId = track.Id });
|
||||
|
||||
[Fact]
|
||||
public async Task Handle_TrackAlreadyLiked_UnlikesIt()
|
||||
{
|
||||
var owner = TestEntities.User();
|
||||
var track = TestEntities.Track(owner);
|
||||
await SeedAsync(owner, track, new Musify.Domain.Entities.TrackLike { UserId = owner.Id, TrackId = track.Id });
|
||||
var result = await CreateHandler().Handle(
|
||||
new ToggleTrackLikeCommand(owner.Id, track.Id), TestContext.Current.CancellationToken);
|
||||
|
||||
var result = await CreateHandler().Handle(
|
||||
new ToggleTrackLikeCommand(owner.Id, track.Id), TestContext.Current.CancellationToken);
|
||||
Assert.False(result.IsError);
|
||||
Assert.False(result.Value);
|
||||
Assert.Empty(await Database.TrackLikes.ToListAsync(TestContext.Current.CancellationToken));
|
||||
}
|
||||
|
||||
Assert.False(result.IsError);
|
||||
Assert.False(result.Value);
|
||||
Assert.Empty(await Database.TrackLikes.ToListAsync(TestContext.Current.CancellationToken));
|
||||
}
|
||||
[Fact]
|
||||
public async Task Handle_TrackMissing_ReturnsNotFound()
|
||||
{
|
||||
var owner = TestEntities.User();
|
||||
await SeedAsync(owner);
|
||||
|
||||
[Fact]
|
||||
public async Task Handle_TrackMissing_ReturnsNotFound()
|
||||
{
|
||||
var owner = TestEntities.User();
|
||||
await SeedAsync(owner);
|
||||
var result = await CreateHandler().Handle(
|
||||
new ToggleTrackLikeCommand(owner.Id, Guid.NewGuid()), TestContext.Current.CancellationToken);
|
||||
|
||||
var result = await CreateHandler().Handle(
|
||||
new ToggleTrackLikeCommand(owner.Id, Guid.NewGuid()), TestContext.Current.CancellationToken);
|
||||
|
||||
Assert.Equal(ErrorType.NotFound, result.FirstError.Type);
|
||||
}
|
||||
Assert.Equal(ErrorType.NotFound, result.FirstError.Type);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user