Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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");
            }
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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);
        }