Separate responsibilities: start-listening command, API-side JSON converters, bulk track endpoints, mix kinds
This commit is contained in:
@@ -40,7 +40,6 @@ public sealed class GenreEndpointsTests(ApiTestFixture fixture)
|
||||
tag.TrackId = track.Id;
|
||||
database.Users.Add(owner);
|
||||
database.Tracks.Add(track);
|
||||
database.UserHasTracks.Add(new UserHasTrack { UserId = owner.Id, TrackId = track.Id });
|
||||
await database.SaveChangesAsync(TestContext.Current.CancellationToken);
|
||||
return title;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
using Musify.Api.DataTransferObjects.Tracks;
|
||||
using Musify.Api.Validators.Tracks;
|
||||
using Musify.Domain.ValueObjects;
|
||||
using Xunit;
|
||||
|
||||
namespace Musify.Api.Tests.Validators;
|
||||
|
||||
public sealed class TrackRequestValidatorTests
|
||||
{
|
||||
[Fact]
|
||||
public void CreateTrack_ValidRequest_Passes()
|
||||
{
|
||||
var request = new CreateTrackRequest("Song", Guid.NewGuid(), Guid.NewGuid(), [Genre.Pop, Genre.Rock]);
|
||||
|
||||
Assert.True(new CreateTrackRequestValidator().Validate(request).IsValid);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CreateTrack_NoTags_Fails()
|
||||
{
|
||||
var request = new CreateTrackRequest("Song", Guid.NewGuid(), Guid.NewGuid(), []);
|
||||
|
||||
Assert.False(new CreateTrackRequestValidator().Validate(request).IsValid);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CreateTrack_IncompatibleTags_Fails()
|
||||
{
|
||||
var request = new CreateTrackRequest("Song", Guid.NewGuid(), Guid.NewGuid(), [Genre.Classical, Genre.Metal]);
|
||||
|
||||
Assert.False(new CreateTrackRequestValidator().Validate(request).IsValid);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(-1)]
|
||||
[InlineData(double.NaN)]
|
||||
[InlineData(double.PositiveInfinity)]
|
||||
public void RecordListeningProgress_InvalidSeconds_Fails(double seconds)
|
||||
{
|
||||
Assert.False(new RecordListeningProgressRequestValidator().Validate(new RecordListeningProgressRequest(seconds)).IsValid);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void RecordListeningProgress_ZeroSeconds_Passes()
|
||||
{
|
||||
Assert.True(new RecordListeningProgressRequestValidator().Validate(new RecordListeningProgressRequest(0)).IsValid);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user