jUnit и Guava, сравнение равенства списков после преобразования()

В тесте jUnit я хочу получить несколько строк из базы данных на основе столбца name. Затем я хочу проверить, что строки, которые я получил, имеют ожидаемые имена. У меня есть следующее:

Set<MyClass> typesToGet = MyClassFactory.createInstances("furniture",
    "audio equipment");
Collection<String> namesToGet = Collections2.transform(typesToGet,
    new NameFunction<MyClass, String>());
List<MyClass> typesGotten = _svc.getAllByName(typesToGet);
assertThat(typesGotten.size(), is(typesToGet.size()));
Collection<String> namesGotten = Collections2.transform(typesGotten,
    new NameFunction<ItemType, String>());
assertEquals(namesToGet, namesGotten); // fails here

В настоящее время я получаю этот сбой:

java.lang.AssertionError :ожидаемый :com.google.common.collect.Collections2$TransformedCollection<[аудиооборудование, мебель]> но был :com.google.common.collect.Collections2$TransformedCollection<[аудиооборудование, мебель]>

Итак, какой самый чистый и краткий способ проверить, что я получил строки из базы данных, столбец nameкоторых соответствует именам, которые я сказал, что хочу? У меня мог бы быть цикл for, перебирающий и проверяющий, что каждое имя в одном списке существует в другом, но я надеялся быть более кратким. Что-то вроде следующего псевдокода было бы неплохо:

List<MyClass> typesGotten =...;
["furniture", "audio equipment"].equals(typesGotten.map(type => type.getName()))
7
задан alain.janinm 30 April 2012 в 08:24
поделиться