Browse Source

Add tests for text-related Fluent API

Marcin Ziąbek 2 months ago
parent
commit
aaf547cca7
2 changed files with 248 additions and 0 deletions
  1. 135 0
      Source/QuestPDF.UnitTests/TextSpanTests.cs
  2. 113 0
      Source/QuestPDF.UnitTests/TextStyleTests.cs

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

@@ -0,0 +1,135 @@
+using System;
+using System.Linq;
+using NUnit.Framework;
+using QuestPDF.Elements.Text;
+using QuestPDF.Elements.Text.Items;
+using QuestPDF.Fluent;
+using QuestPDF.Infrastructure;
+
+namespace QuestPDF.UnitTests;
+
+public class TextSpanTests
+{
+    internal (TextSpanDescriptor, TextBlockSpan) CreateTextBlockSpan()
+    {
+        var container = EmptyContainer.Create();
+        var descriptor = container.Text("test");
+
+        var textElement = container.Child as TextBlock;
+        var textBlockSpan = textElement?.Items.SingleOrDefault() as TextBlockSpan;
+        
+        return (descriptor, textBlockSpan);
+    }
+    
+    #region Font Weight
+
+    [Test]
+    public void SetsCorrectSetsCorrectFontWeight_Thin()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.Thin();
+        Assert.That(textBlockSpan.Style.FontWeight, Is.EqualTo(FontWeight.Thin));
+    }
+    
+    [Test]
+    public void SetsCorrectFontWeight_ExtraLight()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.ExtraLight();
+        Assert.That(textBlockSpan.Style.FontWeight, Is.EqualTo(FontWeight.ExtraLight));
+    }
+    
+    [Test]
+    public void SetsCorrectFontWeight_Light()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.Light();
+        Assert.That(textBlockSpan.Style.FontWeight, Is.EqualTo(FontWeight.Light));
+    }
+    
+    [Test]
+    public void SetsCorrectFontWeight_Normal()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.NormalWeight();
+        Assert.That(textBlockSpan.Style.FontWeight, Is.EqualTo(FontWeight.Normal));
+    }
+    
+    [Test]
+    public void SetsCorrectFontWeight_Medium()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.Medium();
+        Assert.That(textBlockSpan.Style.FontWeight, Is.EqualTo(FontWeight.Medium));
+    }
+    
+    [Test]
+    public void SetsCorrectFontWeight_SemiBold()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.SemiBold();
+        Assert.That(textBlockSpan.Style.FontWeight, Is.EqualTo(FontWeight.SemiBold));
+    }
+    
+    [Test]
+    public void SetsCorrectFontWeight_Bold()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.Bold();
+        Assert.That(textBlockSpan.Style.FontWeight, Is.EqualTo(FontWeight.Bold));
+    }
+    
+    [Test]
+    public void SetsCorrectFontWeight_ExtraBold()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.ExtraBold();
+        Assert.That(textBlockSpan.Style.FontWeight, Is.EqualTo(FontWeight.ExtraBold));
+    }
+    
+    [Test]
+    public void SetsCorrectFontWeight_Black()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.Black();
+        Assert.That(textBlockSpan.Style.FontWeight, Is.EqualTo(FontWeight.Black));
+    }
+    
+    [Test]
+    public void SetsCorrectFontWeight_ExtraBlack()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.ExtraBlack();
+        Assert.That(textBlockSpan.Style.FontWeight, Is.EqualTo(FontWeight.ExtraBlack));
+    }
+
+    #endregion
+    
+    #region Text Position
+    
+    [Test]
+    public void SetsCorrectTextPosition_Subscript()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.Subscript();
+        Assert.That(textBlockSpan.Style.FontPosition, Is.EqualTo(FontPosition.Subscript));
+    }
+    
+    [Test]
+    public void SetsCorrectTextPosition_Normal()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.Superscript().NormalPosition(); // first change from default, then normal
+        Assert.That(textBlockSpan.Style.FontPosition, Is.EqualTo(FontPosition.Normal));
+    }
+    
+    [Test]
+    public void SetsCorrectTextPosition_Superscript()
+    {
+        var (descriptor, textBlockSpan) = CreateTextBlockSpan();
+        descriptor.Superscript();
+        Assert.That(textBlockSpan.Style.FontPosition, Is.EqualTo(FontPosition.Superscript));
+    }
+    
+    #endregion
+}

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

@@ -9,6 +9,119 @@ namespace QuestPDF.UnitTests
     [TestFixture]
     public class TextStyleTests
     {
+        #region Font Weight
+        
+        [Test]
+        public void FontWeight_Default()
+        {
+            var textStyle = TextStyle.LibraryDefault;
+            Assert.That(textStyle.FontWeight, Is.EqualTo(FontWeight.Normal));
+        }
+        
+        [Test]
+        public void SetsCorrectSetsCorrectFontWeight_Thin()
+        {
+            var textStyle = TextStyle.Default.Thin();
+            Assert.That(textStyle.FontWeight, Is.EqualTo(FontWeight.Thin));
+        }
+        
+        [Test]
+        public void SetsCorrectFontWeight_ExtraLight()
+        {
+            var textStyle = TextStyle.Default.ExtraLight();
+            Assert.That(textStyle.FontWeight, Is.EqualTo(FontWeight.ExtraLight));
+        }
+        
+        [Test]
+        public void SetsCorrectFontWeight_Light()
+        {
+            var textStyle = TextStyle.Default.Light();
+            Assert.That(textStyle.FontWeight, Is.EqualTo(FontWeight.Light));
+        }
+        
+        [Test]
+        public void SetsCorrectFontWeight_Normal()
+        {
+            var textStyle = TextStyle.Default.Bold().NormalWeight(); // first change from default, then normal
+            Assert.That(textStyle.FontWeight, Is.EqualTo(FontWeight.Normal));
+        }
+        
+        [Test]
+        public void SetsCorrectFontWeight_Medium()
+        {
+            var textStyle = TextStyle.Default.Medium();
+            Assert.That(textStyle.FontWeight, Is.EqualTo(FontWeight.Medium));
+        }
+        
+        [Test]
+        public void SetsCorrectFontWeight_SemiBold()
+        {
+            var textStyle = TextStyle.Default.SemiBold();
+            Assert.That(textStyle.FontWeight, Is.EqualTo(FontWeight.SemiBold));
+        }
+        
+        [Test]
+        public void SetsCorrectFontWeight_Bold()
+        {
+            var textStyle = TextStyle.Default.Bold();
+            Assert.That(textStyle.FontWeight, Is.EqualTo(FontWeight.Bold));
+        }
+        
+        [Test]
+        public void SetsCorrectFontWeight_ExtraBold()
+        {
+            var textStyle = TextStyle.Default.ExtraBold();
+            Assert.That(textStyle.FontWeight, Is.EqualTo(FontWeight.ExtraBold));
+        }
+        
+        [Test]
+        public void SetsCorrectFontWeight_Black()
+        {
+            var textStyle = TextStyle.Default.Black();
+            Assert.That(textStyle.FontWeight, Is.EqualTo(FontWeight.Black));
+        }
+        
+        [Test]
+        public void SetsCorrectFontWeight_ExtraBlack()
+        {
+            var textStyle = TextStyle.Default.ExtraBlack();
+            Assert.That(textStyle.FontWeight, Is.EqualTo(FontWeight.ExtraBlack));
+        }
+        
+        #endregion
+        
+        #region Text Position
+    
+        [Test]
+        public void TextPosition_Default()
+        {
+            var textStyle = TextStyle.LibraryDefault;
+            Assert.That(textStyle.FontPosition, Is.EqualTo(FontPosition.Normal));
+        }
+        
+        [Test]
+        public void SetsCorrectTextPosition_Subscript()
+        {
+            var textStyle = TextStyle.Default.Subscript();
+            Assert.That(textStyle.FontPosition, Is.EqualTo(FontPosition.Subscript));
+        }
+        
+        [Test]
+        public void SetsCorrectTextPosition_Normal()
+        {
+            var textStyle = TextStyle.Default.Subscript().NormalPosition(); // first change from default, then normal
+            Assert.That(textStyle.FontPosition, Is.EqualTo(FontPosition.Normal));
+        }
+        
+        [Test]
+        public void SetsCorrectTextPosition_Superscript()
+        {
+            var textStyle = TextStyle.Default.Superscript();
+            Assert.That(textStyle.FontPosition, Is.EqualTo(FontPosition.Superscript));
+        }
+    
+        #endregion
+        
         [Test]
         public void ApplyInheritedAndGlobalStyle()
         {