### Question:
ColocUtil { public static boolean isSameFaultInfo(Collection<FaultInfo> fil1, Collection<FaultInfo> fil2) { if ((fil1 == null && fil2 != null) || (fil1 != null && fil2 == null)) { return false; } if (fil1 != null && fil2 != null) { if (fil1.size() != fil2.size()) { return false; } for (FaultInfo fi1 : fil1) { Iterator<FaultInfo> iter = fil2.iterator(); Class<?> fiClass1 = fi1.getProperty(Class.class.getName(), Class.class); boolean match = false; while (iter.hasNext()) { FaultInfo fi2 = iter.next(); Class<?> fiClass2 = fi2.getProperty(Class.class.getName(), Class.class); if (fiClass1.equals(fiClass2)) { match = true; break; } } if (!match) { return false; } } } return true; } private  ColocUtil(); static void setPhases(SortedSet<Phase> list, String start, String end); static InterceptorChain getOutInterceptorChain(Exchange ex, SortedSet<Phase> phases); static InterceptorChain getInInterceptorChain(Exchange ex, SortedSet<Phase> phases); static boolean isSameOperationInfo(OperationInfo oi1, OperationInfo oi2); static boolean isCompatibleOperationInfo(OperationInfo oi1, OperationInfo oi2); static boolean isAssignableOperationInfo(OperationInfo oi, Class<?> cls); static boolean isSameMessageInfo(MessageInfo mi1, MessageInfo mi2); static boolean isSameFaultInfo(Collection<FaultInfo> fil1,
                                          Collection<FaultInfo> fil2); static void convertSourceToObject(Message message); static void convertObjectToSource(Message message);  }### Answer:
@Test public void testIsSameFaultInfo() { OperationInfo oi = control.createMock(OperationInfo.class); boolean match = ColocUtil.isSameFaultInfo(null, null); assertTrue("Should return true", match); List<FaultInfo> fil1 = new ArrayList<>(); match = ColocUtil.isSameFaultInfo(fil1, null); assertFalse("Should not find a match", match); match = ColocUtil.isSameFaultInfo(null, fil1); assertFalse("Should not find a match", match); List<FaultInfo> fil2 = new ArrayList<>(); match = ColocUtil.isSameFaultInfo(fil1, fil2); QName fn1 = new QName("A", "B"); QName fn2 = new QName("C", "D"); FaultInfo fi1 = new FaultInfo(fn1, null, oi); fi1.setProperty(Class.class.getName(), PingMeFault.class); fil1.add(fi1); FaultInfo fi2 = new FaultInfo(fn2, null, oi); fi2.setProperty(Class.class.getName(), FaultDetailT.class); match = ColocUtil.isSameFaultInfo(fil1, fil2); assertFalse("Should not find a match", match); FaultInfo fi3 = new FaultInfo(fn2, null, oi); fi3.setProperty(Class.class.getName(), PingMeFault.class); fil2.add(fi3); match = ColocUtil.isSameFaultInfo(fil1, fil2); assertTrue("Should find a match", match); }