private TrackChangeParagraphNumberingData BuildParagraphData( Paragraph p, ParagraphState previousState, ParagraphState nextState) { var result = new TrackChangeParagraphNumberingData(); if (previousState != null) { var nConf = _nconfCache.Get(previousState.NumberingInstanceId); result.Previous = new ParagraphData(nConf, previousState); } else { var numChange = p.ParagraphProperties?.NumberingProperties?.NumberingChange; if (numChange != null) { result.PreviousHardcodedText = NumberingChangeStringifier.Stringify(numChange); } } if (nextState != null) { var nConf = _nconfCache.Get(nextState.NumberingInstanceId); result.Current = new ParagraphData(nConf, nextState); } return(result); }
public void Get_CacheLevel1Test() { var numberingPart = NumberingSample1.GenerateNumbering(); var abstractNum = numberingPart.Elements <AbstractNum>().Single(); var numberingInstance = numberingPart.Elements <NumberingInstance>().Single(); var numberingConfigFac = Substitute.For <IConfigFactory>(); var mockAbstractNumConfig = new Config(); numberingConfigFac.CreateFromAbstractNumbering(Arg.Is(abstractNum)).Returns(mockAbstractNumConfig); var mockNumberingConfig = new Config(); numberingConfigFac .CreateFromNumbering(Arg.Is(mockAbstractNumConfig), Arg.Is(numberingInstance)) .Returns(mockNumberingConfig); var instance = new ConfigCache(numberingPart, null, numberingConfigFac); instance.Get(numberingInstance.NumberID.Value); var result = instance.Get(numberingInstance.NumberID.Value); Assert.AreSame(mockNumberingConfig, result); numberingConfigFac.Received(1).CreateFromAbstractNumbering(Arg.Is(abstractNum)); }
public NoelEnvironment(string environmentRoot) { if (Instance != null) { throw new Exception("Environment must be initialized as a singleton"); } Instance = this; RootDirectory = Path.GetFullPath(environmentRoot); bool firstRun = EstablishEnvironment(); if (firstRun) { foreach (var dir in EnvironmentDir.Directories()) { Directory.CreateDirectory(dir); } } Logger = CreateFileLogger(); using (Logger.Context("Initializing environment")) { try { Config = new ConfigCache(firstRun); var gameConfig = Config.Get <GameDirectoryConfig>(); Seasons = gameConfig.Seasons .Where(x => Directory.Exists(Path.Combine(EnvironmentDir.SeasonsDirectory, x.Root))) .Select(x => new Season(x.Number, x.Root)) .ToList(); foreach (var season in Seasons) { Directory.CreateDirectory(season.FullWorkingFolderPath); } TranslationFileCache = new TranslationFileCache(this); GameFileCache = new GameFileCache(this); BackupCache = new BackupCache(); } catch (Exception e) { Logger.LogException(e); Logger.LogLine("Abort"); throw new Exception("Exception occurred during environment initialization", e); } Logger.LogLine("Done"); } }
public void Get_NumberingCircleException() { var numberingPart = NumberingCircularSample.GenerateNumbering(); var stylePart = NumberingCircularSample.GenerateStyles(); var numConfigFac = Substitute.For <IConfigFactory>(); numConfigFac .CreateFromAbstractNumbering(Arg.Any <AbstractNum>()) .Returns(_ => throw new LinkedStyleNumberingException("ImportedStyle1")); var numberingConfigCache = new ConfigCache(numberingPart, stylePart, numConfigFac); Assert.ThrowsException <CircularNumberingException>(() => numberingConfigCache.Get(1)); }
public void Get_NumberingStyleLinkTest() { var numberingPart = NumberingSample2.GenerateNumbering(); var stylePart = NumberingSample2.GenerateStyles(); var numberingConfig = new Config(); var anum1 = numberingPart .Elements <AbstractNum>() .Single(x => x.AbstractNumberId.Value == 18); var numI1 = numberingPart .Elements <NumberingInstance>() .Single(x => x.NumberID.Value == 8); var anum2 = numberingPart .Elements <AbstractNum>() .Single(x => x.AbstractNumberId.Value == 10); var numI2 = numberingPart .Elements <NumberingInstance>() .Single(x => x.NumberID.Value == 7); var numberingConfigFac = Substitute.For <IConfigFactory>(); numberingConfigFac.CreateFromAbstractNumbering(Arg.Is(anum1)) .Returns(x => { throw new LinkedStyleNumberingException("ListBullets"); }); numberingConfigFac.CreateFromAbstractNumbering(Arg.Is(anum2)) .Returns(numberingConfig); numberingConfigFac.CreateFromNumbering(Arg.Is(numberingConfig), Arg.Is(numI2)) .Returns(numberingConfig); numberingConfigFac.CreateFromNumbering(Arg.Is(numberingConfig), Arg.Is(numI1)) .Returns(numberingConfig); var instance = new ConfigCache(numberingPart, stylePart, numberingConfigFac); var result = instance.Get(numI1.NumberID.Value); Assert.AreEqual(numberingConfig, result); }