Design Prot Merge #1
-1164
File diff suppressed because it is too large
Load Diff
-106
@@ -1,106 +0,0 @@
|
|||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace Musify.Infrastructure.Persistence.Migrations
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
public partial class MakePlayListPictureColumnsOptional : Migration
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AlterColumn<string>(
|
|
||||||
name: "SmallPictureName",
|
|
||||||
table: "PlayLists",
|
|
||||||
type: "character varying(64)",
|
|
||||||
maxLength: 64,
|
|
||||||
nullable: true,
|
|
||||||
oldClrType: typeof(string),
|
|
||||||
oldType: "character varying(64)",
|
|
||||||
oldMaxLength: 64,
|
|
||||||
oldNullable: true);
|
|
||||||
|
|
||||||
migrationBuilder.AlterColumn<string>(
|
|
||||||
name: "OriginalPictureName",
|
|
||||||
table: "PlayLists",
|
|
||||||
type: "character varying(64)",
|
|
||||||
maxLength: 64,
|
|
||||||
nullable: true,
|
|
||||||
oldClrType: typeof(string),
|
|
||||||
oldType: "character varying(64)",
|
|
||||||
oldMaxLength: 64,
|
|
||||||
oldNullable: true);
|
|
||||||
|
|
||||||
migrationBuilder.AlterColumn<string>(
|
|
||||||
name: "MediumPictureName",
|
|
||||||
table: "PlayLists",
|
|
||||||
type: "character varying(64)",
|
|
||||||
maxLength: 64,
|
|
||||||
nullable: true,
|
|
||||||
oldClrType: typeof(string),
|
|
||||||
oldType: "character varying(64)",
|
|
||||||
oldMaxLength: 64,
|
|
||||||
oldNullable: true);
|
|
||||||
|
|
||||||
migrationBuilder.AlterColumn<string>(
|
|
||||||
name: "LargePictureName",
|
|
||||||
table: "PlayLists",
|
|
||||||
type: "character varying(64)",
|
|
||||||
maxLength: 64,
|
|
||||||
nullable: true,
|
|
||||||
oldClrType: typeof(string),
|
|
||||||
oldType: "character varying(64)",
|
|
||||||
oldMaxLength: 64,
|
|
||||||
oldNullable: true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AlterColumn<string>(
|
|
||||||
name: "SmallPictureName",
|
|
||||||
table: "PlayLists",
|
|
||||||
type: "character varying(64)",
|
|
||||||
maxLength: 64,
|
|
||||||
nullable: true,
|
|
||||||
oldClrType: typeof(string),
|
|
||||||
oldType: "character varying(64)",
|
|
||||||
oldMaxLength: 64,
|
|
||||||
oldNullable: true);
|
|
||||||
|
|
||||||
migrationBuilder.AlterColumn<string>(
|
|
||||||
name: "OriginalPictureName",
|
|
||||||
table: "PlayLists",
|
|
||||||
type: "character varying(64)",
|
|
||||||
maxLength: 64,
|
|
||||||
nullable: true,
|
|
||||||
oldClrType: typeof(string),
|
|
||||||
oldType: "character varying(64)",
|
|
||||||
oldMaxLength: 64,
|
|
||||||
oldNullable: true);
|
|
||||||
|
|
||||||
migrationBuilder.AlterColumn<string>(
|
|
||||||
name: "MediumPictureName",
|
|
||||||
table: "PlayLists",
|
|
||||||
type: "character varying(64)",
|
|
||||||
maxLength: 64,
|
|
||||||
nullable: true,
|
|
||||||
oldClrType: typeof(string),
|
|
||||||
oldType: "character varying(64)",
|
|
||||||
oldMaxLength: 64,
|
|
||||||
oldNullable: true);
|
|
||||||
|
|
||||||
migrationBuilder.AlterColumn<string>(
|
|
||||||
name: "LargePictureName",
|
|
||||||
table: "PlayLists",
|
|
||||||
type: "character varying(64)",
|
|
||||||
maxLength: 64,
|
|
||||||
nullable: true,
|
|
||||||
oldClrType: typeof(string),
|
|
||||||
oldType: "character varying(64)",
|
|
||||||
oldMaxLength: 64,
|
|
||||||
oldNullable: true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+30
-26
@@ -18,7 +18,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
{
|
{
|
||||||
#pragma warning disable 612, 618
|
#pragma warning disable 612, 618
|
||||||
modelBuilder
|
modelBuilder
|
||||||
.HasAnnotation("ProductVersion", "10.0.8")
|
.HasAnnotation("ProductVersion", "10.0.12")
|
||||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||||
|
|
||||||
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "genre", new[] { "ambient", "blues", "classical", "country", "drum_and_bass", "dubstep", "electronic", "folk", "funk", "hip_hop", "house", "indie", "jazz", "k_pop", "latin", "lofi", "metal", "pop", "punk", "reggae", "reggaeton", "rn_b", "rock", "soul", "techno", "trance" });
|
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "genre", new[] { "ambient", "blues", "classical", "country", "drum_and_bass", "dubstep", "electronic", "folk", "funk", "hip_hop", "house", "indie", "jazz", "k_pop", "latin", "lofi", "metal", "pop", "punk", "reggae", "reggaeton", "rn_b", "rock", "soul", "techno", "trance" });
|
||||||
@@ -68,7 +68,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasIndex("Delivered");
|
b.HasIndex("Delivered");
|
||||||
|
|
||||||
b.ToTable("InboxState");
|
b.ToTable("InboxState", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("MassTransit.EntityFrameworkCoreIntegration.OutboxMessage", b =>
|
modelBuilder.Entity("MassTransit.EntityFrameworkCoreIntegration.OutboxMessage", b =>
|
||||||
@@ -159,7 +159,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
b.HasIndex("InboxMessageId", "InboxConsumerId", "SequenceNumber")
|
b.HasIndex("InboxMessageId", "InboxConsumerId", "SequenceNumber")
|
||||||
.IsUnique();
|
.IsUnique();
|
||||||
|
|
||||||
b.ToTable("OutboxMessage");
|
b.ToTable("OutboxMessage", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("MassTransit.EntityFrameworkCoreIntegration.OutboxState", b =>
|
modelBuilder.Entity("MassTransit.EntityFrameworkCoreIntegration.OutboxState", b =>
|
||||||
@@ -189,7 +189,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasIndex("Created");
|
b.HasIndex("Created");
|
||||||
|
|
||||||
b.ToTable("OutboxState");
|
b.ToTable("OutboxState", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.Album", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.Album", b =>
|
||||||
@@ -231,7 +231,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasIndex("OwnerUserId");
|
b.HasIndex("OwnerUserId");
|
||||||
|
|
||||||
b.ToTable("Albums");
|
b.ToTable("Albums", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.AlbumHasTrack", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.AlbumHasTrack", b =>
|
||||||
@@ -259,7 +259,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
b.HasIndex("AlbumId", "TrackId")
|
b.HasIndex("AlbumId", "TrackId")
|
||||||
.IsUnique();
|
.IsUnique();
|
||||||
|
|
||||||
b.ToTable("AlbumHasTrack");
|
b.ToTable("AlbumHasTrack", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.ListeningHistory", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.ListeningHistory", b =>
|
||||||
@@ -283,7 +283,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasIndex("UserId");
|
b.HasIndex("UserId");
|
||||||
|
|
||||||
b.ToTable("ListeningHistory");
|
b.ToTable("ListeningHistory", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.Mix", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.Mix", b =>
|
||||||
@@ -317,7 +317,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasIndex("UserId", "Position");
|
b.HasIndex("UserId", "Position");
|
||||||
|
|
||||||
b.ToTable("Mixes");
|
b.ToTable("Mixes", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.MixItem", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.MixItem", b =>
|
||||||
@@ -341,7 +341,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasIndex("MixId", "Position");
|
b.HasIndex("MixId", "Position");
|
||||||
|
|
||||||
b.ToTable("MixItems");
|
b.ToTable("MixItems", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayList", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.PlayList", b =>
|
||||||
@@ -385,7 +385,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasIndex("UserId");
|
b.HasIndex("UserId");
|
||||||
|
|
||||||
b.ToTable("PlayLists");
|
b.ToTable("PlayLists", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.PlayListHasTrack", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.PlayListHasTrack", b =>
|
||||||
@@ -412,7 +412,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasIndex("TrackId");
|
b.HasIndex("TrackId");
|
||||||
|
|
||||||
b.ToTable("PlayListHasTrack");
|
b.ToTable("PlayListHasTrack", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.Track", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.Track", b =>
|
||||||
@@ -450,7 +450,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasIndex("OwnerUserId");
|
b.HasIndex("OwnerUserId");
|
||||||
|
|
||||||
b.ToTable("Tracks");
|
b.ToTable("Tracks", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.TrackLike", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.TrackLike", b =>
|
||||||
@@ -475,7 +475,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
b.HasIndex("UserId", "TrackId")
|
b.HasIndex("UserId", "TrackId")
|
||||||
.IsUnique();
|
.IsUnique();
|
||||||
|
|
||||||
b.ToTable("TrackLikes");
|
b.ToTable("TrackLikes", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.TrackTag", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.TrackTag", b =>
|
||||||
@@ -495,7 +495,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
b.HasIndex("TrackId", "Tag")
|
b.HasIndex("TrackId", "Tag")
|
||||||
.IsUnique();
|
.IsUnique();
|
||||||
|
|
||||||
b.ToTable("TrackTags");
|
b.ToTable("TrackTags", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.Upload", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.Upload", b =>
|
||||||
@@ -524,7 +524,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasKey("Id");
|
b.HasKey("Id");
|
||||||
|
|
||||||
b.ToTable("Upload");
|
b.ToTable("Upload", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.UploadIntent", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.UploadIntent", b =>
|
||||||
@@ -575,7 +575,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasIndex("UserId");
|
b.HasIndex("UserId");
|
||||||
|
|
||||||
b.ToTable("UploadIntents");
|
b.ToTable("UploadIntents", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.User", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.User", b =>
|
||||||
@@ -613,7 +613,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasKey("Id");
|
b.HasKey("Id");
|
||||||
|
|
||||||
b.ToTable("User");
|
b.ToTable("User", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.UserFollow", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.UserFollow", b =>
|
||||||
@@ -638,7 +638,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
b.HasIndex("FollowerId", "FollowedId")
|
b.HasIndex("FollowerId", "FollowedId")
|
||||||
.IsUnique();
|
.IsUnique();
|
||||||
|
|
||||||
b.ToTable("UserFollows");
|
b.ToTable("UserFollows", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Domain.Entities.UserHasTrack", b =>
|
modelBuilder.Entity("Musify.Domain.Entities.UserHasTrack", b =>
|
||||||
@@ -659,7 +659,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasIndex("UserId");
|
b.HasIndex("UserId");
|
||||||
|
|
||||||
b.ToTable("UserHasTrack");
|
b.ToTable("UserHasTrack", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Infrastructure.MassTransit.Sagas.AlbumProcessingState", b =>
|
modelBuilder.Entity("Musify.Infrastructure.MassTransit.Sagas.AlbumProcessingState", b =>
|
||||||
@@ -686,7 +686,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasKey("CorrelationId");
|
b.HasKey("CorrelationId");
|
||||||
|
|
||||||
b.ToTable("AlbumProcessingState");
|
b.ToTable("AlbumProcessingState", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Infrastructure.MassTransit.Sagas.PlayListProcessingState", b =>
|
modelBuilder.Entity("Musify.Infrastructure.MassTransit.Sagas.PlayListProcessingState", b =>
|
||||||
@@ -713,7 +713,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasKey("CorrelationId");
|
b.HasKey("CorrelationId");
|
||||||
|
|
||||||
b.ToTable("PlayListProcessingState");
|
b.ToTable("PlayListProcessingState", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Musify.Infrastructure.MassTransit.Sagas.TrackProcessingState", b =>
|
modelBuilder.Entity("Musify.Infrastructure.MassTransit.Sagas.TrackProcessingState", b =>
|
||||||
@@ -749,7 +749,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b.HasKey("CorrelationId");
|
b.HasKey("CorrelationId");
|
||||||
|
|
||||||
b.ToTable("TrackProcessingState");
|
b.ToTable("TrackProcessingState", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("MassTransit.EntityFrameworkCoreIntegration.OutboxMessage", b =>
|
modelBuilder.Entity("MassTransit.EntityFrameworkCoreIntegration.OutboxMessage", b =>
|
||||||
@@ -803,7 +803,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b1.HasKey("AlbumId");
|
b1.HasKey("AlbumId");
|
||||||
|
|
||||||
b1.ToTable("Albums");
|
b1.ToTable("Albums", (string)null);
|
||||||
|
|
||||||
b1.WithOwner()
|
b1.WithOwner()
|
||||||
.HasForeignKey("AlbumId");
|
.HasForeignKey("AlbumId");
|
||||||
@@ -896,28 +896,32 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
.HasColumnType("uuid");
|
.HasColumnType("uuid");
|
||||||
|
|
||||||
b1.Property<string>("LargeName")
|
b1.Property<string>("LargeName")
|
||||||
|
.IsRequired()
|
||||||
.HasMaxLength(64)
|
.HasMaxLength(64)
|
||||||
.HasColumnType("character varying(64)")
|
.HasColumnType("character varying(64)")
|
||||||
.HasColumnName("LargePictureName");
|
.HasColumnName("LargePictureName");
|
||||||
|
|
||||||
b1.Property<string>("MediumName")
|
b1.Property<string>("MediumName")
|
||||||
|
.IsRequired()
|
||||||
.HasMaxLength(64)
|
.HasMaxLength(64)
|
||||||
.HasColumnType("character varying(64)")
|
.HasColumnType("character varying(64)")
|
||||||
.HasColumnName("MediumPictureName");
|
.HasColumnName("MediumPictureName");
|
||||||
|
|
||||||
b1.Property<string>("OriginalName")
|
b1.Property<string>("OriginalName")
|
||||||
|
.IsRequired()
|
||||||
.HasMaxLength(64)
|
.HasMaxLength(64)
|
||||||
.HasColumnType("character varying(64)")
|
.HasColumnType("character varying(64)")
|
||||||
.HasColumnName("OriginalPictureName");
|
.HasColumnName("OriginalPictureName");
|
||||||
|
|
||||||
b1.Property<string>("SmallName")
|
b1.Property<string>("SmallName")
|
||||||
|
.IsRequired()
|
||||||
.HasMaxLength(64)
|
.HasMaxLength(64)
|
||||||
.HasColumnType("character varying(64)")
|
.HasColumnType("character varying(64)")
|
||||||
.HasColumnName("SmallPictureName");
|
.HasColumnName("SmallPictureName");
|
||||||
|
|
||||||
b1.HasKey("PlayListId");
|
b1.HasKey("PlayListId");
|
||||||
|
|
||||||
b1.ToTable("PlayLists");
|
b1.ToTable("PlayLists", (string)null);
|
||||||
|
|
||||||
b1.WithOwner()
|
b1.WithOwner()
|
||||||
.HasForeignKey("PlayListId");
|
.HasForeignKey("PlayListId");
|
||||||
@@ -988,7 +992,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b1.HasKey("TrackId");
|
b1.HasKey("TrackId");
|
||||||
|
|
||||||
b1.ToTable("Tracks");
|
b1.ToTable("Tracks", (string)null);
|
||||||
|
|
||||||
b1.WithOwner()
|
b1.WithOwner()
|
||||||
.HasForeignKey("TrackId");
|
.HasForeignKey("TrackId");
|
||||||
@@ -1025,7 +1029,7 @@ namespace Musify.Infrastructure.Persistence.Migrations
|
|||||||
|
|
||||||
b1.HasKey("TrackId");
|
b1.HasKey("TrackId");
|
||||||
|
|
||||||
b1.ToTable("Tracks");
|
b1.ToTable("Tracks", (string)null);
|
||||||
|
|
||||||
b1.WithOwner()
|
b1.WithOwner()
|
||||||
.HasForeignKey("TrackId");
|
.HasForeignKey("TrackId");
|
||||||
|
|||||||
@@ -107,5 +107,30 @@ namespace Musify.Application.Tests.PlayLists
|
|||||||
Assert.Equal("Original Name", result.Value.Name);
|
Assert.Equal("Original Name", result.Value.Name);
|
||||||
Assert.Equal("Original description", result.Value.Description);
|
Assert.Equal("Original description", result.Value.Description);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task Handle_PlayListWithoutPictures_ValidPictureIntent_SetsPictureAndPublishesSourceEvent()
|
||||||
|
{
|
||||||
|
storageService
|
||||||
|
.HeadObjectAsync(Arg.Any<string>(), Arg.Any<string>(), Arg.Any<CancellationToken>())
|
||||||
|
.Returns(new ObjectMetaData("image/webp", 1024));
|
||||||
|
|
||||||
|
var owner = TestEntities.User();
|
||||||
|
var playList = TestEntities.PlayList(owner.Id);
|
||||||
|
playList.Pictures = null;
|
||||||
|
var intent = TestEntities.UploadIntent(owner.Id, Musify.Domain.ValueObjects.UploadIntentPurpose.PlayListPicture, objectName: "new-cover.webp");
|
||||||
|
await SeedAsync(owner, playList, intent);
|
||||||
|
|
||||||
|
var command = new UpdatePlayListCommand(owner.Id, playList.Id, null, null, intent.Id);
|
||||||
|
|
||||||
|
var result = await CreateHandler().Handle(command, TestContext.Current.CancellationToken);
|
||||||
|
|
||||||
|
Assert.False(result.IsError);
|
||||||
|
Assert.Equal("new-cover.webp", result.Value.SmallImageKeyName);
|
||||||
|
var stored = await Database.PlayLists.FindAsync([playList.Id], TestContext.Current.CancellationToken);
|
||||||
|
Assert.NotNull(stored);
|
||||||
|
Assert.Equal("new-cover.webp", stored.Pictures?.OriginalName);
|
||||||
|
await eventBus.Received(1).PublishAsync(Arg.Any<Musify.Application.Events.UpdatePlayListPictureSourceEvent>(), Arg.Any<CancellationToken>());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user