Java 8流中的JUnit断言

use*_*256 5 java junit java-stream

说我有三个对象,我将它们保存到数据库并将db生成的ID设置为其中。我不知道从方法返回的对象的顺序saveToDb。但是我想通过junit测试那些生成的ID是否存在。我该如何在视频流中做到这一点?我想做这样的事情:

List<MyObject> myObjects = getObjects();
numRecords = saveToDb(myObjects); // numRecords=3
List<Integer> intArray = Arrays.asList(1, 2, 3);
intArray.stream()
  .forEach(it -> myObjects.stream()
    .filter(it2 -> it2.getId().equals(it))
    .????
Run Code Online (Sandbox Code Playgroud)

但是我不确定在assertEquals()这样的声明中我会去哪里。还是我的方法全错了?我知道我可以使用简单的for循环,但是我喜欢流的优雅。此外,如果我有3个以上的myObject,是否可以动态创建intArray?

Eug*_*ene 6

看来(如果我理解正确的话),这样的事情怎么样:

 boolean result = Arrays.asList(1, 2, 3).stream()
            .allMatch(i -> objects
                .stream()
                .map(MyObject::getId)
                .filter(j -> j == i).findAny().isPresent());
    Assert.assertTrue(result);
Run Code Online (Sandbox Code Playgroud)