Skip to content

Commit 72949e2

Browse files
committed
Add unit tests for font characteristics classes
DEVSIX-3096
1 parent 652f500 commit 72949e2

File tree

2 files changed

+268
-0
lines changed

2 files changed

+268
-0
lines changed
Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
package com.itextpdf.layout.font;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
6+
public class FontCharacteristicsTest {
7+
@Test
8+
public void testDefaultFontCharacteristics() {
9+
FontCharacteristics fontCharacteristics = new FontCharacteristics();
10+
Assert.assertFalse(fontCharacteristics.isItalic());
11+
Assert.assertFalse(fontCharacteristics.isBold());
12+
Assert.assertFalse(fontCharacteristics.isMonospace());
13+
Assert.assertTrue(fontCharacteristics.isUndefined());
14+
Assert.assertEquals(400, fontCharacteristics.getFontWeight());
15+
}
16+
17+
@Test
18+
public void testPositiveFontWeight() {
19+
FontCharacteristics fontCharacteristics = new FontCharacteristics();
20+
21+
fontCharacteristics.setFontWeight((short) 50);
22+
Assert.assertEquals(100, fontCharacteristics.getFontWeight());
23+
Assert.assertFalse(fontCharacteristics.isUndefined());
24+
25+
fontCharacteristics.setFontWeight((short) 120);
26+
Assert.assertEquals(100, fontCharacteristics.getFontWeight());
27+
Assert.assertFalse(fontCharacteristics.isUndefined());
28+
29+
fontCharacteristics.setFontWeight((short) 340);
30+
Assert.assertEquals(300, fontCharacteristics.getFontWeight());
31+
Assert.assertFalse(fontCharacteristics.isUndefined());
32+
33+
fontCharacteristics.setFontWeight((short) 550);
34+
Assert.assertEquals(500, fontCharacteristics.getFontWeight());
35+
Assert.assertFalse(fontCharacteristics.isUndefined());
36+
37+
fontCharacteristics.setFontWeight((short) 885);
38+
Assert.assertEquals(800, fontCharacteristics.getFontWeight());
39+
Assert.assertFalse(fontCharacteristics.isUndefined());
40+
41+
fontCharacteristics.setFontWeight((short) 20000);
42+
Assert.assertEquals(900, fontCharacteristics.getFontWeight());
43+
Assert.assertFalse(fontCharacteristics.isUndefined());
44+
}
45+
46+
@Test
47+
public void testIncorrectFontWeight() {
48+
FontCharacteristics fontCharacteristics = new FontCharacteristics();
49+
50+
fontCharacteristics.setFontWeight((short) 0);
51+
Assert.assertEquals(400, fontCharacteristics.getFontWeight());
52+
Assert.assertTrue(fontCharacteristics.isUndefined());
53+
54+
fontCharacteristics.setFontWeight((short) -500);
55+
Assert.assertEquals(400, fontCharacteristics.getFontWeight());
56+
Assert.assertTrue(fontCharacteristics.isUndefined());
57+
}
58+
59+
@Test
60+
public void testBoldFlag() {
61+
FontCharacteristics fontCharacteristics = new FontCharacteristics();
62+
63+
Assert.assertFalse(fontCharacteristics.isBold());
64+
Assert.assertTrue(fontCharacteristics.isUndefined());
65+
66+
fontCharacteristics.setBoldFlag(true);
67+
Assert.assertTrue(fontCharacteristics.isBold());
68+
Assert.assertFalse(fontCharacteristics.isUndefined());
69+
70+
fontCharacteristics = new FontCharacteristics();
71+
72+
fontCharacteristics.setBoldFlag(false);
73+
Assert.assertFalse(fontCharacteristics.isBold());
74+
Assert.assertTrue(fontCharacteristics.isUndefined());
75+
}
76+
77+
@Test
78+
public void testItalicFlag() {
79+
FontCharacteristics fontCharacteristics = new FontCharacteristics();
80+
81+
Assert.assertFalse(fontCharacteristics.isItalic());
82+
Assert.assertTrue(fontCharacteristics.isUndefined());
83+
84+
fontCharacteristics.setItalicFlag(true);
85+
Assert.assertTrue(fontCharacteristics.isItalic());
86+
Assert.assertFalse(fontCharacteristics.isUndefined());
87+
88+
fontCharacteristics = new FontCharacteristics();
89+
90+
fontCharacteristics.setItalicFlag(false);
91+
Assert.assertFalse(fontCharacteristics.isItalic());
92+
Assert.assertTrue(fontCharacteristics.isUndefined());
93+
}
94+
95+
@Test
96+
public void testMonospaceFlag() {
97+
FontCharacteristics fontCharacteristics = new FontCharacteristics();
98+
99+
Assert.assertFalse(fontCharacteristics.isMonospace());
100+
Assert.assertTrue(fontCharacteristics.isUndefined());
101+
102+
fontCharacteristics.setMonospaceFlag(true);
103+
Assert.assertTrue(fontCharacteristics.isMonospace());
104+
Assert.assertFalse(fontCharacteristics.isUndefined());
105+
106+
fontCharacteristics = new FontCharacteristics();
107+
108+
fontCharacteristics.setMonospaceFlag(false);
109+
Assert.assertFalse(fontCharacteristics.isMonospace());
110+
Assert.assertTrue(fontCharacteristics.isUndefined());
111+
}
112+
113+
@Test
114+
public void testIncorrectFontStyle() {
115+
FontCharacteristics fontCharacteristics = new FontCharacteristics();
116+
fontCharacteristics.setFontStyle(null);
117+
Assert.assertFalse(fontCharacteristics.isItalic());
118+
Assert.assertTrue(fontCharacteristics.isUndefined());
119+
120+
fontCharacteristics.setFontStyle("dsodkodkopsdkod");
121+
Assert.assertFalse(fontCharacteristics.isItalic());
122+
Assert.assertTrue(fontCharacteristics.isUndefined());
123+
124+
fontCharacteristics.setFontStyle("");
125+
Assert.assertFalse(fontCharacteristics.isItalic());
126+
Assert.assertTrue(fontCharacteristics.isUndefined());
127+
128+
fontCharacteristics.setFontStyle("-1");
129+
Assert.assertFalse(fontCharacteristics.isItalic());
130+
Assert.assertTrue(fontCharacteristics.isUndefined());
131+
132+
fontCharacteristics.setFontStyle("bold");
133+
Assert.assertFalse(fontCharacteristics.isItalic());
134+
Assert.assertTrue(fontCharacteristics.isUndefined());
135+
}
136+
137+
138+
@Test
139+
public void testAllowedFontStyle() {
140+
FontCharacteristics fontCharacteristics = new FontCharacteristics();
141+
Assert.assertFalse(fontCharacteristics.isItalic());
142+
Assert.assertTrue(fontCharacteristics.isUndefined());
143+
144+
fontCharacteristics = new FontCharacteristics();
145+
fontCharacteristics.setFontStyle("normal");
146+
Assert.assertFalse(fontCharacteristics.isItalic());
147+
Assert.assertTrue(fontCharacteristics.isUndefined());
148+
149+
fontCharacteristics = new FontCharacteristics();
150+
fontCharacteristics.setFontStyle("oblique");
151+
Assert.assertTrue(fontCharacteristics.isItalic());
152+
Assert.assertFalse(fontCharacteristics.isUndefined());
153+
154+
fontCharacteristics = new FontCharacteristics();
155+
fontCharacteristics.setFontStyle("italic");
156+
Assert.assertTrue(fontCharacteristics.isItalic());
157+
Assert.assertFalse(fontCharacteristics.isUndefined());
158+
}
159+
160+
@Test
161+
public void testEquals() {
162+
FontCharacteristics fontCharacteristics = new FontCharacteristics();
163+
fontCharacteristics.setFontStyle("italic");
164+
fontCharacteristics.setFontWeight((short) 300);
165+
166+
FontCharacteristics sameFontCharacteristics = new FontCharacteristics();
167+
sameFontCharacteristics.setFontStyle("italic");
168+
sameFontCharacteristics.setFontWeight((short) 300);
169+
Assert.assertTrue(fontCharacteristics.equals(sameFontCharacteristics));
170+
171+
FontCharacteristics copyFontCharacteristics = new FontCharacteristics(fontCharacteristics);
172+
Assert.assertTrue(fontCharacteristics.equals(copyFontCharacteristics));
173+
174+
FontCharacteristics diffFontCharacteristics = new FontCharacteristics();
175+
fontCharacteristics.setBoldFlag(true);
176+
fontCharacteristics.setFontWeight((short) 800);
177+
Assert.assertFalse(fontCharacteristics.equals(diffFontCharacteristics));
178+
}
179+
180+
@Test
181+
public void testHashCode() {
182+
FontCharacteristics fontCharacteristics = new FontCharacteristics();
183+
fontCharacteristics.setFontStyle("italic");
184+
fontCharacteristics.setFontWeight((short) 300);
185+
186+
FontCharacteristics sameFontCharacteristics = new FontCharacteristics();
187+
sameFontCharacteristics.setFontStyle("italic");
188+
sameFontCharacteristics.setFontWeight((short) 300);
189+
Assert.assertEquals(fontCharacteristics.hashCode(), sameFontCharacteristics.hashCode());
190+
191+
FontCharacteristics copyFontCharacteristics = new FontCharacteristics(fontCharacteristics);
192+
Assert.assertEquals(fontCharacteristics.hashCode(), copyFontCharacteristics.hashCode());
193+
194+
FontCharacteristics diffFontCharacteristics = new FontCharacteristics();
195+
fontCharacteristics.setBoldFlag(true);
196+
fontCharacteristics.setFontWeight((short) 800);
197+
Assert.assertNotEquals(fontCharacteristics.hashCode(), diffFontCharacteristics.hashCode());
198+
}
199+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package com.itextpdf.layout.font;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
6+
public class FontCharacteristicsUtilsTest {
7+
@Test
8+
public void testNormalizingThinFontWeight() {
9+
Assert.assertEquals(100, FontCharacteristicsUtils.normalizeFontWeight((short) -10000));
10+
11+
Assert.assertEquals(100, FontCharacteristicsUtils.normalizeFontWeight((short) 0));
12+
13+
Assert.assertEquals(100, FontCharacteristicsUtils.normalizeFontWeight((short) 50));
14+
15+
Assert.assertEquals(100, FontCharacteristicsUtils.normalizeFontWeight((short) 100));
16+
}
17+
18+
@Test
19+
public void testNormalizingHeavyFontWeight() {
20+
Assert.assertEquals(900, FontCharacteristicsUtils.normalizeFontWeight((short) 900));
21+
22+
Assert.assertEquals(900, FontCharacteristicsUtils.normalizeFontWeight((short) 1600));
23+
24+
Assert.assertEquals(900, FontCharacteristicsUtils.normalizeFontWeight((short) 23000));
25+
}
26+
27+
@Test
28+
public void testNormalizingNormalFontWeight() {
29+
Assert.assertEquals(200, FontCharacteristicsUtils.normalizeFontWeight((short) 220));
30+
31+
Assert.assertEquals(400, FontCharacteristicsUtils.normalizeFontWeight((short) 456));
32+
33+
Assert.assertEquals(500, FontCharacteristicsUtils.normalizeFontWeight((short) 550));
34+
35+
Assert.assertEquals(600, FontCharacteristicsUtils.normalizeFontWeight((short) 620));
36+
37+
Assert.assertEquals(700, FontCharacteristicsUtils.normalizeFontWeight((short) 780));
38+
}
39+
40+
@Test
41+
public void testParsingIncorrectFontWeight() {
42+
Assert.assertEquals((short) -1, FontCharacteristicsUtils.parseFontWeight(""));
43+
44+
Assert.assertEquals((short) -1, FontCharacteristicsUtils.parseFontWeight(null));
45+
46+
Assert.assertEquals((short) -1, FontCharacteristicsUtils.parseFontWeight("dfgdgdfgdfgdf"));
47+
48+
Assert.assertEquals((short) -1, FontCharacteristicsUtils.parseFontWeight("italic"));
49+
}
50+
51+
@Test
52+
public void testParsingNumberFontWeight() {
53+
Assert.assertEquals((short) 100, FontCharacteristicsUtils.parseFontWeight("-1"));
54+
55+
Assert.assertEquals((short) 100, FontCharacteristicsUtils.parseFontWeight("50"));
56+
57+
Assert.assertEquals((short) 300, FontCharacteristicsUtils.parseFontWeight("360"));
58+
59+
Assert.assertEquals((short) 900, FontCharacteristicsUtils.parseFontWeight("25000"));
60+
}
61+
62+
63+
@Test
64+
public void testParseAllowedFontWeight() {
65+
Assert.assertEquals((short) 400, FontCharacteristicsUtils.parseFontWeight("normal"));
66+
67+
Assert.assertEquals((short) 700, FontCharacteristicsUtils.parseFontWeight("bold"));
68+
}
69+
}

0 commit comments

Comments
 (0)