Skip to content

Commit 6326c17

Browse files
committed
Added tests for step-builder pattern
1 parent 2e27078 commit 6326c17

1 file changed

Lines changed: 155 additions & 0 deletions

File tree

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
package com.iluwatar.stepbuilder;
2+
3+
import org.junit.Test;
4+
5+
import java.util.List;
6+
7+
import static org.junit.Assert.assertEquals;
8+
import static org.junit.Assert.assertNotNull;
9+
import static org.junit.Assert.assertNull;
10+
import static org.junit.Assert.assertTrue;
11+
12+
/**
13+
* Date: 12/29/15 - 9:21 PM
14+
*
15+
* @author Jeroen Meulemeester
16+
*/
17+
public class CharacterStepBuilderTest {
18+
19+
/**
20+
* Build a new wizard {@link Character} and verify if it has the expected attributes
21+
*/
22+
@Test
23+
public void testBuildWizard() {
24+
final Character character = CharacterStepBuilder.newBuilder()
25+
.name("Merlin")
26+
.wizardClass("alchemist")
27+
.withSpell("poison")
28+
.withAbility("invisibility")
29+
.withAbility("wisdom")
30+
.noMoreAbilities()
31+
.build();
32+
33+
assertEquals("Merlin", character.getName());
34+
assertEquals("alchemist", character.getWizardClass());
35+
assertEquals("poison", character.getSpell());
36+
assertNotNull(character.toString());
37+
38+
final List<String> abilities = character.getAbilities();
39+
assertNotNull(abilities);
40+
assertEquals(2, abilities.size());
41+
assertTrue(abilities.contains("invisibility"));
42+
assertTrue(abilities.contains("wisdom"));
43+
44+
}
45+
46+
/**
47+
* Build a new wizard {@link Character} without spell or abilities and verify if it has the
48+
* expected attributes
49+
*/
50+
@Test
51+
public void testBuildPoorWizard() {
52+
final Character character = CharacterStepBuilder.newBuilder()
53+
.name("Merlin")
54+
.wizardClass("alchemist")
55+
.noSpell()
56+
.build();
57+
58+
assertEquals("Merlin", character.getName());
59+
assertEquals("alchemist", character.getWizardClass());
60+
assertNull(character.getSpell());
61+
assertNull(character.getAbilities());
62+
assertNotNull(character.toString());
63+
64+
}
65+
66+
/**
67+
* Build a new wizard {@link Character} and verify if it has the expected attributes
68+
*/
69+
@Test
70+
public void testBuildWeakWizard() {
71+
final Character character = CharacterStepBuilder.newBuilder()
72+
.name("Merlin")
73+
.wizardClass("alchemist")
74+
.withSpell("poison")
75+
.noAbilities()
76+
.build();
77+
78+
assertEquals("Merlin", character.getName());
79+
assertEquals("alchemist", character.getWizardClass());
80+
assertEquals("poison", character.getSpell());
81+
assertNull(character.getAbilities());
82+
assertNotNull(character.toString());
83+
84+
}
85+
86+
87+
/**
88+
* Build a new warrior {@link Character} and verify if it has the expected attributes
89+
*/
90+
@Test
91+
public void testBuildWarrior() {
92+
final Character character = CharacterStepBuilder.newBuilder()
93+
.name("Cuauhtemoc")
94+
.fighterClass("aztec")
95+
.withWeapon("spear")
96+
.withAbility("speed")
97+
.withAbility("strength")
98+
.noMoreAbilities()
99+
.build();
100+
101+
assertEquals("Cuauhtemoc", character.getName());
102+
assertEquals("aztec", character.getFighterClass());
103+
assertEquals("spear", character.getWeapon());
104+
assertNotNull(character.toString());
105+
106+
final List<String> abilities = character.getAbilities();
107+
assertNotNull(abilities);
108+
assertEquals(2, abilities.size());
109+
assertTrue(abilities.contains("speed"));
110+
assertTrue(abilities.contains("strength"));
111+
112+
}
113+
114+
/**
115+
* Build a new wizard {@link Character} without weapon and abilities and verify if it has the
116+
* expected attributes
117+
*/
118+
@Test
119+
public void testBuildPoorWarrior() {
120+
final Character character = CharacterStepBuilder.newBuilder()
121+
.name("Poor warrior")
122+
.fighterClass("none")
123+
.noWeapon()
124+
.build();
125+
126+
assertEquals("Poor warrior", character.getName());
127+
assertEquals("none", character.getFighterClass());
128+
assertNull(character.getWeapon());
129+
assertNull(character.getAbilities());
130+
assertNotNull(character.toString());
131+
132+
}
133+
134+
/**
135+
* Build a new warrior {@link Character} without any abilities, but with a weapon and verify if it
136+
* has the expected attributes
137+
*/
138+
@Test
139+
public void testBuildWeakWarrior() {
140+
final Character character = CharacterStepBuilder.newBuilder()
141+
.name("Weak warrior")
142+
.fighterClass("none")
143+
.withWeapon("Slingshot")
144+
.noAbilities()
145+
.build();
146+
147+
assertEquals("Weak warrior", character.getName());
148+
assertEquals("none", character.getFighterClass());
149+
assertEquals("Slingshot", character.getWeapon());
150+
assertNull(character.getAbilities());
151+
assertNotNull(character.toString());
152+
153+
}
154+
155+
}

0 commit comments

Comments
 (0)