Don't use static variables to allow tests to pass
This commit is contained in:
parent
2da22ae40b
commit
51e1201ff3
1 changed files with 145 additions and 115 deletions
|
|
@ -15,27 +15,6 @@ namespace API.Tests.Repository;
|
||||||
|
|
||||||
public class PersonRepositoryTests : AbstractDbTest
|
public class PersonRepositoryTests : AbstractDbTest
|
||||||
{
|
{
|
||||||
private static readonly Person SharedSeriesChaptersPerson =
|
|
||||||
new PersonBuilder("Shared Series Chapter Person").Build();
|
|
||||||
|
|
||||||
private static readonly Person SharedSeriesPerson = new PersonBuilder("Shared Series Person").Build();
|
|
||||||
private static readonly Person SharedChaptersPerson = new PersonBuilder("Shared Chapters Person").Build();
|
|
||||||
private static readonly Person Lib0SeriesChaptersPerson = new PersonBuilder("Lib0 Series Chapter Person").Build();
|
|
||||||
private static readonly Person Lib0SeriesPerson = new PersonBuilder("Lib0 Series Person").Build();
|
|
||||||
private static readonly Person Lib0ChaptersPerson = new PersonBuilder("Lib0 Chapters Person").Build();
|
|
||||||
private static readonly Person Lib1SeriesChaptersPerson = new PersonBuilder("Lib1 Series Chapter Person").Build();
|
|
||||||
private static readonly Person Lib1SeriesPerson = new PersonBuilder("Lib1 Series Person").Build();
|
|
||||||
private static readonly Person Lib1ChaptersPerson = new PersonBuilder("Lib1 Chapters Person").Build();
|
|
||||||
private static readonly Person Lib1ChapterAgePerson = new PersonBuilder("Lib1 Chapter Age Person").Build();
|
|
||||||
|
|
||||||
private static readonly List<Person> AllPeople =
|
|
||||||
[
|
|
||||||
SharedSeriesChaptersPerson, SharedSeriesPerson, SharedChaptersPerson,
|
|
||||||
Lib0SeriesChaptersPerson, Lib0SeriesPerson, Lib0ChaptersPerson,
|
|
||||||
Lib1SeriesChaptersPerson, Lib1SeriesPerson, Lib1ChaptersPerson, Lib1ChapterAgePerson
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
private AppUser _fullAccess;
|
private AppUser _fullAccess;
|
||||||
private AppUser _restrictedAccess;
|
private AppUser _restrictedAccess;
|
||||||
private AppUser _restrictedAgeAccess;
|
private AppUser _restrictedAgeAccess;
|
||||||
|
|
@ -61,29 +40,62 @@ public class PersonRepositoryTests : AbstractDbTest
|
||||||
Context.AppUser.Add(_restrictedAgeAccess);
|
Context.AppUser.Add(_restrictedAgeAccess);
|
||||||
await Context.SaveChangesAsync();
|
await Context.SaveChangesAsync();
|
||||||
|
|
||||||
Context.Person.AddRange(AllPeople);
|
var people = CreateTestPeople();
|
||||||
|
Context.Person.AddRange(people);
|
||||||
await Context.SaveChangesAsync();
|
await Context.SaveChangesAsync();
|
||||||
|
|
||||||
|
var libraries = CreateTestLibraries(people);
|
||||||
|
Context.Library.AddRange(libraries);
|
||||||
|
await Context.SaveChangesAsync();
|
||||||
|
|
||||||
|
_fullAccess.Libraries.Add(libraries[0]); // lib0
|
||||||
|
_fullAccess.Libraries.Add(libraries[1]); // lib1
|
||||||
|
_restrictedAccess.Libraries.Add(libraries[1]); // lib1 only
|
||||||
|
_restrictedAgeAccess.Libraries.Add(libraries[1]); // lib1 only
|
||||||
|
|
||||||
|
await Context.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<Person> CreateTestPeople()
|
||||||
|
{
|
||||||
|
return new List<Person>
|
||||||
|
{
|
||||||
|
new PersonBuilder("Shared Series Chapter Person").Build(),
|
||||||
|
new PersonBuilder("Shared Series Person").Build(),
|
||||||
|
new PersonBuilder("Shared Chapters Person").Build(),
|
||||||
|
new PersonBuilder("Lib0 Series Chapter Person").Build(),
|
||||||
|
new PersonBuilder("Lib0 Series Person").Build(),
|
||||||
|
new PersonBuilder("Lib0 Chapters Person").Build(),
|
||||||
|
new PersonBuilder("Lib1 Series Chapter Person").Build(),
|
||||||
|
new PersonBuilder("Lib1 Series Person").Build(),
|
||||||
|
new PersonBuilder("Lib1 Chapters Person").Build(),
|
||||||
|
new PersonBuilder("Lib1 Chapter Age Person").Build()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<Library> CreateTestLibraries(List<Person> people)
|
||||||
|
{
|
||||||
var lib0 = new LibraryBuilder("lib0")
|
var lib0 = new LibraryBuilder("lib0")
|
||||||
.WithSeries(new SeriesBuilder("lib0-s0")
|
.WithSeries(new SeriesBuilder("lib0-s0")
|
||||||
.WithMetadata(new SeriesMetadataBuilder()
|
.WithMetadata(new SeriesMetadataBuilder()
|
||||||
.WithPerson(SharedSeriesChaptersPerson, PersonRole.Writer)
|
.WithPerson(GetPersonByName(people, "Shared Series Chapter Person"), PersonRole.Writer)
|
||||||
.WithPerson(SharedSeriesPerson, PersonRole.Writer)
|
.WithPerson(GetPersonByName(people, "Shared Series Person"), PersonRole.Writer)
|
||||||
.WithPerson(Lib0SeriesChaptersPerson, PersonRole.Writer)
|
.WithPerson(GetPersonByName(people, "Lib0 Series Chapter Person"), PersonRole.Writer)
|
||||||
.WithPerson(Lib0SeriesPerson, PersonRole.Writer)
|
.WithPerson(GetPersonByName(people, "Lib0 Series Person"), PersonRole.Writer)
|
||||||
.Build())
|
.Build())
|
||||||
.WithVolume(new VolumeBuilder("1")
|
.WithVolume(new VolumeBuilder("1")
|
||||||
.WithChapter(new ChapterBuilder("1")
|
.WithChapter(new ChapterBuilder("1")
|
||||||
.WithPerson(SharedSeriesChaptersPerson, PersonRole.Colorist)
|
.WithPerson(GetPersonByName(people, "Shared Series Chapter Person"), PersonRole.Colorist)
|
||||||
.WithPerson(SharedChaptersPerson, PersonRole.Colorist)
|
.WithPerson(GetPersonByName(people, "Shared Chapters Person"), PersonRole.Colorist)
|
||||||
.WithPerson(Lib0SeriesChaptersPerson, PersonRole.Colorist)
|
.WithPerson(GetPersonByName(people, "Lib0 Series Chapter Person"), PersonRole.Colorist)
|
||||||
.WithPerson(Lib0ChaptersPerson, PersonRole.Colorist)
|
.WithPerson(GetPersonByName(people, "Lib0 Chapters Person"), PersonRole.Colorist)
|
||||||
.Build())
|
.Build())
|
||||||
.WithChapter(new ChapterBuilder("2")
|
.WithChapter(new ChapterBuilder("2")
|
||||||
.WithPerson(SharedSeriesChaptersPerson, PersonRole.Editor)
|
.WithPerson(GetPersonByName(people, "Shared Series Chapter Person"), PersonRole.Editor)
|
||||||
.WithPerson(SharedChaptersPerson, PersonRole.Editor)
|
.WithPerson(GetPersonByName(people, "Shared Chapters Person"), PersonRole.Editor)
|
||||||
.WithPerson(Lib0SeriesChaptersPerson, PersonRole.Editor)
|
.WithPerson(GetPersonByName(people, "Lib0 Series Chapter Person"), PersonRole.Editor)
|
||||||
.WithPerson(Lib0ChaptersPerson, PersonRole.Editor).Build())
|
.WithPerson(GetPersonByName(people, "Lib0 Chapters Person"), PersonRole.Editor)
|
||||||
|
.Build())
|
||||||
.Build())
|
.Build())
|
||||||
.Build())
|
.Build())
|
||||||
.Build();
|
.Build();
|
||||||
|
|
@ -91,62 +103,64 @@ public class PersonRepositoryTests : AbstractDbTest
|
||||||
var lib1 = new LibraryBuilder("lib1")
|
var lib1 = new LibraryBuilder("lib1")
|
||||||
.WithSeries(new SeriesBuilder("lib1-s0")
|
.WithSeries(new SeriesBuilder("lib1-s0")
|
||||||
.WithMetadata(new SeriesMetadataBuilder()
|
.WithMetadata(new SeriesMetadataBuilder()
|
||||||
.WithPerson(SharedSeriesChaptersPerson, PersonRole.Letterer)
|
.WithPerson(GetPersonByName(people, "Shared Series Chapter Person"), PersonRole.Letterer)
|
||||||
.WithPerson(SharedSeriesPerson, PersonRole.Letterer)
|
.WithPerson(GetPersonByName(people, "Shared Series Person"), PersonRole.Letterer)
|
||||||
.WithPerson(Lib1SeriesChaptersPerson, PersonRole.Letterer)
|
.WithPerson(GetPersonByName(people, "Lib1 Series Chapter Person"), PersonRole.Letterer)
|
||||||
.WithPerson(Lib1SeriesPerson, PersonRole.Letterer)
|
.WithPerson(GetPersonByName(people, "Lib1 Series Person"), PersonRole.Letterer)
|
||||||
.WithAgeRating(AgeRating.Mature17Plus)
|
.WithAgeRating(AgeRating.Mature17Plus)
|
||||||
.Build())
|
.Build())
|
||||||
.WithVolume(new VolumeBuilder("1")
|
.WithVolume(new VolumeBuilder("1")
|
||||||
.WithChapter(new ChapterBuilder("1")
|
.WithChapter(new ChapterBuilder("1")
|
||||||
.WithPerson(SharedSeriesChaptersPerson, PersonRole.Imprint)
|
.WithPerson(GetPersonByName(people, "Shared Series Chapter Person"), PersonRole.Imprint)
|
||||||
.WithPerson(SharedChaptersPerson, PersonRole.Imprint)
|
.WithPerson(GetPersonByName(people, "Shared Chapters Person"), PersonRole.Imprint)
|
||||||
.WithPerson(Lib1SeriesChaptersPerson, PersonRole.Imprint)
|
.WithPerson(GetPersonByName(people, "Lib1 Series Chapter Person"), PersonRole.Imprint)
|
||||||
.WithPerson(Lib1ChaptersPerson, PersonRole.Imprint)
|
.WithPerson(GetPersonByName(people, "Lib1 Chapters Person"), PersonRole.Imprint)
|
||||||
.Build())
|
.Build())
|
||||||
.WithChapter(new ChapterBuilder("2")
|
.WithChapter(new ChapterBuilder("2")
|
||||||
.WithPerson(SharedSeriesChaptersPerson, PersonRole.CoverArtist)
|
.WithPerson(GetPersonByName(people, "Shared Series Chapter Person"), PersonRole.CoverArtist)
|
||||||
.WithPerson(SharedChaptersPerson, PersonRole.CoverArtist)
|
.WithPerson(GetPersonByName(people, "Shared Chapters Person"), PersonRole.CoverArtist)
|
||||||
.WithPerson(Lib1SeriesChaptersPerson, PersonRole.CoverArtist)
|
.WithPerson(GetPersonByName(people, "Lib1 Series Chapter Person"), PersonRole.CoverArtist)
|
||||||
.WithPerson(Lib1ChaptersPerson, PersonRole.CoverArtist)
|
.WithPerson(GetPersonByName(people, "Lib1 Chapters Person"), PersonRole.CoverArtist)
|
||||||
.WithPerson(Lib1ChapterAgePerson, PersonRole.CoverArtist)
|
.WithPerson(GetPersonByName(people, "Lib1 Chapter Age Person"), PersonRole.CoverArtist)
|
||||||
.WithAgeRating(AgeRating.Mature17Plus)
|
.WithAgeRating(AgeRating.Mature17Plus)
|
||||||
.Build())
|
.Build())
|
||||||
.Build())
|
.Build())
|
||||||
.Build())
|
.Build())
|
||||||
.WithSeries(new SeriesBuilder("lib1-s1")
|
.WithSeries(new SeriesBuilder("lib1-s1")
|
||||||
.WithMetadata(new SeriesMetadataBuilder()
|
.WithMetadata(new SeriesMetadataBuilder()
|
||||||
.WithPerson(SharedSeriesChaptersPerson, PersonRole.Inker)
|
.WithPerson(GetPersonByName(people, "Shared Series Chapter Person"), PersonRole.Inker)
|
||||||
.WithPerson(SharedSeriesPerson, PersonRole.Inker)
|
.WithPerson(GetPersonByName(people, "Shared Series Person"), PersonRole.Inker)
|
||||||
.WithPerson(Lib1SeriesChaptersPerson, PersonRole.Inker)
|
.WithPerson(GetPersonByName(people, "Lib1 Series Chapter Person"), PersonRole.Inker)
|
||||||
.WithPerson(Lib1SeriesPerson, PersonRole.Inker)
|
.WithPerson(GetPersonByName(people, "Lib1 Series Person"), PersonRole.Inker)
|
||||||
.Build())
|
.Build())
|
||||||
.WithVolume(new VolumeBuilder("1")
|
.WithVolume(new VolumeBuilder("1")
|
||||||
.WithChapter(new ChapterBuilder("1")
|
.WithChapter(new ChapterBuilder("1")
|
||||||
.WithPerson(SharedSeriesChaptersPerson, PersonRole.Team)
|
.WithPerson(GetPersonByName(people, "Shared Series Chapter Person"), PersonRole.Team)
|
||||||
.WithPerson(SharedChaptersPerson, PersonRole.Team)
|
.WithPerson(GetPersonByName(people, "Shared Chapters Person"), PersonRole.Team)
|
||||||
.WithPerson(Lib1SeriesChaptersPerson, PersonRole.Team)
|
.WithPerson(GetPersonByName(people, "Lib1 Series Chapter Person"), PersonRole.Team)
|
||||||
.WithPerson(Lib1ChaptersPerson, PersonRole.Team)
|
.WithPerson(GetPersonByName(people, "Lib1 Chapters Person"), PersonRole.Team)
|
||||||
.Build())
|
.Build())
|
||||||
.WithChapter(new ChapterBuilder("2")
|
.WithChapter(new ChapterBuilder("2")
|
||||||
.WithPerson(SharedSeriesChaptersPerson, PersonRole.Translator)
|
.WithPerson(GetPersonByName(people, "Shared Series Chapter Person"), PersonRole.Translator)
|
||||||
.WithPerson(SharedChaptersPerson, PersonRole.Translator)
|
.WithPerson(GetPersonByName(people, "Shared Chapters Person"), PersonRole.Translator)
|
||||||
.WithPerson(Lib1SeriesChaptersPerson, PersonRole.Translator)
|
.WithPerson(GetPersonByName(people, "Lib1 Series Chapter Person"), PersonRole.Translator)
|
||||||
.WithPerson(Lib1ChaptersPerson, PersonRole.Translator)
|
.WithPerson(GetPersonByName(people, "Lib1 Chapters Person"), PersonRole.Translator)
|
||||||
.Build())
|
.Build())
|
||||||
.Build())
|
.Build())
|
||||||
.Build())
|
.Build())
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
|
return new List<Library> { lib0, lib1 };
|
||||||
|
}
|
||||||
|
|
||||||
await Context.SaveChangesAsync();
|
private static Person GetPersonByName(List<Person> people, string name)
|
||||||
|
{
|
||||||
|
return people.First(p => p.Name == name);
|
||||||
|
}
|
||||||
|
|
||||||
_fullAccess.Libraries.Add(lib0);
|
private Person GetPersonByName(string name)
|
||||||
_fullAccess.Libraries.Add(lib1);
|
{
|
||||||
_restrictedAccess.Libraries.Add(lib1);
|
return Context.Person.First(p => p.Name == name);
|
||||||
_restrictedAgeAccess.Libraries.Add(lib1);
|
|
||||||
|
|
||||||
await Context.SaveChangesAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Predicate<BrowsePersonDto> ContainsPersonCheck(Person person)
|
private static Predicate<BrowsePersonDto> ContainsPersonCheck(Person person)
|
||||||
|
|
@ -160,22 +174,29 @@ public class PersonRepositoryTests : AbstractDbTest
|
||||||
await ResetDb();
|
await ResetDb();
|
||||||
await SeedDb();
|
await SeedDb();
|
||||||
|
|
||||||
|
// Get people from database for assertions
|
||||||
|
var sharedSeriesChaptersPerson = GetPersonByName("Shared Series Chapter Person");
|
||||||
|
var lib0SeriesPerson = GetPersonByName("Lib0 Series Person");
|
||||||
|
var lib1SeriesPerson = GetPersonByName("Lib1 Series Person");
|
||||||
|
var lib1ChapterAgePerson = GetPersonByName("Lib1 Chapter Age Person");
|
||||||
|
var allPeople = Context.Person.ToList();
|
||||||
|
|
||||||
var fullAccessPeople =
|
var fullAccessPeople =
|
||||||
await UnitOfWork.PersonRepository.GetBrowsePersonDtos(_fullAccess.Id, new BrowsePersonFilterDto(),
|
await UnitOfWork.PersonRepository.GetBrowsePersonDtos(_fullAccess.Id, new BrowsePersonFilterDto(),
|
||||||
new UserParams());
|
new UserParams());
|
||||||
Assert.Equal(AllPeople.Count, fullAccessPeople.TotalCount);
|
Assert.Equal(allPeople.Count, fullAccessPeople.TotalCount);
|
||||||
|
|
||||||
foreach (var person in AllPeople) Assert.Contains(fullAccessPeople, ContainsPersonCheck(person));
|
foreach (var person in allPeople)
|
||||||
|
Assert.Contains(fullAccessPeople, ContainsPersonCheck(person));
|
||||||
|
|
||||||
// 1 lib0, 2 Lib1
|
// 1 lib0, 2 Lib1
|
||||||
Assert.Equal(3, fullAccessPeople.First(dto => dto.Id == SharedSeriesChaptersPerson.Id).SeriesCount);
|
Assert.Equal(3, fullAccessPeople.First(dto => dto.Id == sharedSeriesChaptersPerson.Id).SeriesCount);
|
||||||
// 2* the above
|
// 2* the above
|
||||||
Assert.Equal(6, fullAccessPeople.First(dto => dto.Id == SharedSeriesChaptersPerson.Id).ChapterCount);
|
Assert.Equal(6, fullAccessPeople.First(dto => dto.Id == sharedSeriesChaptersPerson.Id).ChapterCount);
|
||||||
// 1 series in lib0
|
// 1 series in lib0
|
||||||
Assert.Equal(1, fullAccessPeople.First(dto => dto.Id == Lib0SeriesPerson.Id).SeriesCount);
|
Assert.Equal(1, fullAccessPeople.First(dto => dto.Id == lib0SeriesPerson.Id).SeriesCount);
|
||||||
// 2 series in lib1
|
// 2 series in lib1
|
||||||
Assert.Equal(2, fullAccessPeople.First(dto => dto.Id == Lib1SeriesPerson.Id).SeriesCount);
|
Assert.Equal(2, fullAccessPeople.First(dto => dto.Id == lib1SeriesPerson.Id).SeriesCount);
|
||||||
|
|
||||||
|
|
||||||
var restrictedAccessPeople =
|
var restrictedAccessPeople =
|
||||||
await UnitOfWork.PersonRepository.GetBrowsePersonDtos(_restrictedAccess.Id, new BrowsePersonFilterDto(),
|
await UnitOfWork.PersonRepository.GetBrowsePersonDtos(_restrictedAccess.Id, new BrowsePersonFilterDto(),
|
||||||
|
|
@ -183,21 +204,20 @@ public class PersonRepositoryTests : AbstractDbTest
|
||||||
|
|
||||||
Assert.Equal(7, restrictedAccessPeople.TotalCount);
|
Assert.Equal(7, restrictedAccessPeople.TotalCount);
|
||||||
|
|
||||||
Assert.Contains(restrictedAccessPeople, ContainsPersonCheck(SharedSeriesChaptersPerson));
|
Assert.Contains(restrictedAccessPeople, ContainsPersonCheck(GetPersonByName("Shared Series Chapter Person")));
|
||||||
Assert.Contains(restrictedAccessPeople, ContainsPersonCheck(SharedSeriesPerson));
|
Assert.Contains(restrictedAccessPeople, ContainsPersonCheck(GetPersonByName("Shared Series Person")));
|
||||||
Assert.Contains(restrictedAccessPeople, ContainsPersonCheck(SharedChaptersPerson));
|
Assert.Contains(restrictedAccessPeople, ContainsPersonCheck(GetPersonByName("Shared Chapters Person")));
|
||||||
Assert.Contains(restrictedAccessPeople, ContainsPersonCheck(Lib1SeriesChaptersPerson));
|
Assert.Contains(restrictedAccessPeople, ContainsPersonCheck(GetPersonByName("Lib1 Series Chapter Person")));
|
||||||
Assert.Contains(restrictedAccessPeople, ContainsPersonCheck(Lib1SeriesPerson));
|
Assert.Contains(restrictedAccessPeople, ContainsPersonCheck(GetPersonByName("Lib1 Series Person")));
|
||||||
Assert.Contains(restrictedAccessPeople, ContainsPersonCheck(Lib1ChaptersPerson));
|
Assert.Contains(restrictedAccessPeople, ContainsPersonCheck(GetPersonByName("Lib1 Chapters Person")));
|
||||||
Assert.Contains(restrictedAccessPeople, ContainsPersonCheck(Lib1ChapterAgePerson));
|
Assert.Contains(restrictedAccessPeople, ContainsPersonCheck(GetPersonByName("Lib1 Chapter Age Person")));
|
||||||
|
|
||||||
// 2 series in lib1, 0 in lib0
|
// 2 series in lib1, 0 in lib0
|
||||||
Assert.Equal(2, restrictedAccessPeople.First(dto => dto.Id == SharedSeriesChaptersPerson.Id).SeriesCount);
|
Assert.Equal(2, restrictedAccessPeople.First(dto => dto.Id == sharedSeriesChaptersPerson.Id).SeriesCount);
|
||||||
// 2* the above
|
// 2* the above
|
||||||
Assert.Equal(4, restrictedAccessPeople.First(dto => dto.Id == SharedSeriesChaptersPerson.Id).ChapterCount);
|
Assert.Equal(4, restrictedAccessPeople.First(dto => dto.Id == sharedSeriesChaptersPerson.Id).ChapterCount);
|
||||||
// Access to both series
|
// Access to both series
|
||||||
Assert.Equal(2, restrictedAccessPeople.First(dto => dto.Id == Lib1SeriesPerson.Id).SeriesCount);
|
Assert.Equal(2, restrictedAccessPeople.First(dto => dto.Id == lib1SeriesPerson.Id).SeriesCount);
|
||||||
|
|
||||||
|
|
||||||
var restrictedAgeAccessPeople = await UnitOfWork.PersonRepository.GetBrowsePersonDtos(_restrictedAgeAccess.Id,
|
var restrictedAgeAccessPeople = await UnitOfWork.PersonRepository.GetBrowsePersonDtos(_restrictedAgeAccess.Id,
|
||||||
new BrowsePersonFilterDto(), new UserParams());
|
new BrowsePersonFilterDto(), new UserParams());
|
||||||
|
|
@ -205,7 +225,7 @@ public class PersonRepositoryTests : AbstractDbTest
|
||||||
// Note: There is a potential bug here where a person in a different chapter of an age restricted series will show up
|
// Note: There is a potential bug here where a person in a different chapter of an age restricted series will show up
|
||||||
Assert.Equal(6, restrictedAgeAccessPeople.TotalCount);
|
Assert.Equal(6, restrictedAgeAccessPeople.TotalCount);
|
||||||
|
|
||||||
Assert.DoesNotContain(restrictedAgeAccessPeople, ContainsPersonCheck(Lib1ChapterAgePerson));
|
Assert.DoesNotContain(restrictedAgeAccessPeople, ContainsPersonCheck(lib1ChapterAgePerson));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -214,24 +234,27 @@ public class PersonRepositoryTests : AbstractDbTest
|
||||||
await ResetDb();
|
await ResetDb();
|
||||||
await SeedDb();
|
await SeedDb();
|
||||||
|
|
||||||
var sharedSeriesRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(SharedSeriesPerson.Id, _fullAccess.Id);
|
var sharedSeriesPerson = GetPersonByName("Shared Series Person");
|
||||||
var chapterRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(SharedChaptersPerson.Id, _fullAccess.Id);
|
var sharedChaptersPerson = GetPersonByName("Shared Chapters Person");
|
||||||
var ageChapterRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(Lib1ChapterAgePerson.Id, _fullAccess.Id);
|
var lib1ChapterAgePerson = GetPersonByName("Lib1 Chapter Age Person");
|
||||||
|
|
||||||
|
var sharedSeriesRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(sharedSeriesPerson.Id, _fullAccess.Id);
|
||||||
|
var chapterRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(sharedChaptersPerson.Id, _fullAccess.Id);
|
||||||
|
var ageChapterRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(lib1ChapterAgePerson.Id, _fullAccess.Id);
|
||||||
Assert.Equal(3, sharedSeriesRoles.Count());
|
Assert.Equal(3, sharedSeriesRoles.Count());
|
||||||
Assert.Equal(6, chapterRoles.Count());
|
Assert.Equal(6, chapterRoles.Count());
|
||||||
Assert.Single(ageChapterRoles);
|
Assert.Single(ageChapterRoles);
|
||||||
|
|
||||||
|
var restrictedRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(sharedSeriesPerson.Id, _restrictedAccess.Id);
|
||||||
var restrictedRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(SharedSeriesPerson.Id, _restrictedAccess.Id);
|
var restrictedChapterRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(sharedChaptersPerson.Id, _restrictedAccess.Id);
|
||||||
var restrictedChapterRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(SharedChaptersPerson.Id, _restrictedAccess.Id);
|
var restrictedAgePersonChapterRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(lib1ChapterAgePerson.Id, _restrictedAccess.Id);
|
||||||
var restrictedAgePersonChapterRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(Lib1ChapterAgePerson.Id, _restrictedAccess.Id);
|
|
||||||
Assert.Equal(2, restrictedRoles.Count());
|
Assert.Equal(2, restrictedRoles.Count());
|
||||||
Assert.Equal(4, restrictedChapterRoles.Count());
|
Assert.Equal(4, restrictedChapterRoles.Count());
|
||||||
Assert.Single(restrictedAgePersonChapterRoles);
|
Assert.Single(restrictedAgePersonChapterRoles);
|
||||||
|
|
||||||
var restrictedAgeRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(SharedSeriesPerson.Id, _restrictedAgeAccess.Id);
|
var restrictedAgeRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(sharedSeriesPerson.Id, _restrictedAgeAccess.Id);
|
||||||
var restrictedAgeChapterRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(SharedChaptersPerson.Id, _restrictedAgeAccess.Id);
|
var restrictedAgeChapterRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(sharedChaptersPerson.Id, _restrictedAgeAccess.Id);
|
||||||
var restrictedAgeAgePersonChapterRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(Lib1ChapterAgePerson.Id, _restrictedAgeAccess.Id);
|
var restrictedAgeAgePersonChapterRoles = await UnitOfWork.PersonRepository.GetRolesForPersonByName(lib1ChapterAgePerson.Id, _restrictedAgeAccess.Id);
|
||||||
Assert.Single(restrictedAgeRoles);
|
Assert.Single(restrictedAgeRoles);
|
||||||
Assert.Equal(2, restrictedAgeChapterRoles.Count());
|
Assert.Equal(2, restrictedAgeChapterRoles.Count());
|
||||||
// Note: There is a potential bug here where a person in a different chapter of an age restricted series will show up
|
// Note: There is a potential bug here where a person in a different chapter of an age restricted series will show up
|
||||||
|
|
@ -244,19 +267,21 @@ public class PersonRepositoryTests : AbstractDbTest
|
||||||
await ResetDb();
|
await ResetDb();
|
||||||
await SeedDb();
|
await SeedDb();
|
||||||
|
|
||||||
foreach (var person in AllPeople)
|
var allPeople = Context.Person.ToList();
|
||||||
|
|
||||||
|
foreach (var person in allPeople)
|
||||||
{
|
{
|
||||||
Assert.NotNull(await UnitOfWork.PersonRepository.GetPersonDtoByName(person.Name, _fullAccess.Id));
|
Assert.NotNull(await UnitOfWork.PersonRepository.GetPersonDtoByName(person.Name, _fullAccess.Id));
|
||||||
}
|
}
|
||||||
|
|
||||||
Assert.Null(await UnitOfWork.PersonRepository.GetPersonDtoByName(Lib0ChaptersPerson.Name, _restrictedAccess.Id));
|
Assert.Null(await UnitOfWork.PersonRepository.GetPersonDtoByName("Lib0 Chapters Person", _restrictedAccess.Id));
|
||||||
Assert.NotNull(await UnitOfWork.PersonRepository.GetPersonDtoByName(SharedSeriesPerson.Name, _restrictedAccess.Id));
|
Assert.NotNull(await UnitOfWork.PersonRepository.GetPersonDtoByName("Shared Series Person", _restrictedAccess.Id));
|
||||||
Assert.NotNull(await UnitOfWork.PersonRepository.GetPersonDtoByName(Lib1SeriesPerson.Name, _restrictedAccess.Id));
|
Assert.NotNull(await UnitOfWork.PersonRepository.GetPersonDtoByName("Lib1 Series Person", _restrictedAccess.Id));
|
||||||
|
|
||||||
Assert.Null(await UnitOfWork.PersonRepository.GetPersonDtoByName(Lib0ChaptersPerson.Name, _restrictedAgeAccess.Id));
|
Assert.Null(await UnitOfWork.PersonRepository.GetPersonDtoByName("Lib0 Chapters Person", _restrictedAgeAccess.Id));
|
||||||
Assert.NotNull(await UnitOfWork.PersonRepository.GetPersonDtoByName(Lib1SeriesPerson.Name, _restrictedAgeAccess.Id));
|
Assert.NotNull(await UnitOfWork.PersonRepository.GetPersonDtoByName("Lib1 Series Person", _restrictedAgeAccess.Id));
|
||||||
// Note: There is a potential bug here where a person in a different chapter of an age restricted series will show up
|
// Note: There is a potential bug here where a person in a different chapter of an age restricted series will show up
|
||||||
Assert.Null(await UnitOfWork.PersonRepository.GetPersonDtoByName(Lib1ChapterAgePerson.Name, _restrictedAgeAccess.Id));
|
Assert.Null(await UnitOfWork.PersonRepository.GetPersonDtoByName("Lib1 Chapter Age Person", _restrictedAgeAccess.Id));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -265,16 +290,19 @@ public class PersonRepositoryTests : AbstractDbTest
|
||||||
await ResetDb();
|
await ResetDb();
|
||||||
await SeedDb();
|
await SeedDb();
|
||||||
|
|
||||||
var series = await UnitOfWork.PersonRepository.GetSeriesKnownFor(SharedSeriesPerson.Id, _fullAccess.Id);
|
var sharedSeriesPerson = GetPersonByName("Shared Series Person");
|
||||||
|
var lib1SeriesPerson = GetPersonByName("Lib1 Series Person");
|
||||||
|
|
||||||
|
var series = await UnitOfWork.PersonRepository.GetSeriesKnownFor(sharedSeriesPerson.Id, _fullAccess.Id);
|
||||||
Assert.Equal(3, series.Count());
|
Assert.Equal(3, series.Count());
|
||||||
|
|
||||||
series = await UnitOfWork.PersonRepository.GetSeriesKnownFor(SharedSeriesPerson.Id, _restrictedAccess.Id);
|
series = await UnitOfWork.PersonRepository.GetSeriesKnownFor(sharedSeriesPerson.Id, _restrictedAccess.Id);
|
||||||
Assert.Equal(2, series.Count());
|
Assert.Equal(2, series.Count());
|
||||||
|
|
||||||
series = await UnitOfWork.PersonRepository.GetSeriesKnownFor(SharedSeriesPerson.Id, _restrictedAgeAccess.Id);
|
series = await UnitOfWork.PersonRepository.GetSeriesKnownFor(sharedSeriesPerson.Id, _restrictedAgeAccess.Id);
|
||||||
Assert.Single(series);
|
Assert.Single(series);
|
||||||
|
|
||||||
series = await UnitOfWork.PersonRepository.GetSeriesKnownFor(Lib1SeriesPerson.Id, _restrictedAgeAccess.Id);
|
series = await UnitOfWork.PersonRepository.GetSeriesKnownFor(lib1SeriesPerson.Id, _restrictedAgeAccess.Id);
|
||||||
Assert.Single(series);
|
Assert.Single(series);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -284,26 +312,28 @@ public class PersonRepositoryTests : AbstractDbTest
|
||||||
await ResetDb();
|
await ResetDb();
|
||||||
await SeedDb();
|
await SeedDb();
|
||||||
|
|
||||||
|
var sharedChaptersPerson = GetPersonByName("Shared Chapters Person");
|
||||||
|
|
||||||
// Lib0
|
// Lib0
|
||||||
var chapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(SharedChaptersPerson.Id, _fullAccess.Id, PersonRole.Colorist);
|
var chapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(sharedChaptersPerson.Id, _fullAccess.Id, PersonRole.Colorist);
|
||||||
var restrictedChapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(SharedChaptersPerson.Id, _restrictedAccess.Id, PersonRole.Colorist);
|
var restrictedChapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(sharedChaptersPerson.Id, _restrictedAccess.Id, PersonRole.Colorist);
|
||||||
var restrictedAgeChapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(SharedChaptersPerson.Id, _restrictedAgeAccess.Id, PersonRole.Colorist);
|
var restrictedAgeChapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(sharedChaptersPerson.Id, _restrictedAgeAccess.Id, PersonRole.Colorist);
|
||||||
Assert.Single(chapters);
|
Assert.Single(chapters);
|
||||||
Assert.Empty(restrictedChapters);
|
Assert.Empty(restrictedChapters);
|
||||||
Assert.Empty(restrictedAgeChapters);
|
Assert.Empty(restrictedAgeChapters);
|
||||||
|
|
||||||
// Lib1 - age restricted
|
// Lib1 - age restricted
|
||||||
chapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(SharedChaptersPerson.Id, _fullAccess.Id, PersonRole.Imprint);
|
chapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(sharedChaptersPerson.Id, _fullAccess.Id, PersonRole.Imprint);
|
||||||
restrictedChapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(SharedChaptersPerson.Id, _restrictedAccess.Id, PersonRole.Imprint);
|
restrictedChapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(sharedChaptersPerson.Id, _restrictedAccess.Id, PersonRole.Imprint);
|
||||||
restrictedAgeChapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(SharedChaptersPerson.Id, _restrictedAgeAccess.Id, PersonRole.Imprint);
|
restrictedAgeChapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(sharedChaptersPerson.Id, _restrictedAgeAccess.Id, PersonRole.Imprint);
|
||||||
Assert.Single(chapters);
|
Assert.Single(chapters);
|
||||||
Assert.Single(restrictedChapters);
|
Assert.Single(restrictedChapters);
|
||||||
Assert.Empty(restrictedAgeChapters);
|
Assert.Empty(restrictedAgeChapters);
|
||||||
|
|
||||||
// Lib1 - not age restricted
|
// Lib1 - not age restricted
|
||||||
chapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(SharedChaptersPerson.Id, _fullAccess.Id, PersonRole.Team);
|
chapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(sharedChaptersPerson.Id, _fullAccess.Id, PersonRole.Team);
|
||||||
restrictedChapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(SharedChaptersPerson.Id, _restrictedAccess.Id, PersonRole.Team);
|
restrictedChapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(sharedChaptersPerson.Id, _restrictedAccess.Id, PersonRole.Team);
|
||||||
restrictedAgeChapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(SharedChaptersPerson.Id, _restrictedAgeAccess.Id, PersonRole.Team);
|
restrictedAgeChapters = await UnitOfWork.PersonRepository.GetChaptersForPersonByRole(sharedChaptersPerson.Id, _restrictedAgeAccess.Id, PersonRole.Team);
|
||||||
Assert.Single(chapters);
|
Assert.Single(chapters);
|
||||||
Assert.Single(restrictedChapters);
|
Assert.Single(restrictedChapters);
|
||||||
Assert.Single(restrictedAgeChapters);
|
Assert.Single(restrictedAgeChapters);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue