1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.atlassian.jira.rest.client.test.matchers;
18
19 import com.atlassian.jira.rest.client.api.AddressableEntity;
20 import com.google.common.collect.Lists;
21 import org.hamcrest.FeatureMatcher;
22 import org.hamcrest.Matcher;
23 import org.hamcrest.Matchers;
24 import org.hamcrest.collection.IsIterableContainingInAnyOrder;
25
26 import java.net.URI;
27 import java.util.Collection;
28
29 public class AddressableEntityMatchers {
30
31 public static Matcher<? super AddressableEntity> withSelf(URI uri) {
32 return new FeatureMatcher<AddressableEntity, URI>(Matchers.is(uri), "entity with self that", "self") {
33
34 @Override
35 protected URI featureValueOf(AddressableEntity AddressableEntity) {
36 return AddressableEntity.getSelf();
37 }
38 };
39 }
40
41 public static Matcher<Iterable<? extends AddressableEntity>> entitiesWithSelf(URI... uris) {
42 final Collection<Matcher<? super AddressableEntity>> matchers = Lists.newArrayListWithCapacity(uris.length);
43 for (URI uri : uris) {
44 matchers.add(withSelf(uri));
45 }
46 return IsIterableContainingInAnyOrder.containsInAnyOrder(matchers);
47 }
48 }