Пример #1
0
        public void ParagraphClassParam_PPropsNullCstrTest()
        {
            var instance = new ParagraphClassParam(null);

            Assert.IsNull(instance.InlineProperties);
            Assert.IsNull(instance.StyleId);
        }
Пример #2
0
        public void ParagraphClassParam_PPropsCstrTest()
        {
            var pPr      = new ParagraphProperties();
            var instance = new ParagraphClassParam(pPr);

            Assert.AreSame(pPr, instance.InlineProperties);
            Assert.IsNull(instance.StyleId);
        }
Пример #3
0
        [ElementProcessing] // require refactoring (again)
        public bool ProcessParagraph(IElementProcessingState state, Paragraph p)
        {
            var props = p.ParagraphProperties;

            state.SetContext(props);
            state.ProcessingState.GetContext(out ICssRegistrator registrator);
            state.GetContext(out ParagraphContext pContext);
            var parentVNode = pContext.Parent;

            // Build and register class
            var param = new ParagraphClassParam(props);

            // Add table properties
            if (state.GetContext(out TableContext tableContext))
            {
                var tableCell = p.Ancestors <TableCell>().FirstOrDefault();
                if (tableCell != null)
                {
                    var cellState = tableContext.GetCell(tableCell);
                    param.TableProperties = cellState.ParagraphProperties;
                }
            }

            // Add numbering properties
            if (state.GetContext(out NumberingContext numberingContext) &&
                props != null)
            {
                // Add the numbering to the cls param
                param.NumberingId    = numberingContext.NumberingId;
                param.NumberingLevel = numberingContext.Level;

                // Register the run mark and add the class to the numbering numbering
                var numberingCls = registrator.RegisterRun(new RunClassParam
                {
                    InlineProperties = props.ParagraphMarkRunProperties,
                    ParagraphStyleId = param.StyleId,
                    NumberingId      = numberingContext.NumberingId,
                    NumberingLevel   = numberingContext.Level
                });
                parentVNode.AddClasses(_config.ContainerWithNumberingCssClassSuffix.Substring(1));
                numberingContext.NumberingNumber.AddClasses(numberingCls.Name);
            }

            // Add the class to the VNode containing the paragraph
            var pCls = registrator.RegisterParagraph(param);

            parentVNode.AddClasses(pCls.Name);

            // Set the paragraph css context
            state.SetContext(new ParagraphCssContext
            {
                CssClass = pCls
            });

            return(false);
        }
Пример #4
0
        public void ParagraphClassParam_PPropsStyleIdCstrTest()
        {
            var pPr = new ParagraphProperties(new ParagraphStyleId {
                Val = "test"
            });
            var instance = new ParagraphClassParam(pPr);

            Assert.AreSame(pPr, instance.InlineProperties);
            Assert.AreEqual("test", instance.StyleId);
        }
Пример #5
0
        public void ParagraphClassParam_CstTest()
        {
            var instance = new ParagraphClassParam();

            Assert.IsNull(instance.TableProperties);
            Assert.IsNull(instance.StyleId);
            Assert.IsNull(instance.NumberingId);
            Assert.IsNull(instance.NumberingLevel);
            Assert.IsNull(instance.InlineProperties);
        }
Пример #6
0
        public void Register_NewParagraphTest()
        {
            var output = new CssClass();
            var param  = new ParagraphClassParam();

            _paragraphClassFactory.Build(param).Returns(output);

            var result = _instance.RegisterParagraph(param);

            Assert.AreSame(result, output);
        }
Пример #7
0
        private void AssertRegisterParagraphCls(ParagraphClassParam expected)
        {
            var param = _cssRegistrator
                        .ReceivedCalls()
                        .Where(x => x.GetMethodInfo().Name == "RegisterParagraph")
                        .Single()
                        .GetArguments()[0] as ParagraphClassParam;

            Assert.AreSame(expected.InlineProperties, param.InlineProperties);
            Assert.AreSame(expected.TableProperties, param.TableProperties);
            Assert.AreEqual(expected.StyleId, param.StyleId);
            Assert.AreEqual(expected.NumberingId, param.NumberingId);
            Assert.AreEqual(expected.NumberingLevel, param.NumberingLevel);
        }