/// <summary> /// Initializes a new instance of the <see cref="FileSystemRepository{T}" /> class. /// </summary> /// <remarks> /// Required constructor signature for all classes implementing <see cref="IKerbalDataRepo{T}"/> /// </remarks> public FileSystemRepository(ProcessorRegistry registry, IDictionary <string, object> parameters) { if (parameters == null || !parameters.ContainsKey(IncludeParamName) || !parameters.ContainsKey(UriParamName) || !parameters.ContainsKey(FileNameParamName) || !parameters.ContainsKey(FileModeParamName)) { throw new KerbalDataException("The KspInstallFileRepo requires a search filter at minimum"); } this.registry = registry; BaseUri = GetParameter(UriParamName, parameters).ToString(); includes = GetParameter(IncludeParamName, parameters).ToString().Split(PathSeparator).Select(i => i).ToArray(); excludes = GetParameter(ExcludeParamName, parameters) != null ? GetParameter(ExcludeParamName, parameters).ToString().Split(PathSeparator).Select(i => i).ToArray() : null; fileName = GetParameter(FileNameParamName, parameters).ToString(); mode = GetParameter(FileModeParamName, parameters) != null ? (FileMode)Enum.Parse(typeof(FileMode), GetParameter(FileModeParamName, parameters).ToString()) : FileMode.Flat; backup = GetParameter(BackupParamName, parameters) == null || (bool)GetParameter(BackupParamName, parameters); }
public void DataTypeConvertTest() { var data = (new StreamReader(File.Open(TestHelpers.BaseDataPath() + @"Ships\VAB\MultiSatMk1.craft", FileMode.Open))).ReadToEnd(); var convertedCraft = KspData.Convert(data, ProcessorRegistry.Create().Create <CraftFile>()); // Bit ugly to test this use case, would never be this way in the real world as this is what happens internally var convertedCraft2 = KspData.Convert <CraftFile>(data); var craft = KspData.LoadKspFile <CraftFile>(TestHelpers.BaseDataPath() + @"Ships\VAB\MultiSatMk1.craft"); Assert.NotNull(convertedCraft); Assert.NotNull(convertedCraft2); Assert.AreEqual(craft.Parts.Count, convertedCraft.Parts.Count); Assert.AreEqual(craft.Parts.Count, convertedCraft2.Parts.Count); }
public void CloneTest() { var save = KspData.LoadKspFile(TestHelpers.BaseDataTempPath() + @"saves\KspPersistentSfswMods\persistent.sfs", ProcessorRegistry.Create().Create <SaveFile>()); var clone = save.Clone <SaveFile>(); Assert.AreEqual(save.Game.Description, clone.Game.Description); }
public void SingleFileSaveTest() { var save = KspData.LoadKspFile(TestHelpers.BaseDataTempPath() + @"saves\KspPersistentSfswMods\persistent.sfs", ProcessorRegistry.Create().Create <SaveFile>()); save.Game.Description = "HELLO WORLD!"; save.Save(); var changed = KspData.LoadKspFile(TestHelpers.BaseDataTempPath() + @"saves\KspPersistentSfswMods\persistent.sfs", ProcessorRegistry.Create().Create <SaveFile>()); Assert.AreEqual(save.Game.Description, changed.Game.Description); changed.Save(TestHelpers.BaseDataTempPath() + @"saves\KspPersistentSfswMods\newname.sfs"); var newsave = KspData.LoadKspFile(TestHelpers.BaseDataTempPath() + @"saves\KspPersistentSfswMods\newname.sfs", ProcessorRegistry.Create().Create <SaveFile>()); Assert.AreEqual(save.Game.Description, newsave.Game.Description); }