package com.acme.jpa; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.fest.assertions.Assertions; import org.fest.assertions.GenericAssert; public class GamesAssert extends GenericAssert<GamesAssert, Collection<Game>> { private GamesAssert(Collection<Game> actual) { super(GamesAssert.class, actual); } public static GamesAssert assertThat(Collection<Game> games) { return new GamesAssert(games); } public GamesAssert hasSize(int expectedSize) { Assertions.assertThat(actual).hasSize(expectedSize); return this; } public GamesAssert containsTitles(String ... titles) { List<String> allTitles = extractTitles(actual); Assertions.assertThat(allTitles).contains(titles); return this; } // Private utility methods private List<String> extractTitles(Collection<Game> games) { List<String> titles = new ArrayList<String>(); for (Game game : games) { titles.add(game.getTitle()); } return titles; } }