327c412c7d
* Fixed applying text style for fallback styles * Code refactoring * FontStyle: making method arguments explicit * Bug fixes + test * Minor code refactoring
59 lines
1.8 KiB
C#
59 lines
1.8 KiB
C#
using FluentAssertions;
|
|
using NUnit.Framework;
|
|
using QuestPDF.Fluent;
|
|
using QuestPDF.Helpers;
|
|
using QuestPDF.Infrastructure;
|
|
|
|
namespace QuestPDF.UnitTests
|
|
{
|
|
[TestFixture]
|
|
public class TextStyleTests
|
|
{
|
|
[Test]
|
|
public void ApplyInheritedAndGlobalStyle()
|
|
{
|
|
// arrange
|
|
var defaultTextStyle = TextStyle
|
|
.Default
|
|
.FontSize(20)
|
|
.FontFamily("Arial")
|
|
.BackgroundColor(Colors.Green.Lighten2)
|
|
.Fallback(y => y
|
|
.FontFamily("Microsoft YaHei")
|
|
.Underline()
|
|
.NormalWeight()
|
|
.BackgroundColor(Colors.Blue.Lighten2));
|
|
|
|
var spanTextStyle = TextStyle
|
|
.Default
|
|
.FontFamily("Times New Roman")
|
|
.Bold()
|
|
.Strikethrough()
|
|
.BackgroundColor(Colors.Red.Lighten2);
|
|
|
|
// act
|
|
var targetStyle = spanTextStyle.ApplyInheritedStyle(defaultTextStyle).ApplyGlobalStyle();
|
|
|
|
// assert
|
|
var expectedStyle = TextStyle.LibraryDefault with
|
|
{
|
|
Size = 20,
|
|
FontFamily = "Times New Roman",
|
|
FontWeight = FontWeight.Bold,
|
|
BackgroundColor = Colors.Red.Lighten2,
|
|
HasStrikethrough = true,
|
|
Fallback = TextStyle.LibraryDefault with
|
|
{
|
|
Size = 20,
|
|
FontFamily = "Microsoft YaHei",
|
|
FontWeight = FontWeight.Bold,
|
|
BackgroundColor = Colors.Red.Lighten2,
|
|
HasUnderline = true,
|
|
HasStrikethrough = true
|
|
}
|
|
};
|
|
|
|
targetStyle.Should().BeEquivalentTo(expectedStyle);
|
|
}
|
|
}
|
|
} |