package org.ourgrid.system.condition;
import org.ourgrid.system.units.DiscoveryServiceUnit;
public class DiscoveryServiceNumberOfPeersCondition implements Condition {
private final DiscoveryServiceUnit dsUnit;
private final int expectedNumberOfPeers;
private int actualNumberOfPeers;
public DiscoveryServiceNumberOfPeersCondition( DiscoveryServiceUnit dsUnit, int numberOfPeers ) {
this.dsUnit = dsUnit;
this.expectedNumberOfPeers = numberOfPeers;
this.actualNumberOfPeers = 0;
}
public boolean isConditionMet() throws Exception {
actualNumberOfPeers = dsUnit.getConnectedPeers().size();
return actualNumberOfPeers == expectedNumberOfPeers;
}
public String detailMessage() {
return "Number of peers expected: " + expectedNumberOfPeers + ", actual: " + actualNumberOfPeers;
}
}