@Test
public void yieldsUniqueShapes() {

    OperationShape readOperation = OperationShape.builder()
            .id("smithy.example#Read")
            .build();
    ResourceShape resource = ResourceShape.builder()
            .id("smithy.example#Resource")
            .read(readOperation.getId())
            .build();
    Model model = Model.builder().addShapes(readOperation, resource).build();
    Walker walker = new Walker(model);
    List<Shape> shapes = new ArrayList<>();
    walker.iterateShapes(resource).forEachRemaining(shapes::add);
    assertThat(shapes, containsInAnyOrder(readOperation, resource));
}