Skip to content

Commit 2c87b03

Browse files
authored
Update karl's languages to use test runner v3 features (#2493)
* Update karl's languages to use test runner v3 features * refactored tests and simplified display names
1 parent a96c084 commit 2c87b03

File tree

2 files changed

+50
-38
lines changed

2 files changed

+50
-38
lines changed

exercises/concept/karls-languages/build.gradle

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
1-
apply plugin: "java"
2-
apply plugin: "eclipse"
3-
apply plugin: "idea"
4-
5-
// set default encoding to UTF-8
6-
compileJava.options.encoding = "UTF-8"
7-
compileTestJava.options.encoding = "UTF-8"
1+
plugins {
2+
id "java"
3+
}
84

95
repositories {
106
mavenCentral()
117
}
128

139
dependencies {
14-
testImplementation "junit:junit:4.13"
10+
testImplementation platform("org.junit:junit-bom:5.10.0")
11+
testImplementation "org.junit.jupiter:junit-jupiter"
1512
testImplementation "org.assertj:assertj-core:3.15.0"
1613
}
1714

1815
test {
16+
useJUnitPlatform()
17+
1918
testLogging {
20-
exceptionFormat = 'full'
19+
exceptionFormat = "full"
2120
showStandardStreams = true
2221
events = ["passed", "failed", "skipped"]
2322
}

exercises/concept/karls-languages/src/test/java/LanguageListTest.java

Lines changed: 42 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,42 @@
1-
import static org.assertj.core.api.Assertions.assertThat;
1+
import org.junit.jupiter.api.DisplayName;
2+
import org.junit.jupiter.api.Tag;
3+
import org.junit.jupiter.api.Test;
24

3-
import org.junit.Test;
5+
import static org.assertj.core.api.Assertions.*;
46

57
public class LanguageListTest {
68

79
LanguageList languageList = new LanguageList();
810

911
@Test
12+
@Tag("task:1")
13+
@DisplayName("The isEmpty method returns true when the list contains no languages")
1014
public void empty() {
1115
assertThat(languageList.isEmpty()).isTrue();
1216
}
1317

1418
@Test
19+
@Tag("task:2")
20+
@DisplayName("The isEmpty method returns false after adding a language to the list")
1521
public void nonEmpty() {
1622
languageList.addLanguage("Java");
1723

1824
assertThat(languageList.isEmpty()).isFalse();
1925
}
2026

2127
@Test
22-
public void addOneLanguage() {
23-
languageList.addLanguage("Java");
24-
25-
assertThat(languageList.containsLanguage("Java")).isTrue();
26-
assertThat(languageList.containsLanguage("Python")).isFalse();
27-
}
28-
29-
@Test
30-
public void addMultipleLanguages() {
31-
languageList.addLanguage("Java");
32-
languageList.addLanguage("Ruby");
33-
languageList.addLanguage("C++");
34-
35-
assertThat(languageList.containsLanguage("Java")).isTrue();
36-
assertThat(languageList.containsLanguage("Ruby")).isTrue();
37-
assertThat(languageList.containsLanguage("C++")).isTrue();
38-
assertThat(languageList.containsLanguage("Python")).isFalse();
39-
}
40-
41-
@Test
28+
@Tag("task:3")
29+
@DisplayName("The removeLanguage method correctly removes a language from the list")
4230
public void removeLanguage() {
4331
languageList.addLanguage("Java");
44-
languageList.addLanguage("Python");
45-
languageList.addLanguage("Ruby");
46-
47-
languageList.removeLanguage("Python");
32+
languageList.removeLanguage("Java");
4833

49-
assertThat(languageList.containsLanguage("Java")).isTrue();
50-
assertThat(languageList.containsLanguage("Python")).isFalse();
51-
assertThat(languageList.containsLanguage("Ruby")).isTrue();
34+
assertThat(languageList.isEmpty()).isTrue();
5235
}
5336

5437
@Test
38+
@Tag("task:4")
39+
@DisplayName("The firstLanguage method returns the first language that was added to the list")
5540
public void firstLanguage() {
5641
languageList.addLanguage("Java");
5742
languageList.addLanguage("Python");
@@ -61,6 +46,8 @@ public void firstLanguage() {
6146
}
6247

6348
@Test
49+
@Tag("task:5")
50+
@DisplayName("The count method returns the number of languages in the list")
6451
public void countThree() {
6552
languageList.addLanguage("Java");
6653
languageList.addLanguage("Python");
@@ -70,18 +57,42 @@ public void countThree() {
7057
}
7158

7259
@Test
60+
@Tag("task:5")
61+
@DisplayName("The count method returns 0 when the list is empty")
7362
public void countEmpty() {
7463
assertThat(languageList.count()).isEqualTo(0);
7564
}
7665

7766
@Test
67+
@Tag("task:6")
68+
@DisplayName("The containsLanguage method returns true when the language is in the list")
69+
public void containsLanguage() {
70+
languageList.addLanguage("Java");
71+
72+
assertThat(languageList.containsLanguage("Java")).isTrue();
73+
}
74+
75+
@Test
76+
@Tag("task:6")
77+
@DisplayName("The containsLanguage method returns false when the language is not in the list")
78+
public void doesNotContainLanguage() {
79+
languageList.addLanguage("Kotlin");
80+
81+
assertThat(languageList.containsLanguage("Java")).isFalse();
82+
}
83+
84+
@Test
85+
@Tag("task:7")
86+
@DisplayName("The isExciting method returns true when the list contains Java")
7887
public void excitingLanguageListWithJava() {
7988
languageList.addLanguage("Java");
8089

8190
assertThat(languageList.isExciting()).isTrue();
8291
}
8392

8493
@Test
94+
@Tag("task:7")
95+
@DisplayName("The isExciting method returns true when the list contains Kotlin")
8596
public void excitingLanguageListWithKotlin() {
8697
languageList.addLanguage("Python");
8798
languageList.addLanguage("Kotlin");
@@ -90,6 +101,8 @@ public void excitingLanguageListWithKotlin() {
90101
}
91102

92103
@Test
104+
@Tag("task:7")
105+
@DisplayName("The isExciting method returns false when the list contains neither Java nor Kotlin")
93106
public void boringLanguageList() {
94107
languageList.addLanguage("Python");
95108
languageList.addLanguage("Ruby");

0 commit comments

Comments
 (0)