ContentIdPredicate.java
- package fr.sii.ogham.testing.assertion.filter;
- import static java.util.Collections.list;
- import java.util.function.Predicate;
- import javax.mail.Header;
- import javax.mail.MessagingException;
- import javax.mail.Part;
- /**
- * Predicate that matches the {@link Part} only if {@link Part#getAllHeaders()}
- * contains a {@code Content-ID} header that exactly matches the provided
- * Content-ID.
- *
- * @author Aurélien Baudet
- *
- */
- public class ContentIdPredicate implements Predicate<Part> {
- private final String contentId;
- public ContentIdPredicate(String contentId) {
- super();
- this.contentId = contentId;
- }
- @Override
- public boolean test(Part input) {
- try {
- // @formatter:off
- return list(input.getMatchingHeaders(new String[] { "Content-ID" }))
- .stream()
- .map(Header::getValue)
- .anyMatch(contentId::equals);
- // @formatter:on
- } catch (MessagingException e) {
- throw new AssertionError("Failed to access message", e);
- }
- }
- @Override
- public String toString() {
- return "having Content-ID header '" + contentId + "'";
- }
- }