Skip to content

Commit 22f7675

Browse files
author
Graham Allan
committed
Make it clear method returns a set. Also use a feature for a better test failure message.
1 parent 373bb80 commit 22f7675

2 files changed

Lines changed: 17 additions & 6 deletions

File tree

src/main/java/org/adoptopenjdk/lambda/tutorial/exercise3/Books.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package org.adoptopenjdk.lambda.tutorial.exercise3;
22

3-
import java.util.Collection;
43
import java.util.Collections;
54
import java.util.List;
5+
import java.util.Set;
66

77
public class Books {
88
public static List<String> titlesOf(List<Book> books) {
@@ -17,7 +17,7 @@ public static List<String> namesOfAuthorsOf(List<Book> books) {
1717
return Collections.emptyList();
1818
}
1919

20-
public static Collection<Publisher> publishersRepresentedBy(List<Book> books) {
20+
public static Set<Publisher> publishersRepresentedBy(List<Book> books) {
2121
// [your code here]
2222

2323
return Collections.emptySet();

src/test/java/org/adoptopenjdk/lambda/tutorial/Exercise_3_Test.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import org.adoptopenjdk.lambda.tutorial.exercise3.Book;
55
import org.adoptopenjdk.lambda.tutorial.exercise3.Books;
66
import org.adoptopenjdk.lambda.tutorial.exercise3.Publisher;
7+
import org.adoptopenjdk.lambda.tutorial.util.FeatureMatchers;
8+
import org.hamcrest.Matcher;
79
import org.junit.Test;
810

911
import java.util.Arrays;
@@ -15,7 +17,8 @@
1517
import java.util.stream.Stream;
1618

1719
import static org.hamcrest.MatcherAssert.assertThat;
18-
import static org.hamcrest.Matchers.contains;
20+
import static org.hamcrest.Matchers.containsInAnyOrder;
21+
import static org.hamcrest.Matchers.equalTo;
1922

2023
/**
2124
* Exercise 3 - Mapping
@@ -83,6 +86,7 @@
8386
* @see Collectors#toList()
8487
*
8588
*/
89+
@SuppressWarnings("unchecked")
8690
public class Exercise_3_Test {
8791

8892
private final Author joshuaBloch = new Author("Joshua", "Bloch");
@@ -104,7 +108,7 @@ public class Exercise_3_Test {
104108
@Test
105109
public void getAllBookTitles() {
106110
assertThat(Books.titlesOf(books),
107-
contains("Effective Java", "Java Concurrency In Practice", "Java For Dummies"));
111+
containsInAnyOrder("Effective Java", "Java Concurrency In Practice", "Java For Dummies"));
108112
}
109113

110114
/**
@@ -118,7 +122,7 @@ public void getAllBookTitles() {
118122
@Test
119123
public void getNamesOfAuthorsOfBooks() {
120124
assertThat(Books.namesOfAuthorsOf(books),
121-
contains("Joshua Bloch", "Brian Goetz", "Barry Burd"));
125+
containsInAnyOrder("Joshua Bloch", "Brian Goetz", "Barry Burd"));
122126
}
123127

124128
/**
@@ -136,7 +140,14 @@ public void getNamesOfAuthorsOfBooks() {
136140
@Test
137141
public void getPublishersRepresentedByBooks() {
138142
assertThat(Books.publishersRepresentedBy(books),
139-
contains(addisonWesley, johnWileyAndSons));
143+
containsInAnyOrder(publisherNamed("Addison-Wesley"), publisherNamed("John Wiley & Sons")));
144+
}
145+
146+
147+
// Test helpers
148+
149+
private static Matcher<Publisher> publisherNamed(String name) {
150+
return FeatureMatchers.from(equalTo(name), "is named", "name", p -> p.name);
140151
}
141152

142153
}

0 commit comments

Comments
 (0)