feat(release): front int PK with app-minted GUID EntryKey on the public addressing surface (P11 W5, 11.H)

This commit is contained in:
daniel-c-harvey
2026-06-16 17:11:55 -04:00
parent fe28573b68
commit f07d29cdcf
37 changed files with 627 additions and 160 deletions
+13 -13
View File
@@ -122,7 +122,7 @@ public class MediumWritePathTests
var release = new ReleaseEntity
{
Title = "Originally a Cut", Artist = "Artist A",
EntryKey = "rk-flip", Title = "Originally a Cut", Artist = "Artist A",
Medium = ReleaseMedium.Cut, ReleaseType = ReleaseType.EP,
};
var track = new TrackEntity { EntryKey = "ek-1", TrackName = "Track", Release = release };
@@ -151,7 +151,7 @@ public class MediumWritePathTests
{
var sessionWithStaleType = new ReleaseEntity
{
Title = "Session", Artist = "A",
EntryKey = "rk-stale", Title = "Session", Artist = "A",
Medium = ReleaseMedium.Session, ReleaseType = ReleaseType.Album,
};
@@ -169,7 +169,7 @@ public class MediumWritePathTests
const string prose = "A late-night set\nrecorded at the Vault.";
var entity = new ReleaseEntity
{
Title = "Live at the Vault", Artist = "Artist A",
EntryKey = "rk-desc", Title = "Live at the Vault", Artist = "Artist A",
Medium = ReleaseMedium.Session, Description = prose,
};
@@ -184,7 +184,7 @@ public class MediumWritePathTests
[Test]
public void Convert_NullDescription_RoundTripsAsNull()
{
var entity = new ReleaseEntity { Title = "Studio Album", Artist = "Artist C", Description = null };
var entity = new ReleaseEntity { EntryKey = "rk-nulldesc", Title = "Studio Album", Artist = "Artist C", Description = null };
var dto = TrackConverter.Convert(entity);
Assert.That(dto.Description, Is.Null);
@@ -222,7 +222,7 @@ public class MediumWritePathTests
var repo = CreateRepository();
ITrackService manager = CreateManager(repo);
var release = new ReleaseEntity { Title = "Studio Album", Artist = "Artist C", Medium = ReleaseMedium.Cut };
var release = new ReleaseEntity { EntryKey = "rk-editdesc", Title = "Studio Album", Artist = "Artist C", Medium = ReleaseMedium.Cut };
var track = new TrackEntity { EntryKey = "ek-1", TrackName = "Track", Release = release };
_context.Tracks.Add(track);
await _context.SaveChangesAsync();
@@ -242,8 +242,8 @@ public class MediumWritePathTests
[Test]
public async Task GetPagedFilteredAsync_WithReleaseId_ReturnsOnlyThatReleasesTracks()
{
var first = new ReleaseEntity { Title = "Untitled", Artist = "Artist A" };
var second = new ReleaseEntity { Title = "Untitled", Artist = "Artist B" };
var first = new ReleaseEntity { EntryKey = "rk-first", Title = "Untitled", Artist = "Artist A" };
var second = new ReleaseEntity { EntryKey = "rk-second", Title = "Untitled", Artist = "Artist B" };
_context.Tracks.AddRange(
new TrackEntity { EntryKey = "a1", TrackName = "A-One", Release = first },
new TrackEntity { EntryKey = "a2", TrackName = "A-Two", Release = first },
@@ -264,8 +264,8 @@ public class MediumWritePathTests
[Test]
public async Task GetPagedFilteredAsync_SameTitledReleases_ResolveDistinctlyById()
{
var first = new ReleaseEntity { Title = "Untitled", Artist = "Artist A" };
var second = new ReleaseEntity { Title = "Untitled", Artist = "Artist B" };
var first = new ReleaseEntity { EntryKey = "rk-first2", Title = "Untitled", Artist = "Artist A" };
var second = new ReleaseEntity { EntryKey = "rk-second2", Title = "Untitled", Artist = "Artist B" };
_context.Tracks.AddRange(
new TrackEntity { EntryKey = "a1", TrackName = "A-One", Release = first },
new TrackEntity { EntryKey = "b1", TrackName = "B-One", Release = second });
@@ -333,7 +333,7 @@ public class MediumWritePathTests
var repo = CreateRepository();
ITrackService manager = CreateManager(repo);
var release = new ReleaseEntity { Title = "Live at the Vault", Artist = "Artist A", Medium = ReleaseMedium.Session };
var release = new ReleaseEntity { EntryKey = "rk-peek", Title = "Live at the Vault", Artist = "Artist A", Medium = ReleaseMedium.Session };
_context.Tracks.Add(new TrackEntity { EntryKey = "ek-1", TrackName = "Track One", Release = release });
await _context.SaveChangesAsync();
@@ -370,7 +370,7 @@ public class MediumWritePathTests
var repo = CreateRepository();
ITrackService manager = CreateManager(repo);
var release = new ReleaseEntity { Title = "Live at the Vault", Artist = "Artist A", Medium = ReleaseMedium.Session };
var release = new ReleaseEntity { EntryKey = "rk-cardses", Title = "Live at the Vault", Artist = "Artist A", Medium = ReleaseMedium.Session };
_context.Tracks.Add(new TrackEntity { EntryKey = "ek-1", TrackName = "Track One", Release = release });
await _context.SaveChangesAsync();
@@ -387,7 +387,7 @@ public class MediumWritePathTests
var repo = CreateRepository();
ITrackService manager = CreateManager(repo);
var release = new ReleaseEntity { Title = "Sunset Set", Artist = "DJ B", Medium = ReleaseMedium.Mix };
var release = new ReleaseEntity { EntryKey = "rk-cardmix", Title = "Sunset Set", Artist = "DJ B", Medium = ReleaseMedium.Mix };
_context.Tracks.Add(new TrackEntity { EntryKey = "ek-1", TrackName = "The Set", Release = release });
await _context.SaveChangesAsync();
@@ -404,7 +404,7 @@ public class MediumWritePathTests
var repo = CreateRepository();
ITrackService manager = CreateManager(repo);
var release = new ReleaseEntity { Title = "Studio Album", Artist = "Artist C", Medium = ReleaseMedium.Cut };
var release = new ReleaseEntity { EntryKey = "rk-cardcut", Title = "Studio Album", Artist = "Artist C", Medium = ReleaseMedium.Cut };
_context.Tracks.AddRange(
new TrackEntity { EntryKey = "c1", TrackName = "One", Release = release },
new TrackEntity { EntryKey = "c2", TrackName = "Two", Release = release },