using System.Collections.Generic; using System.Linq; using API.Data; using API.Entities; using API.Entities.Enums; using API.Entities.Metadata; namespace API.Tests.Helpers; /// /// Used to help quickly create DB entities for Unit Testing /// public static class EntityFactory { public static Series CreateSeries(string name) { return new Series() { Name = name, SortName = name, LocalizedName = name, NormalizedName = API.Services.Tasks.Scanner.Parser.Parser.Normalize(name), Volumes = new List(), Metadata = new SeriesMetadata() }; } public static Volume CreateVolume(string volumeNumber, List chapters = null) { var chaps = chapters ?? new List(); var pages = chaps.Count > 0 ? chaps.Max(c => c.Pages) : 0; return new Volume() { Name = volumeNumber, Number = (int) API.Services.Tasks.Scanner.Parser.Parser.MinNumberFromRange(volumeNumber), Pages = pages, Chapters = chaps }; } public static Chapter CreateChapter(string range, bool isSpecial, List files = null, int pageCount = 0) { return new Chapter() { IsSpecial = isSpecial, Range = range, Number = API.Services.Tasks.Scanner.Parser.Parser.MinNumberFromRange(range) + string.Empty, Files = files ?? new List(), Pages = pageCount, }; } public static MangaFile CreateMangaFile(string filename, MangaFormat format, int pages) { return new MangaFile() { FilePath = filename, Format = format, Pages = pages }; } public static CollectionTag CreateCollectionTag(int id, string title, string summary, bool promoted) { return DbFactory.CollectionTag(id, title, summary, promoted); } }