I'm testing some UI functionality with Java and AssertJ.
So when I receive some massive string from UI, I should verify if that String contains at least one predefined value from List<String>
.
It is easy to do opposite thing - verify if list contains at least once some String value but this is not my case.
I can't find solution in standard methods.
public static final List<String> OPTIONS = Arrays.asList("Foo", "Bar", "Baz");
String text = "Just some random text with bar";
what I need is smth like this :
Assertions.assertThat(text)
.as("Should contain at least one value from OPTIONS ")
.containsAnyOf(OPTIONS)
.matches(s -> OPTIONS.stream().anyMatch(option -> s.contains(option)));
You can also try to use Condition and AssertJ assertions like areAtLeastOne(), areAtLeast(), for instance:
assertThat(OPTIONS)
.areAtLeastOne(new Condition<>(text::contains,
String.format("Error message '%s'", args);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With