Example #1
0
 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);
         });
     }
 }
Example #2
0
        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);
        }
Example #3
0
        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();
            });
        }
Example #4
0
        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);
        }
Example #5
0
        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();
        }
Example #6
0
        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);
        }