private void SetReaderFactory( MockFileSystem mockFileSystem, DirectoryPath directoryPath, FindImplicitlyIncludedMods includedMods, params Listing[] listings) { foreach (var listing in listings) { mockFileSystem.File.WriteAllText(Path.Combine(directoryPath.Path, listing.Mod.FileName), string.Empty); includedMods.ReaderFactory .FromPath(Path.Combine(directoryPath.Path, listing.Mod.FileName.String)) .Returns(_ => { var reader = Substitute.For <IMasterReferenceReader>(); reader.Masters.Returns(_ => { return(new List <IMasterReferenceGetter>(listing.Masters.Select(m => { return new MasterReference() { Master = m }; }))); }); return(reader); }); } }
public void MissingModSkipsIfAsked( MockFileSystem mockFileSystem, IDataDirectoryProvider dataDirectoryProvider, FindImplicitlyIncludedMods sut) { SetReaderFactory( mockFileSystem, dataDirectoryProvider.Path, sut, new Listing(ModA, ModD), new Listing(ModB, ModC), new Listing(ModC), new Listing(ModD)); mockFileSystem.File.Delete(Path.Combine(dataDirectoryProvider.Path, ModB.FileName)); var list = new List <IModListingGetter>() { new ModListing(ModA, true), new ModListing(ModC, false), new ModListing(ModB, true), new ModListing(ModD, false), }; var found = sut.Find(list, skipMissingMods: true) .ToArray(); found.Should().Equal(ModD); }
public void MissingModThrows( MockFileSystem mockFileSystem, IDataDirectoryProvider dataDirectoryProvider, FindImplicitlyIncludedMods sut) { SetReaderFactory( mockFileSystem, dataDirectoryProvider.Path, sut, new Listing(ModA), new Listing(ModB, ModA, ModC), new Listing(ModC, ModD), new Listing(ModD)); mockFileSystem.File.Delete(Path.Combine(dataDirectoryProvider.Path, ModB.FileName)); var list = new List <IModListingGetter>() { new ModListing(ModA, true), new ModListing(ModC, false), new ModListing(ModB, true), new ModListing(ModD, false), }; Assert.Throws <MissingModException>(() => { sut.Find(list, skipMissingMods: false) .ToArray(); }); }
public void RecursiveEnableBadLo( MockFileSystem mockFileSystem, IDataDirectoryProvider dataDirectoryProvider, FindImplicitlyIncludedMods sut) { SetReaderFactory( mockFileSystem, dataDirectoryProvider.Path, sut, new Listing(ModA), new Listing(ModB, ModA, ModC), new Listing(ModC, ModD), new Listing(ModD)); var list = new List <IModListingGetter>() { new ModListing(ModA, true), new ModListing(ModC, false), new ModListing(ModB, true), new ModListing(ModD, false), }; var found = sut.Find(list) .ToArray(); found.Should().HaveCount(2); found.Should().Equal( ModC, ModD); }
public void UnlistedReference( MockFileSystem mockFileSystem, IDataDirectoryProvider dataDirectoryProvider, FindImplicitlyIncludedMods sut) { SetReaderFactory( mockFileSystem, dataDirectoryProvider.Path, sut, new Listing(ModA), new Listing(ModB, ModA, ModC), new Listing(ModC)); var list = new List <IModListingGetter>() { new ModListing(ModA, true), new ModListing(ModB, true), }; var found = sut.Find(list) .ToList(); found.Should().BeEmpty(); }
public void EnableOne( MockFileSystem mockFileSystem, IDataDirectoryProvider dataDirectoryProvider, FindImplicitlyIncludedMods sut) { SetReaderFactory( mockFileSystem, dataDirectoryProvider.Path, sut, new Listing(ModA), new Listing(ModB, ModA, ModC), new Listing(ModC)); var list = new List <IModListingGetter>() { new ModListing(ModA, true), new ModListing(ModC, false), new ModListing(ModB, true), }; var found = sut.Find(list) .ToList(); found.Should().HaveCount(1); found[0].Should().Be(ModC); }