Exemplo n.º 1
0
        private IMasterReferenceReaderFactory GetReaderFactory(
            MockFileSystem mockFileSystem,
            IDataDirectoryProvider dataDirectoryProvider,
            params Listing[] listings)
        {
            var masterReaderFactory = Substitute.For <IMasterReferenceReaderFactory>();

            foreach (var listing in listings)
            {
                mockFileSystem.File.WriteAllText(Path.Combine(dataDirectoryProvider.Path, listing.Mod), string.Empty);
                masterReaderFactory.FromPath(Path.Combine(dataDirectoryProvider.Path, listing.Mod))
                .Returns(_ =>
                {
                    var reader = Substitute.For <IMasterReferenceReader>();
                    reader.Masters.Returns(_ =>
                    {
                        return(new List <IMasterReferenceGetter>(listing.Masters.Select(m =>
                        {
                            return new MasterReference()
                            {
                                Master = m
                            };
                        })));
                    });
                    return(reader);
                });
            }
            return(masterReaderFactory);
        }
Exemplo n.º 2
0
        private static PluginListingsProvider PluginListingsProvider(
            IDataDirectoryProvider dataDirectory,
            IGameReleaseContext gameContext,
            IPluginListingsPathProvider listingsPathProvider,
            bool throwOnMissingMods,
            IFileSystem fs)
        {
            var pluginListingParser = new PluginListingsParser(
                new ModListingParser(
                    new HasEnabledMarkersProvider(gameContext)));
            var provider = new PluginListingsProvider(
                gameContext,
                new TimestampedPluginListingsProvider(
                    new TimestampAligner(fs),
                    new TimestampedPluginListingsPreferences()
            {
                ThrowOnMissingMods = throwOnMissingMods
            },
                    new PluginRawListingsReader(
                        fs,
                        pluginListingParser),
                    dataDirectory,
                    listingsPathProvider),
                new EnabledPluginListingsProvider(
                    new PluginRawListingsReader(
                        fs,
                        pluginListingParser),
                    listingsPathProvider));

            return(provider);
        }
Exemplo n.º 3
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);
        }
        public void CanGetIDataProvider()
        {
            ServiceRegistry        registry          = CoreServiceRegistryContainer.Create();
            IDataDirectoryProvider directoryProvider = registry.Get <IDataDirectoryProvider>();

            Expect.IsNotNull(directoryProvider);
        }
Exemplo n.º 5
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);
        }
Exemplo n.º 6
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();
            });
        }
 public DataFolderPathDecorator(
     IDataDirectoryProvider dataDirectoryProvider,
     RunPatcherPipelineInstructions instructions)
 {
     DataDirectoryProvider = dataDirectoryProvider;
     Instructions          = instructions;
 }
 public CreationClubLiveLoadOrderFolderWatcher(
     IFileSystem fileSystem,
     IDataDirectoryProvider dataDirectory)
 {
     _fileSystem   = fileSystem;
     DataDirectory = dataDirectory;
 }
 public FindImplicitlyIncludedMods(
     IFileSystem fileSystem,
     IDataDirectoryProvider dataDirectoryProvider,
     IMasterReferenceReaderFactory readerFactory)
 {
     _fileSystem       = fileSystem;
     DirectoryProvider = dataDirectoryProvider;
     ReaderFactory     = readerFactory;
 }
Exemplo n.º 10
0
 public MoveFinalResults(
     IRunReporter reporter,
     IDataDirectoryProvider dataDirectoryProvider,
     IFileSystem fileSystem)
 {
     _reporter = reporter;
     _dataDirectoryProvider = dataDirectoryProvider;
     FileSystem             = fileSystem;
 }
 public void FromCreationClubPathMissing(
     [Frozen] IDataDirectoryProvider dataDirectoryProvider,
     [Frozen] IFileSystem fs)
 {
     var    missingPath = Path.Combine(dataDirectoryProvider.Path, "Skyrim.ccc");
     Action a           = () =>
                          CreationClubListings.ListingsFromPath(
         cccFilePath: missingPath,
         dataPath: default,
Exemplo n.º 12
0
 public ImplicitListingsProvider(
     IFileSystem fileSystem,
     IDataDirectoryProvider dataFolder,
     IImplicitListingModKeyProvider listingModKeys)
 {
     _fileSystem    = fileSystem;
     DataFolder     = dataFolder;
     ListingModKeys = listingModKeys;
 }
Exemplo n.º 13
0
 private IFindImplicitlyIncludedMods GetImplicitlyIncluded(
     MockFileSystem mockFileSystem,
     IDataDirectoryProvider dataDirectoryProvider,
     params Listing[] listings)
 {
     return(new FindImplicitlyIncludedMods(
                mockFileSystem,
                dataDirectoryProvider,
                GetReaderFactory(mockFileSystem, dataDirectoryProvider, listings)));
 }
Exemplo n.º 14
0
 public LoadOrderImporter(
     IFileSystem fileSystem,
     IDataDirectoryProvider dataDirectoryProvider,
     ILoadOrderListingsProvider loadOrderListingsProvider,
     IModImporter <TMod> importer)
 {
     _fileSystem               = fileSystem;
     _dataDirectoryProvider    = dataDirectoryProvider;
     LoadOrderListingsProvider = loadOrderListingsProvider;
     Importer = importer;
 }
 public CreationClubListingsProvider(
     IFileSystem fileSystem,
     IDataDirectoryProvider dataDirectoryProvider,
     ICreationClubListingsPathProvider pluginListingsPathProvider,
     ICreationClubRawListingsReader reader)
 {
     _fileSystem          = fileSystem;
     DirectoryProvider    = dataDirectoryProvider;
     ListingsPathProvider = pluginListingsPathProvider;
     Reader = reader;
 }
Exemplo n.º 16
0
 public void MovesFilesToDataDir(
     IFileSystem fs,
     IDataDirectoryProvider dataDirectoryProvider,
     DirectoryPath missingOutputPath,
     MoveFinalResults sut)
 {
     PrepFileSystem(fs);
     sut.Move(SourcePatchPath, missingOutputPath);
     fs.File.Exists(Path.Combine(dataDirectoryProvider.Path, "Synthesis.esp")).Should().BeTrue();
     fs.File.Exists(Path.Combine(dataDirectoryProvider.Path, "Strings", "Synthesis_English.STRINGS")).Should().BeTrue();
 }
Exemplo n.º 17
0
 public GameEnvironmentProvider(
     IGameReleaseContext gameReleaseContext,
     ILoadOrderImporter loadOrderImporter,
     IDataDirectoryProvider dataDirectoryProvider,
     IPluginListingsPathProvider pluginListingsPathProvider,
     ICreationClubListingsPathProvider cccPath)
 {
     _gameReleaseContext         = gameReleaseContext;
     _loadOrderImporter          = loadOrderImporter;
     _dataDirectoryProvider      = dataDirectoryProvider;
     _pluginListingsPathProvider = pluginListingsPathProvider;
     _cccPath = cccPath;
 }
Exemplo n.º 18
0
 public RunArgsConstructor(
     IPatcherNameSanitizer patcherNameSanitizer,
     IGameReleaseContext releaseContext,
     IDataDirectoryProvider dataDirectoryProvider,
     IRunLoadOrderPathProvider runLoadOrderPathProvider,
     IProfileDirectories profileDirectories)
 {
     ReleaseContext           = releaseContext;
     DataDirectoryProvider    = dataDirectoryProvider;
     RunLoadOrderPathProvider = runLoadOrderPathProvider;
     ProfileDirectories       = profileDirectories;
     PatcherNameSanitizer     = patcherNameSanitizer;
 }
Exemplo n.º 19
0
 public GetApplicableArchivePaths(
     IFileSystem fileSystem,
     IGetArchiveIniListings iniListings,
     ICheckArchiveApplicability applicability,
     IDataDirectoryProvider dataDirectoryProvider,
     IArchiveExtensionProvider archiveExtension)
 {
     _fileSystem            = fileSystem;
     _iniListings           = iniListings;
     _applicability         = applicability;
     _dataDirectoryProvider = dataDirectoryProvider;
     _archiveExtension      = archiveExtension;
 }
Exemplo n.º 20
0
 public TimestampedPluginListingsProvider(
     ITimestampAligner timestampAligner,
     ITimestampedPluginListingsPreferences prefs,
     IPluginRawListingsReader rawListingsReader,
     IDataDirectoryProvider dataDirectoryProvider,
     IPluginListingsPathProvider pluginListingsPathProvider)
 {
     Aligner              = timestampAligner;
     Prefs                = prefs;
     RawListingsReader    = rawListingsReader;
     DirectoryProvider    = dataDirectoryProvider;
     ListingsPathProvider = pluginListingsPathProvider;
 }
Exemplo n.º 21
0
 public void OverwritesFilesInDataDir(
     IFileSystem fs,
     IDataDirectoryProvider dataDirectoryProvider,
     DirectoryPath missingOutputPath,
     MoveFinalResults sut)
 {
     PrepFileSystem(fs);
     fs.File.WriteAllText(Path.Combine(dataDirectoryProvider.Path, "Synthesis.esp"), "Hello");
     fs.Directory.CreateDirectory(Path.Combine(dataDirectoryProvider.Path, "Strings"));
     fs.File.WriteAllText(Path.Combine(dataDirectoryProvider.Path, "Strings", "Synthesis_English.STRINGS"), "World");
     sut.Move(SourcePatchPath, missingOutputPath);
     fs.File.ReadAllText(Path.Combine(dataDirectoryProvider.Path, "Synthesis.esp")).Should().Be(string.Empty);
     fs.File.ReadAllText(Path.Combine(dataDirectoryProvider.Path, "Strings", "Synthesis_English.STRINGS")).Should().Be(string.Empty);
 }
Exemplo n.º 22
0
 public ExecuteOpenForSettings(
     IGameReleaseContext gameReleaseContext,
     IDataDirectoryProvider dataDirectoryProvider,
     ITemporaryLoadOrderProvider loadOrderProvider,
     IProcessRunner processRunner,
     IRunProcessStartInfoProvider runProcessStartInfoProvider,
     IWindowPlacement windowPlacement)
 {
     GameReleaseContext          = gameReleaseContext;
     DataDirectoryProvider       = dataDirectoryProvider;
     ProcessRunner               = processRunner;
     LoadOrderProvider           = loadOrderProvider;
     RunProcessStartInfoProvider = runProcessStartInfoProvider;
     WindowPlacement             = windowPlacement;
 }
Exemplo n.º 23
0
 public void ClassMakeFileExistWithDataDirectory(
     DirectoryPath directoryPath,
     IDataDirectoryProvider dataDirectoryProvider,
     ISpecimenContext context,
     ModKey modKey,
     MakeModExist sut)
 {
     dataDirectoryProvider.Path.Returns(directoryPath);
     context.MockToReturn <IDataDirectoryProvider>(dataDirectoryProvider);
     sut.MakeExist(modKey, context);
     sut.MakeFileExist
     .Received(1)
     .MakeExist(
         Path.Combine(directoryPath, modKey.FileName),
         context);
 }
Exemplo n.º 24
0
        public void ModPathsAreInDataDirectory(
            DirectoryPath dir,
            IDataDirectoryProvider dataDirectoryProvider,
            ISpecimenContext context,
            ModPathMultipleBuilder sut)
        {
            dataDirectoryProvider.Path.Returns(dir);
            context.MockToReturn(dataDirectoryProvider);

            var keys = sut.Create(new MultipleRequest(typeof(ModPath)), context) as IEnumerable <ModPath>;

            foreach (var key in keys !)
            {
                key.Path.IsUnderneath(dir);
            }
        }
Exemplo n.º 25
0
 public OpenSettingsHost(
     IGameReleaseContext gameReleaseContext,
     IPatcherNameProvider nameProvider,
     ITemporaryLoadOrderProvider loadOrderProvider,
     IProcessRunner processRunner,
     IDataDirectoryProvider dataDirectoryProvider,
     IRunProcessStartInfoProvider runProcessStartInfoProvider,
     IWindowPlacement windowPlacement)
 {
     _gameReleaseContext          = gameReleaseContext;
     _nameProvider                = nameProvider;
     _loadOrderProvider           = loadOrderProvider;
     _processRunner               = processRunner;
     _dataDirectoryProvider       = dataDirectoryProvider;
     _runProcessStartInfoProvider = runProcessStartInfoProvider;
     _windowPlacement             = windowPlacement;
 }
Exemplo n.º 26
0
        public void ReturnsModPathWithModKeyMatchingPath(
            ModKey modKey,
            DirectoryPath directoryPath,
            IDataDirectoryProvider dataDirectoryProvider,
            ISpecimenContext context,
            ModPathBuilder sut)
        {
            context.MockToReturn(modKey);
            dataDirectoryProvider.Path.Returns(directoryPath);
            context.MockToReturn(dataDirectoryProvider);

            var ret = sut.Create(typeof(ModPath), context);

            ret.Should().BeOfType <ModPath>();
            var modPath = (ModPath)ret;

            modPath.Path.Name.Should().Be(modPath.ModKey.FileName);
        }
Exemplo n.º 27
0
        public void ReturnsModPathWithinDataDirectory(
            ModKey modKey,
            DirectoryPath directoryPath,
            IDataDirectoryProvider dataDirectoryProvider,
            ISpecimenContext context,
            ModPathBuilder sut)
        {
            context.MockToReturn(modKey);
            dataDirectoryProvider.Path.Returns(directoryPath);
            context.MockToReturn(dataDirectoryProvider);

            var ret = sut.Create(typeof(ModPath), context);

            ret.Should().BeOfType <ModPath>();
            var modPath = (ModPath)ret;

            modPath.Path.IsUnderneath(directoryPath).Should().BeTrue();
        }
        public void LiveLoadOrder_DontReorderPluginsFile(
            [Frozen] IScheduler scheduler,
            [Frozen] MockFileSystem fs,
            [Frozen] ILiveLoadOrderTimings timings,
            [Frozen] IPluginListingsPathProvider pluginPath,
            [Frozen] IDataDirectoryProvider dataDir,
            [Frozen] ICreationClubListingsPathProvider cccPath)
        {
            fs.File.WriteAllText(Path.Combine(dataDir.Path, TestConstants.Skyrim.FileName), string.Empty);
            fs.File.WriteAllText(Path.Combine(dataDir.Path, TestConstants.LightMasterModKey.FileName), string.Empty);
            fs.File.WriteAllLines(pluginPath.Path,
                                  new string[]
            {
                $"*{TestConstants.PluginModKey}",
                $"*{TestConstants.MasterModKey}",
                $"*{TestConstants.PluginModKey2}",
            });
            fs.File.WriteAllLines(cccPath.Path,
                                  new string[]
            {
                TestConstants.LightMasterModKey.ToString(),
                TestConstants.LightMasterModKey2.ToString(),
            });
            var live = LoadOrder.GetLiveLoadOrder(
                GameRelease.SkyrimSE,
                pluginPath.Path,
                dataDir.Path,
                out var state,
                cccLoadOrderFilePath: cccPath.Path,
                scheduler: scheduler,
                fileSystem: fs,
                timings: timings);
            var list = live.AsObservableList();

            list.Items.Select(x => x.ModKey).Should().Equal(new ModKey[]
            {
                TestConstants.Skyrim,
                TestConstants.LightMasterModKey,
                TestConstants.PluginModKey,
                TestConstants.MasterModKey,
                TestConstants.PluginModKey2,
            });
        }
Exemplo n.º 29
0
 public ExecuteRunnabilityCheck(
     IGameReleaseContext gameReleaseContext,
     IWorkDropoff workDropoff,
     IProcessRunner processRunner,
     IDataDirectoryProvider dataDirectoryProvider,
     IBuildMetaFileReader metaFileReader,
     IShortCircuitSettingsProvider shortCircuitSettingsProvider,
     IWriteShortCircuitMeta writeShortCircuitMeta,
     IRunProcessStartInfoProvider runProcessStartInfoProvider)
 {
     MetaFileReader = metaFileReader;
     _shortCircuitSettingsProvider = shortCircuitSettingsProvider;
     _writeShortCircuitMeta        = writeShortCircuitMeta;
     Dropoff = workDropoff;
     DataDirectoryProvider       = dataDirectoryProvider;
     GameReleaseContext          = gameReleaseContext;
     ProcessRunner               = processRunner;
     RunProcessStartInfoProvider = runProcessStartInfoProvider;
 }
Exemplo n.º 30
0
        public void EnableOne(
            MockFileSystem mockFileSystem,
            IDataDirectoryProvider dataDirectoryProvider)
        {
            var adder = new EnableImplicitMasters(GetImplicitlyIncluded(
                                                      mockFileSystem,
                                                      dataDirectoryProvider,
                                                      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),
            };

            adder.Add(list);
            list.Should().HaveCount(3);
            list.All(x => x.Enabled).Should().BeTrue();
        }
Exemplo n.º 31
0
 public LuceneSearchProvider(IDataDirectoryProvider dataDirProvider)
 {
     LuceneIndexBaseDirectory = dataDirProvider.DataDirectoryPath + "\\MyJobLeadsIndex";
 }