Skip to content

Commit 6b5ff49

Browse files
authored
Convert exception assertions to AssertJ in classes starting with 'A' and 'B'. (exercism#2156)
1 parent 95f7d6d commit 6b5ff49

6 files changed

Lines changed: 125 additions & 221 deletions

File tree

exercises/practice/affine-cipher/src/test/java/AffineCipherTest.java

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import org.junit.Test;
33

44
import static org.assertj.core.api.Assertions.assertThat;
5-
import static org.junit.Assert.assertThrows;
5+
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
66

77
public class AffineCipherTest {
88

@@ -62,13 +62,9 @@ public void testEncodeAllTheLetters() {
6262
@Ignore("Remove to run test")
6363
@Test
6464
public void testEncodeThrowsMeaningfulException() {
65-
IllegalArgumentException expected =
66-
assertThrows(
67-
IllegalArgumentException.class,
68-
() -> affineCipher.encode("This is a test", 6, 17));
69-
70-
assertThat(expected)
71-
.hasMessage("Error: keyA and alphabet size must be coprime.");
65+
assertThatExceptionOfType(IllegalArgumentException.class)
66+
.isThrownBy(() -> affineCipher.encode("This is a test", 6, 17))
67+
.withMessage("Error: keyA and alphabet size must be coprime.");
7268
}
7369

7470
@Ignore("Remove to run test")
@@ -116,13 +112,9 @@ public void testDecodeWithTooManySpaces() {
116112
@Ignore("Remove to run test")
117113
@Test
118114
public void testDecodeThrowsMeaningfulException() {
119-
IllegalArgumentException expected =
120-
assertThrows(
121-
IllegalArgumentException.class,
122-
() -> affineCipher.decode("Test", 13, 5));
123-
124-
assertThat(expected)
125-
.hasMessage("Error: keyA and alphabet size must be coprime.");
115+
assertThatExceptionOfType(IllegalArgumentException.class)
116+
.isThrownBy(() -> affineCipher.decode("Test", 13, 5))
117+
.withMessage("Error: keyA and alphabet size must be coprime.");
126118
}
127119

128120
}

exercises/practice/all-your-base/src/test/java/BaseConverterTest.java

Lines changed: 25 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import org.junit.Test;
33

44
import static org.assertj.core.api.Assertions.assertThat;
5-
import static org.junit.Assert.assertThrows;
5+
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
66

77
public class BaseConverterTest {
88

@@ -116,57 +116,41 @@ public void testLeadingZeros() {
116116
@Ignore("Remove to run test")
117117
@Test
118118
public void testFirstBaseIsOne() {
119-
IllegalArgumentException expected =
120-
assertThrows(
121-
IllegalArgumentException.class,
122-
() -> new BaseConverter(1, new int[]{1}));
123-
124-
assertThat(expected).hasMessage("Bases must be at least 2.");
119+
assertThatExceptionOfType(IllegalArgumentException.class)
120+
.isThrownBy(() -> new BaseConverter(1, new int[]{1}))
121+
.withMessage("Bases must be at least 2.");
125122
}
126123

127124
@Ignore("Remove to run test")
128125
@Test
129126
public void testFirstBaseIsZero() {
130-
IllegalArgumentException expected =
131-
assertThrows(
132-
IllegalArgumentException.class,
133-
() -> new BaseConverter(0, new int[]{1}));
134-
135-
assertThat(expected).hasMessage("Bases must be at least 2.");
127+
assertThatExceptionOfType(IllegalArgumentException.class)
128+
.isThrownBy(() -> new BaseConverter(0, new int[]{1}))
129+
.withMessage("Bases must be at least 2.");
136130
}
137131

138132
@Ignore("Remove to run test")
139133
@Test
140134
public void testFirstBaseIsNegative() {
141-
IllegalArgumentException expected =
142-
assertThrows(
143-
IllegalArgumentException.class,
144-
() -> new BaseConverter(-2, new int[]{1}));
145-
146-
assertThat(expected).hasMessage("Bases must be at least 2.");
135+
assertThatExceptionOfType(IllegalArgumentException.class)
136+
.isThrownBy(() -> new BaseConverter(-2, new int[]{1}))
137+
.withMessage("Bases must be at least 2.");
147138
}
148139

149140
@Ignore("Remove to run test")
150141
@Test
151142
public void testNegativeDigit() {
152-
IllegalArgumentException expected =
153-
assertThrows(
154-
IllegalArgumentException.class,
155-
() -> new BaseConverter(2, new int[]{1, -1, 1, 0, 1, 0}));
156-
157-
assertThat(expected).hasMessage("Digits may not be negative.");
143+
assertThatExceptionOfType(IllegalArgumentException.class)
144+
.isThrownBy(() -> new BaseConverter(2, new int[]{1, -1, 1, 0, 1, 0}))
145+
.withMessage("Digits may not be negative.");
158146
}
159147

160148
@Ignore("Remove to run test")
161149
@Test
162150
public void testInvalidPositiveDigit() {
163-
IllegalArgumentException expected =
164-
assertThrows(
165-
IllegalArgumentException.class,
166-
() -> new BaseConverter(2, new int[]{1, 2, 1, 0, 1, 0}));
167-
168-
assertThat(expected)
169-
.hasMessage("All digits must be strictly less than the base.");
151+
assertThatExceptionOfType(IllegalArgumentException.class)
152+
.isThrownBy(() -> new BaseConverter(2, new int[]{1, 2, 1, 0, 1, 0}))
153+
.withMessage("All digits must be strictly less than the base.");
170154
}
171155

172156
@Ignore("Remove to run test")
@@ -175,38 +159,29 @@ public void testSecondBaseIsOne() {
175159
BaseConverter baseConverter =
176160
new BaseConverter(2, new int[]{1, 0, 1, 0, 1, 0});
177161

178-
IllegalArgumentException expected =
179-
assertThrows(
180-
IllegalArgumentException.class,
181-
() -> baseConverter.convertToBase(1));
182-
183-
assertThat(expected).hasMessage("Bases must be at least 2.");
162+
assertThatExceptionOfType(IllegalArgumentException.class)
163+
.isThrownBy(() -> baseConverter.convertToBase(1))
164+
.withMessage("Bases must be at least 2.");
184165
}
185166

186167
@Ignore("Remove to run test")
187168
@Test
188169
public void testSecondBaseIsZero() {
189170
BaseConverter baseConverter = new BaseConverter(10, new int[]{7});
190171

191-
IllegalArgumentException expected =
192-
assertThrows(
193-
IllegalArgumentException.class,
194-
() -> baseConverter.convertToBase(0));
195-
196-
assertThat(expected).hasMessage("Bases must be at least 2.");
172+
assertThatExceptionOfType(IllegalArgumentException.class)
173+
.isThrownBy(() -> baseConverter.convertToBase(0))
174+
.withMessage("Bases must be at least 2.");
197175
}
198176

199177
@Ignore("Remove to run test")
200178
@Test
201179
public void testSecondBaseIsNegative() {
202180
BaseConverter baseConverter = new BaseConverter(2, new int[]{1});
203181

204-
IllegalArgumentException expected =
205-
assertThrows(
206-
IllegalArgumentException.class,
207-
() -> baseConverter.convertToBase(-7));
208-
209-
assertThat(expected).hasMessage("Bases must be at least 2.");
182+
assertThatExceptionOfType(IllegalArgumentException.class)
183+
.isThrownBy(() -> baseConverter.convertToBase(-7))
184+
.withMessage("Bases must be at least 2.");
210185
}
211186

212187
}

exercises/practice/alphametics/src/test/java/AlphameticsTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
import static java.util.Map.entry;
55
import static org.assertj.core.api.Assertions.assertThat;
6-
import static org.junit.Assert.assertThrows;
6+
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
77

88
public class AlphameticsTest {
99

@@ -21,15 +21,17 @@ public void testThreeLetters() throws UnsolvablePuzzleException {
2121
public void testUniqueValue() {
2222
Alphametics alphametics = new Alphametics("A == B");
2323

24-
assertThrows(UnsolvablePuzzleException.class, alphametics::solve);
24+
assertThatExceptionOfType(UnsolvablePuzzleException.class)
25+
.isThrownBy(alphametics::solve);
2526
}
2627

2728
@Ignore("Remove to run test")
2829
@Test
2930
public void testLeadingZero() {
3031
Alphametics alphametics = new Alphametics("ACA + DD == BD");
3132

32-
assertThrows(UnsolvablePuzzleException.class, alphametics::solve);
33+
assertThatExceptionOfType(UnsolvablePuzzleException.class)
34+
.isThrownBy(alphametics::solve);
3335
}
3436

3537
@Ignore("Remove to run test")

exercises/practice/bank-account/src/test/java/BankAccountTest.java

Lines changed: 26 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import static org.assertj.core.api.Assertions.assertThat;
2-
import static org.junit.Assert.assertThrows;
3-
import static org.junit.Assert.fail;
2+
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
3+
import static org.assertj.core.api.Assertions.fail;
44

55
import org.junit.Ignore;
66
import org.junit.Test;
@@ -66,13 +66,9 @@ public void canWithdrawMoneySequentially() throws BankAccountActionInvalidExcept
6666
public void cannotWithdrawMoneyFromEmptyAccount() {
6767
bankAccount.open();
6868

69-
BankAccountActionInvalidException expected =
70-
assertThrows(
71-
BankAccountActionInvalidException.class,
72-
() -> bankAccount.withdraw(5));
73-
74-
assertThat(expected)
75-
.hasMessage("Cannot withdraw money from an empty account");
69+
assertThatExceptionOfType(BankAccountActionInvalidException.class)
70+
.isThrownBy(() -> bankAccount.withdraw(5))
71+
.withMessage("Cannot withdraw money from an empty account");
7672
}
7773

7874
@Ignore("Remove to run test")
@@ -81,29 +77,19 @@ public void cannotWithdrawMoreMoneyThanYouHave() throws BankAccountActionInvalid
8177
bankAccount.open();
8278
bankAccount.deposit(6);
8379

84-
BankAccountActionInvalidException expected =
85-
assertThrows(
86-
BankAccountActionInvalidException.class,
87-
() -> bankAccount.withdraw(7));
88-
89-
assertThat(expected)
90-
.hasMessage(
91-
"Cannot withdraw more money than is currently in the account");
92-
80+
assertThatExceptionOfType(BankAccountActionInvalidException.class)
81+
.isThrownBy(() -> bankAccount.withdraw(7))
82+
.withMessage("Cannot withdraw more money than is currently in the account");
9383
}
9484

9585
@Ignore("Remove to run test")
9686
@Test
9787
public void cannotDepositNegativeAmount() {
9888
bankAccount.open();
9989

100-
BankAccountActionInvalidException expected =
101-
assertThrows(
102-
BankAccountActionInvalidException.class,
103-
() -> bankAccount.deposit(-1));
104-
105-
assertThat(expected)
106-
.hasMessage("Cannot deposit or withdraw negative amount");
90+
assertThatExceptionOfType(BankAccountActionInvalidException.class)
91+
.isThrownBy(() -> bankAccount.deposit(-1))
92+
.withMessage("Cannot deposit or withdraw negative amount");
10793
}
10894

10995
@Ignore("Remove to run test")
@@ -112,13 +98,9 @@ public void cannotWithdrawNegativeAmount() throws BankAccountActionInvalidExcept
11298
bankAccount.open();
11399
bankAccount.deposit(105);
114100

115-
BankAccountActionInvalidException expected =
116-
assertThrows(
117-
BankAccountActionInvalidException.class,
118-
() -> bankAccount.withdraw(-5));
119-
120-
assertThat(expected)
121-
.hasMessage("Cannot deposit or withdraw negative amount");
101+
assertThatExceptionOfType(BankAccountActionInvalidException.class)
102+
.isThrownBy(() -> bankAccount.withdraw(-5))
103+
.withMessage("Cannot deposit or withdraw negative amount");
122104
}
123105

124106
@Ignore("Remove to run test")
@@ -128,12 +110,9 @@ public void cannotGetBalanceOfClosedAccount() throws BankAccountActionInvalidExc
128110
bankAccount.deposit(10);
129111
bankAccount.close();
130112

131-
BankAccountActionInvalidException expected =
132-
assertThrows(
133-
BankAccountActionInvalidException.class,
134-
bankAccount::getBalance);
135-
136-
assertThat(expected).hasMessage("Account closed");
113+
assertThatExceptionOfType(BankAccountActionInvalidException.class)
114+
.isThrownBy(bankAccount::getBalance)
115+
.withMessage("Account closed");
137116
}
138117

139118
@Ignore("Remove to run test")
@@ -142,12 +121,9 @@ public void cannotDepositMoneyIntoClosedAccount() {
142121
bankAccount.open();
143122
bankAccount.close();
144123

145-
BankAccountActionInvalidException expected =
146-
assertThrows(
147-
BankAccountActionInvalidException.class,
148-
() -> bankAccount.deposit(5));
149-
150-
assertThat(expected).hasMessage("Account closed");
124+
assertThatExceptionOfType(BankAccountActionInvalidException.class)
125+
.isThrownBy(() -> bankAccount.deposit(5))
126+
.withMessage("Account closed");
151127
}
152128

153129
@Ignore("Remove to run test")
@@ -157,23 +133,17 @@ public void cannotWithdrawMoneyFromClosedAccount() throws BankAccountActionInval
157133
bankAccount.deposit(20);
158134
bankAccount.close();
159135

160-
BankAccountActionInvalidException expected =
161-
assertThrows(
162-
BankAccountActionInvalidException.class,
163-
() -> bankAccount.withdraw(5));
164-
165-
assertThat(expected).hasMessage("Account closed");
136+
assertThatExceptionOfType(BankAccountActionInvalidException.class)
137+
.isThrownBy(() -> bankAccount.withdraw(5))
138+
.withMessage("Account closed");
166139
}
167140

168141
@Ignore("Remove to run test")
169142
@Test
170143
public void bankAccountIsClosedBeforeItIsOpened() {
171-
BankAccountActionInvalidException expected =
172-
assertThrows(
173-
BankAccountActionInvalidException.class,
174-
bankAccount::getBalance);
175-
176-
assertThat(expected).hasMessage("Account closed");
144+
assertThatExceptionOfType(BankAccountActionInvalidException.class)
145+
.isThrownBy(bankAccount::getBalance)
146+
.withMessage("Account closed");
177147
}
178148

179149
@Ignore("Remove to run test")

0 commit comments

Comments
 (0)