19
19
import java .util .Collection ;
20
20
import java .util .Iterator ;
21
21
import java .util .LinkedHashMap ;
22
+ import java .util .LinkedHashSet ;
22
23
import java .util .List ;
23
24
import java .util .Map ;
24
25
import java .util .Set ;
@@ -54,8 +55,8 @@ public void describeTo(Description description) {
54
55
55
56
@ SuppressWarnings ("rawtypes" )
56
57
public boolean matches (Object actual ) {
57
- if (expected instanceof List ) {
58
- return listEquals (( List ) expected , (List ) actual );
58
+ if (expected instanceof List || expected instanceof LinkedHashSet ) {
59
+ return collectionEquals (( Collection ) expected , (Collection ) actual );
59
60
} else if (expected instanceof Set ) {
60
61
return setEquals ((Set ) expected , (Set ) actual );
61
62
} else if (expected instanceof LinkedHashMap ) {
@@ -66,16 +67,16 @@ public boolean matches(Object actual) {
66
67
}
67
68
68
69
@ SuppressWarnings ({ "unchecked" , "rawtypes" })
69
- private boolean listEquals ( List expected , List actual ) {
70
+ private boolean collectionEquals ( Collection expected , Collection actual ) {
70
71
if (expected .size () != actual .size ()) {
71
72
return false ;
72
73
}
73
74
Iterator <Object > actualItr = actual .iterator ();
74
75
Iterator <Object > expectedItr = expected .iterator ();
75
76
while (expectedItr .hasNext ()) {
76
77
Object expectedObj = expectedItr .next ();
77
- if (expectedObj instanceof List ) {
78
- if (!(listEquals (( List ) expectedObj , (List ) actualItr .next ()))) {
78
+ if (expectedObj instanceof List || expectedObj instanceof LinkedHashSet ) {
79
+ if (!(collectionEquals (( Collection ) expectedObj , (Collection ) actualItr .next ()))) {
79
80
return false ;
80
81
}
81
82
} else if (expectedObj instanceof Set ) {
0 commit comments