При следующих требованиях к заказу:
Все строки, начинающиеся с foo, должны быть первыми.
Все строки, начинающиеся с бара, должны быть последними.
Строки, которые не начинаются с foo или bar, также могут присутствовать в списке.
Как можно использовать тестирование на основе свойств для проверки реализации вышеуказанных требований без головной боли?
Есть ли что-то более элегантное, чем следующее:
List<String> strings = Arrays.asList("foo", "bar", "bar1", "jar");
Collections.shuffle(strings);
assertListStartWith(strings, "foo");
assertListEndsWith(strings, "bar", "bar1");
assertThat(strings, hasItem( "jar"));