Exemplo n.º 1
0
        public void New_DocumentStyle_Reflects_ParentStyle_Properties(DocumentStyleType type)
        {
            var parent = CreateNewStyle(type);

            parent.SetPropertyValue("Name", "parent");
            parent.FontName = "Test";
            var child = CreateNewStyle(type);

            child.SetPropertyValue("Name", "child");
            child.SetPropertyValue("Parent", parent);
            CharacterPropertiesBase next = null;

            if (type == DocumentStyleType.Paragraph)
            {
                next = CreateNewStyle(type);
                child.SetPropertyValue("NextStyle", next);
            }


            var documentStyle = child.ToDocumentStyle(Document);

            documentStyle.StyleName.ShouldBe("child");
            documentStyle.FontName.ShouldBe("Test");
            ((IDocumentStyle)documentStyle).PropeprtiesMap[nameof(documentStyle.FontName)].ShouldBe(parent.Name());
            documentStyle.Parent.ShouldNotBeNull();
            documentStyle.Parent.StyleName.ShouldBe(parent.Name());
            ((IDocumentStyle)documentStyle.Parent).PropeprtiesMap[nameof(documentStyle.FontName)].ShouldBe(parent.Name());

            if (type == DocumentStyleType.Paragraph)
            {
                documentStyle.Next.ShouldNotBeNull();
                documentStyle.Next.StyleName.ShouldBe(next.Name());
            }
        }
Exemplo n.º 2
0
        public void Styles_Count_Should_Be_zero_When_no_style_applied(DocumentStyleType type, int allStyles)
        {
            Document.InsertText(Document.CaretPosition, "test");
            var documentStyles = Document.UsedStyles(type).WhenNotDefaultStyle();

            documentStyles.Count().ShouldBe(0);
            documentStyles = Document.AllStyles(type).WhenNotDefaultStyle();
            documentStyles.Count().ShouldBe(allStyles);
        }
Exemplo n.º 3
0
        public void EnsureStyle_adds_style_if_not_exists(DocumentStyleType type)
        {
            var documentStyle = new DocumentStyle()
            {
                StyleName = "test", DocumentStyleType = type
            };

            var ensureStyle = documentStyle.Ensure(Document);

            ensureStyle.ShouldBeTrue();

            documentStyle.Find(Document).Name().ShouldBe("test");
        }
Exemplo n.º 4
0
        public void Get_DocumentStyles(DocumentStyleType type, int allStyles)
        {
            var styles = Document.NewDocumentStyle(2, type).ToArray();

            var documentStyles = Document.UsedStyles(type).WhenNotDefaultStyle().ToArray();

            documentStyles.Length.ShouldBe(2);
            documentStyles.Select((style, i) => style.DocumentStyleType == type && style.StyleName == styles[i].Name()).Count().ShouldBe(2);

            documentStyles = Document.AllStyles(type).WhenNotDefaultStyle().ToArray();
            documentStyles.Length.ShouldBe(allStyles);
            documentStyles.Select((style, i) => style.DocumentStyleType == type && style.StyleName == styles[i].Name()).ShouldNotBeNull();
            documentStyles.Select(style => style.FontName).All(s => s != null).ShouldBe(true);
        }
Exemplo n.º 5
0
        public void EnsureStyle_Update_style_if_not_used(DocumentStyleType type)
        {
            var nativeStyle = Document.NewDocumentStyle(1, type, true).First();

            nativeStyle.FontName = "test";
            var documentStyle = new DocumentStyle()
            {
                StyleName = nativeStyle.Name(), DocumentStyleType = type
            };

            var ensureStyle = documentStyle.Ensure(Document);

            ensureStyle.ShouldBeTrue();

            documentStyle.Find(Document).FontName.ShouldBe("test");
        }
Exemplo n.º 6
0
        public void Delete_Styles(DocumentStyleType type)
        {
            var paragraphStyle = Document.NewDocumentStyle(1, type).First();
            var documentStyles = Document.UsedStyles(type).ToArray();

            Document.DeleteStyles(documentStyles);

            documentStyles = Document.UsedStyles(type).WhenNotDefaultStyle().ToArray();
            documentStyles.Length.ShouldBe(0);
            documentStyles = Document.AllStyles(type).Where(style => style.IsDeleted).ToArray();
            documentStyles.Length.ShouldBe(1);
            var documentStyle = documentStyles.FirstOrDefault(style => style.DocumentStyleType == type && style.StyleName == paragraphStyle.Name());

            documentStyle.ShouldNotBeNull();
            documentStyle.IsDeleted.ShouldBeTrue();
        }
Exemplo n.º 7
0
        public void Used_Styles_Contain_Parent_And_Next(DocumentStyleType type)
        {
            var style       = Document.NewDocumentStyle(1, type).ToArray().First();
            var parentStyle = type == DocumentStyleType.Paragraph? (CharacterPropertiesBase)Document.ParagraphStyles.CreateNew():Document.CharacterStyles.CreateNew();

            parentStyle.SetPropertyValue("Name", "parent");
            style.SetPropertyValue("Parent", parentStyle);
            if (type == DocumentStyleType.Paragraph)
            {
                var nextStyle = Document.ParagraphStyles.CreateNew();
                nextStyle.Name = "next";
                nextStyle.SetPropertyValue("NextStyle", nextStyle);
                style.SetPropertyValue("NextStyle", nextStyle);
            }

            var usedStyles = Document.UsedStyles(type).ToArray();

            usedStyles.Count(documentStyle => new[] { "parent", "next", style.Name() }.Contains(documentStyle.StyleName)).ShouldBe(type == DocumentStyleType.Paragraph?3:2);
            usedStyles.All(documentStyle => documentStyle.Used).ShouldBeTrue();
        }
Exemplo n.º 8
0
        public void New_TemplateStyle_Stores_Parent_Styles_Separately(DocumentStyleType type)
        {
            using var application = DocumentStyleManagerModule().Application;
            var parentStyle = new DocumentStyle()
            {
                DocumentStyleType = type, StyleName = "parent", FontName = "test"
            };
            var childStyle = new DocumentStyle()
            {
                DocumentStyleType = type, StyleName = "child", Parent = parentStyle
            };

            var templateStyle = childStyle.NewTemplateStyle(application.CreateObjectSpace());

            templateStyle.Parent.ShouldNotBeNull();
            templateStyle.DocumentStyleType.ShouldBe(type);
            templateStyle.Parent.StyleName.ShouldBe(parentStyle.StyleName);
            templateStyle.Parent.FontName.ShouldBe(parentStyle.FontName);
            templateStyle.StyleName.ShouldBe(childStyle.StyleName);
            templateStyle.FontName.ShouldBeNull();
        }
Exemplo n.º 9
0
        public void Replace_many_styles_with_one(DocumentStyleType type)
        {
            Document.NewDocumentStyle(2, type);
            var styles = Document.UsedStyles().WhenNotDefaultStyle().ToArray();

            var replacementStyle = new DocumentStyle()
            {
                StyleName = "replacement", FontSize = 22, FontName = "Verdana", DocumentStyleType = type
            };

            Document.ReplaceStyles(replacementStyle, styles);

            styles = Document.UsedStyles(type).WhenNotDefaultStyle().ToArray();
            styles.Length.ShouldBe(1);
            replacementStyle.ShouldBe(styles.First());
            replacementStyle = (DocumentStyle)styles.First();
            replacementStyle.Used.ShouldBe(true);
            styles = Document.AllStyles(type).WhenNotDefaultStyle().Where(style => style.Used).ToArray();
            styles.Length.ShouldBe(1);
            styles.FirstOrDefault(style => style.DocumentStyleType == type && style.StyleName == replacementStyle.StyleName).ShouldNotBeNull();
        }
Exemplo n.º 10
0
        public void New_CharacterPropertiesBase_Reflects_ParentStyle_Properties(DocumentStyleType documentStyleType)
        {
            var parent = new DocumentStyle {
                FontName = "Test", StyleName = "parent", DocumentStyleType = documentStyleType
            };

            ((IDocumentStyle)parent).PropeprtiesMap[nameof(IDocumentStyle.FontName)] = parent.StyleName;

            var child = new DocumentStyle {
                StyleName = "child", Parent = parent, DocumentStyleType = documentStyleType
            };

            ((IDocumentStyle)child).PropeprtiesMap[nameof(IDocumentStyle.FontName)] = parent.StyleName;

            var next = new DocumentStyle()
            {
                StyleName = "next", DocumentStyleType = documentStyleType
            };

            ((IDocumentStyle)next).PropeprtiesMap[nameof(IDocumentStyle.FontName)] = next.StyleName;
            child.Next = next;

            var style = Document.CreateNewStyle(child);

            style.Name().ShouldBe("child");
            style.FontName.ShouldBeNull();
            var parentStyle = (CharacterPropertiesBase)style.GetPropertyValue("Parent");

            parentStyle.ShouldNotBeNull();
            parentStyle.Name().ShouldBe(parent.StyleName);
            parentStyle.FontName.ShouldBe("Test");

            if (documentStyleType == DocumentStyleType.Paragraph)
            {
                var nextStyle = (CharacterPropertiesBase)style.GetPropertyValue("NextStyle");
                nextStyle.ShouldNotBeNull();
                nextStyle.Name().ShouldBe(next.StyleName);
            }
        }
Exemplo n.º 11
0
        public void Existing_TemplateStyle_Reflects_Parent_Style_Properties(DocumentStyleType type)
        {
            using var application = DocumentStyleManagerModule().Application;
            using var objectSpace = application.CreateObjectSpace();
            var parentTemplate = objectSpace.CreateObject <TemplateStyle>();

            parentTemplate.StyleName = "parent";
            parentTemplate.FontName  = "test";
            var childTemplate = objectSpace.CreateObject <TemplateStyle>();

            childTemplate.StyleName = "child";
            childTemplate.Parent    = parentTemplate;
            var documentStyleLink = objectSpace.CreateObject <DocumentStyleLink>();

            documentStyleLink.Original = childTemplate;

            documentStyleLink.SetDefaultPropertiesProvider(Document);
            var originalStyle = documentStyleLink.OriginalStyle;

            originalStyle.StyleName.ShouldBe(childTemplate.StyleName);
            originalStyle.FontName.ShouldBe(parentTemplate.FontName);
            originalStyle.Parent.ShouldNotBeNull();
            originalStyle.Parent.FontName.ShouldBe(parentTemplate.FontName);
        }
Exemplo n.º 12
0
 public static CharacterPropertiesBase[] NewDocumentStyle(this Document document, int stylesCount, DocumentStyleType type, bool doNotApply = false) =>
 (type == DocumentStyleType.Paragraph ? document.NewParagraphStyle(doNotApply, stylesCount) : document.NewCharacterStyle(stylesCount, doNotApply)).ToArray();
Exemplo n.º 13
0
 private CharacterPropertiesBase CreateNewStyle(DocumentStyleType type) =>
 type == DocumentStyleType.Paragraph ? (CharacterPropertiesBase)Document.ParagraphStyles.CreateNew()
                 : Document.CharacterStyles.CreateNew();
Exemplo n.º 14
0
        public void CharacterStyleFromPosition(int start, int length, string styleName, DocumentStyleType documentStyleType)
        {
            Document.NewDocumentStyle(1, DocumentStyleType.Paragraph);
            Document.NewDocumentStyle(1, DocumentStyleType.Character);
            Document.CaretPosition = Document.CreatePosition(6);

            var style = Document.DocumentStyleFromPosition();

            style.StyleName.ShouldBe(styleName);
            style.DocumentStyleType.ShouldBe(documentStyleType);
        }
Exemplo n.º 15
0
        public void New_DocumentStyle_Default_Properties_Should_reflect_To_DefaultPropertiesProvider(DocumentStyleType type)
        {
            RichEditDocumentServer.CreateNewDocument();
            RichEditDocumentServer.Document.DefaultCharacterProperties.FontSize = 30;

            var styles        = type == DocumentStyleType.Paragraph? Document.ParagraphStyles:Document.CharacterStyles.Cast <CharacterPropertiesBase>();
            var documentStyle = styles.Select(style => style.ToDocumentStyle(RichEditDocumentServer.Document)).First();

            documentStyle.FontName.ShouldNotBeNull();
            documentStyle.FontSize.ShouldBe(30);
            if (type == DocumentStyleType.Paragraph)
            {
                documentStyle.SuppressHyphenation.ShouldNotBeNull();
            }
        }