using System.Collections.Generic; using System.Linq; using API.Entities; using API.Entities.Enums; using API.Extensions; using API.Parser; using Xunit; namespace API.Tests.Extensions { public class ChapterListExtensionsTests { private static Chapter CreateChapter(string range, string number, MangaFile file, bool isSpecial) { return new Chapter() { Range = range, Number = number, Files = new List() {file}, IsSpecial = isSpecial }; } private static MangaFile CreateFile(string file, MangaFormat format) { return new MangaFile() { FilePath = file, Format = format }; } [Fact] public void GetAnyChapterByRange_Test_ShouldBeNull() { var info = new ParserInfo() { Chapters = "0", Edition = "", Format = MangaFormat.Archive, FullFilePath = "/manga/darker than black.cbz", Filename = "darker than black.cbz", IsSpecial = false, Series = "darker than black", Title = "darker than black", Volumes = "0" }; var chapterList = new List() { CreateChapter("darker than black - Some special", "0", CreateFile("/manga/darker than black - special.cbz", MangaFormat.Archive), true) }; var actualChapter = chapterList.GetChapterByRange(info); Assert.NotEqual(chapterList[0], actualChapter); } [Fact] public void GetAnyChapterByRange_Test_ShouldBeNotNull() { var info = new ParserInfo() { Chapters = "0", Edition = "", Format = MangaFormat.Archive, FullFilePath = "/manga/darker than black.cbz", Filename = "darker than black.cbz", IsSpecial = true, Series = "darker than black", Title = "darker than black", Volumes = "0" }; var chapterList = new List() { CreateChapter("darker than black", "0", CreateFile("/manga/darker than black.cbz", MangaFormat.Archive), true) }; var actualChapter = chapterList.GetChapterByRange(info); Assert.Equal(chapterList[0], actualChapter); } #region GetFirstChapterWithFiles [Fact] public void GetFirstChapterWithFiles_ShouldReturnAllChapters() { var chapterList = new List() { CreateChapter("darker than black", "0", CreateFile("/manga/darker than black.cbz", MangaFormat.Archive), true), CreateChapter("darker than black", "1", CreateFile("/manga/darker than black.cbz", MangaFormat.Archive), false), }; Assert.Equal(chapterList.First(), chapterList.GetFirstChapterWithFiles()); } [Fact] public void GetFirstChapterWithFiles_ShouldReturnSecondChapter() { var chapterList = new List() { CreateChapter("darker than black", "0", CreateFile("/manga/darker than black.cbz", MangaFormat.Archive), true), CreateChapter("darker than black", "1", CreateFile("/manga/darker than black.cbz", MangaFormat.Archive), false), }; chapterList.First().Files = new List(); Assert.Equal(chapterList.Last(), chapterList.GetFirstChapterWithFiles()); } #endregion } }