package org.ourgrid.matchers;
import java.util.Iterator;
import java.util.List;
import org.easymock.EasyMock;
import org.easymock.IArgumentMatcher;
import org.ourgrid.common.statistics.beans.ds.DS_PeerStatusChange;
public class DS_PeerStatusChangeHistoryMatcher implements IArgumentMatcher{
private List<DS_PeerStatusChange> historyList;
public DS_PeerStatusChangeHistoryMatcher(List<DS_PeerStatusChange> historyList) {
this.historyList = historyList;
}
public void appendTo(StringBuffer arg0) {
}
@SuppressWarnings("unchecked")
public boolean matches(Object arg0) {
if(!(arg0 instanceof List)) {
return false;
}
List<DS_PeerStatusChange> historyListOnSystem =
(List<DS_PeerStatusChange>) arg0;
if(this.historyList.size() != historyListOnSystem.size()) {
return false;
}
Iterator<DS_PeerStatusChange> behaviorListIterator = this.historyList.iterator();
Iterator<DS_PeerStatusChange> onSystemListIterator = historyListOnSystem.iterator();
while(behaviorListIterator.hasNext() && onSystemListIterator.hasNext()) {
DS_PeerStatusChange behaviorStatusChange = behaviorListIterator.next();
DS_PeerStatusChange onSystemStatusChange = onSystemListIterator.next();
if(!behaviorStatusChange.getPeerAddress().equals(onSystemStatusChange.getPeerAddress())){
return false;
}
if(!behaviorStatusChange.getCurrentStatus().equals(onSystemStatusChange.getCurrentStatus())){
return false;
}
}
return true;
}
public static List<DS_PeerStatusChange> eqMatcher(List<DS_PeerStatusChange> historyList) {
EasyMock.reportMatcher(new DS_PeerStatusChangeHistoryMatcher(historyList));
return null;
}
}