소스 검색

Add tests for text decoration features in TextSpan and TextStyle

Marcin Ziąbek 2 달 전
부모
커밋
f59072ff98
2개의 변경된 파일217개의 추가작업 그리고 0개의 파일을 삭제
  1. 109 0
      Source/QuestPDF.UnitTests/TextSpanTests.cs
  2. 108 0
      Source/QuestPDF.UnitTests/TextStyleTests.cs

+ 109 - 0
Source/QuestPDF.UnitTests/TextSpanTests.cs

@@ -6,6 +6,7 @@ using QuestPDF.Elements.Text.Items;
 using QuestPDF.Fluent;
 using QuestPDF.Helpers;
 using QuestPDF.Infrastructure;
+using QuestPDF.Skia.Text;
 
 namespace QuestPDF.UnitTests;
 
@@ -22,6 +23,114 @@ public class TextSpanTests
         return (descriptor, textBlockSpan);
     }
     
+    #region Text Decoration
+
+    [Test]
+    public void SetsCorrectTextDecoration_Strikethrough()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.Strikethrough();
+        Assert.That(textBlockSpan.Style.HasStrikethrough, Is.EqualTo(true));
+    }
+    
+    [Test]
+    public void SetsCorrectTextDecoration_StrikethroughDisabled()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.Strikethrough(false);
+        Assert.That(textBlockSpan.Style.HasStrikethrough, Is.EqualTo(false));
+    }
+    
+    [Test]
+    public void SetsCorrectTextDecoration_Underline()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.Underline();
+        Assert.That(textBlockSpan.Style.HasUnderline, Is.EqualTo(true));
+    }
+    
+    [Test]
+    public void SetsCorrectTextDecoration_UnderlineDisabled()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.Underline(false);
+        Assert.That(textBlockSpan.Style.HasUnderline, Is.EqualTo(false));
+    }
+    
+    [Test]
+    public void SetsCorrectTextDecoration_Overline()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.Overline();
+        Assert.That(textBlockSpan.Style.HasOverline, Is.EqualTo(true));
+    }
+    
+    [Test]
+    public void SetsCorrectTextDecoration_OverlineDisabled()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.Overline(false);
+        Assert.That(textBlockSpan.Style.HasOverline, Is.EqualTo(false));
+    }
+    
+    [Test]
+    public void SetsCorrectTextDecoration_DecorationColor()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.DecorationColor(Colors.Red.Medium);
+        Assert.That(textBlockSpan.Style.DecorationColor, Is.EqualTo(Colors.Red.Medium));
+    }
+    
+    [Test]
+    public void SetsCorrectTextDecoration_DecorationThickness()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.DecorationThickness(1.5f);
+        Assert.That(textBlockSpan.Style.DecorationThickness, Is.EqualTo(1.5f));
+    }
+    
+    [Test]
+    public void SetsCorrectTextDecoration_DecorationSolid()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.DecorationSolid();
+        Assert.That(textBlockSpan.Style.DecorationStyle, Is.EqualTo(TextStyleConfiguration.TextDecorationStyle.Solid));
+    }
+    
+    [Test]
+    public void SetsCorrectTextDecoration_DecorationDouble()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.DecorationDouble();
+        Assert.That(textBlockSpan.Style.DecorationStyle, Is.EqualTo(TextStyleConfiguration.TextDecorationStyle.Double));
+    }
+    
+    [Test]
+    public void SetsCorrectTextDecoration_DecorationWavy()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.DecorationWavy();
+        Assert.That(textBlockSpan.Style.DecorationStyle, Is.EqualTo(TextStyleConfiguration.TextDecorationStyle.Wavy));
+    }
+    
+    [Test]
+    public void SetsCorrectTextDecoration_DecorationDotted()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.DecorationDotted();
+        Assert.That(textBlockSpan.Style.DecorationStyle, Is.EqualTo(TextStyleConfiguration.TextDecorationStyle.Dotted));
+    }
+    
+    [Test]
+    public void SetsCorrectTextDecoration_DecorationDashed()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.DecorationDashed();
+        Assert.That(textBlockSpan.Style.DecorationStyle, Is.EqualTo(TextStyleConfiguration.TextDecorationStyle.Dashed));
+    }
+    
+    #endregion
+    
     #region Font Weight
 
     [Test]

+ 108 - 0
Source/QuestPDF.UnitTests/TextStyleTests.cs

@@ -3,12 +3,120 @@ using NUnit.Framework;
 using QuestPDF.Fluent;
 using QuestPDF.Helpers;
 using QuestPDF.Infrastructure;
+using QuestPDF.Skia.Text;
 
 namespace QuestPDF.UnitTests
 {
     [TestFixture]
     public class TextStyleTests
     {
+        #region Text Decoration
+        
+        [Test]
+        public void TextDecoration_Default()
+        {
+            var textStyle = TextStyle.LibraryDefault;
+            Assert.That(textStyle.HasStrikethrough, Is.False);
+            Assert.That(textStyle.HasUnderline, Is.False);
+            Assert.That(textStyle.HasOverline, Is.False);
+            Assert.That(textStyle.DecorationColor, Is.EqualTo(Colors.Black));
+            Assert.That(textStyle.DecorationThickness, Is.EqualTo(1f));
+            Assert.That(textStyle.DecorationStyle, Is.EqualTo(TextStyleConfiguration.TextDecorationStyle.Solid));
+        }
+        
+        [Test]
+        public void SetsCorrectTextDecoration_Strikethrough()
+        {
+            var textStyle = TextStyle.Default.Strikethrough();
+            Assert.That(textStyle.HasStrikethrough, Is.True);
+        }
+        
+        [Test]
+        public void SetsCorrectTextDecoration_StrikethroughDisabled()
+        {
+            var textStyle = TextStyle.Default.Strikethrough().Strikethrough(false);
+            Assert.That(textStyle.HasStrikethrough, Is.False);
+        }
+        
+        [Test]
+        public void SetsCorrectTextDecoration_Underline()
+        {
+            var textStyle = TextStyle.Default.Underline();
+            Assert.That(textStyle.HasUnderline, Is.True);
+        }
+        
+        [Test]
+        public void SetsCorrectTextDecoration_UnderlineDisabled()
+        {
+            var textStyle = TextStyle.Default.Underline().Underline(false);
+            Assert.That(textStyle.HasUnderline, Is.False);
+        }
+        
+        [Test]
+        public void SetsCorrectTextDecoration_Overline()
+        {
+            var textStyle = TextStyle.Default.Overline();
+            Assert.That(textStyle.HasOverline, Is.True);
+        }
+        
+        [Test]
+        public void SetsCorrectTextDecoration_OverlineDisabled()
+        {
+            var textStyle = TextStyle.Default.Overline().Overline(false);
+            Assert.That(textStyle.HasOverline, Is.False);
+        }
+        
+        [Test]
+        public void SetsCorrectTextDecoration_DecorationColor()
+        {
+            var textStyle = TextStyle.Default.DecorationColor(Colors.Red.Medium);
+            Assert.That(textStyle.DecorationColor, Is.EqualTo(Colors.Red.Medium));
+        }
+        
+        [Test]
+        public void SetsCorrectTextDecoration_DecorationThickness()
+        {
+            var textStyle = TextStyle.Default.DecorationThickness(1.5f);
+            Assert.That(textStyle.DecorationThickness, Is.EqualTo(1.5f));
+        }
+        
+        [Test]
+        public void SetsCorrectTextDecoration_DecorationSolid()
+        {
+            var textStyle = TextStyle.Default.DecorationSolid();
+            Assert.That(textStyle.DecorationStyle, Is.EqualTo(TextStyleConfiguration.TextDecorationStyle.Solid));
+        }
+        
+        [Test]
+        public void SetsCorrectTextDecoration_DecorationDouble()
+        {
+            var textStyle = TextStyle.Default.DecorationDouble();
+            Assert.That(textStyle.DecorationStyle, Is.EqualTo(TextStyleConfiguration.TextDecorationStyle.Double));
+        }
+        
+        [Test]
+        public void SetsCorrectTextDecoration_DecorationWavy()
+        {
+            var textStyle = TextStyle.Default.DecorationWavy();
+            Assert.That(textStyle.DecorationStyle, Is.EqualTo(TextStyleConfiguration.TextDecorationStyle.Wavy));
+        }
+        
+        [Test]
+        public void SetsCorrectTextDecoration_DecorationDotted()
+        {
+            var textStyle = TextStyle.Default.DecorationDotted();
+            Assert.That(textStyle.DecorationStyle, Is.EqualTo(TextStyleConfiguration.TextDecorationStyle.Dotted));
+        }
+        
+        [Test]
+        public void SetsCorrectTextDecoration_DecorationDashed()
+        {
+            var textStyle = TextStyle.Default.DecorationDashed();
+            Assert.That(textStyle.DecorationStyle, Is.EqualTo(TextStyleConfiguration.TextDecorationStyle.Dashed));
+        }
+        
+        #endregion
+        
         #region Font Weight
         
         [Test]