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); }
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); }
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); }
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 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; }
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,
public ImplicitListingsProvider( IFileSystem fileSystem, IDataDirectoryProvider dataFolder, IImplicitListingModKeyProvider listingModKeys) { _fileSystem = fileSystem; DataFolder = dataFolder; ListingModKeys = listingModKeys; }
private IFindImplicitlyIncludedMods GetImplicitlyIncluded( MockFileSystem mockFileSystem, IDataDirectoryProvider dataDirectoryProvider, params Listing[] listings) { return(new FindImplicitlyIncludedMods( mockFileSystem, dataDirectoryProvider, GetReaderFactory(mockFileSystem, dataDirectoryProvider, listings))); }
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; }
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(); }
public GameEnvironmentProvider( IGameReleaseContext gameReleaseContext, ILoadOrderImporter loadOrderImporter, IDataDirectoryProvider dataDirectoryProvider, IPluginListingsPathProvider pluginListingsPathProvider, ICreationClubListingsPathProvider cccPath) { _gameReleaseContext = gameReleaseContext; _loadOrderImporter = loadOrderImporter; _dataDirectoryProvider = dataDirectoryProvider; _pluginListingsPathProvider = pluginListingsPathProvider; _cccPath = cccPath; }
public RunArgsConstructor( IPatcherNameSanitizer patcherNameSanitizer, IGameReleaseContext releaseContext, IDataDirectoryProvider dataDirectoryProvider, IRunLoadOrderPathProvider runLoadOrderPathProvider, IProfileDirectories profileDirectories) { ReleaseContext = releaseContext; DataDirectoryProvider = dataDirectoryProvider; RunLoadOrderPathProvider = runLoadOrderPathProvider; ProfileDirectories = profileDirectories; PatcherNameSanitizer = patcherNameSanitizer; }
public GetApplicableArchivePaths( IFileSystem fileSystem, IGetArchiveIniListings iniListings, ICheckArchiveApplicability applicability, IDataDirectoryProvider dataDirectoryProvider, IArchiveExtensionProvider archiveExtension) { _fileSystem = fileSystem; _iniListings = iniListings; _applicability = applicability; _dataDirectoryProvider = dataDirectoryProvider; _archiveExtension = archiveExtension; }
public TimestampedPluginListingsProvider( ITimestampAligner timestampAligner, ITimestampedPluginListingsPreferences prefs, IPluginRawListingsReader rawListingsReader, IDataDirectoryProvider dataDirectoryProvider, IPluginListingsPathProvider pluginListingsPathProvider) { Aligner = timestampAligner; Prefs = prefs; RawListingsReader = rawListingsReader; DirectoryProvider = dataDirectoryProvider; ListingsPathProvider = pluginListingsPathProvider; }
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); }
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; }
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); }
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); } }
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; }
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); }
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, }); }
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; }
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(); }
public LuceneSearchProvider(IDataDirectoryProvider dataDirProvider) { LuceneIndexBaseDirectory = dataDirProvider.DataDirectoryPath + "\\MyJobLeadsIndex"; }