package org.jboss.tools.teiid.reddeer.condition;
import org.jboss.reddeer.common.condition.AbstractWaitCondition;
import org.jboss.reddeer.common.matcher.RegexMatcher;
import org.jboss.reddeer.eclipse.exception.EclipseLayerException;
import org.jboss.reddeer.eclipse.wst.server.ui.view.ModuleLabel;
import org.jboss.reddeer.eclipse.wst.server.ui.view.Server;
import org.jboss.reddeer.eclipse.wst.server.ui.view.ServersView;
import org.jboss.reddeer.eclipse.wst.server.ui.view.ServersViewEnums.ServerPublishState;
import org.jboss.reddeer.eclipse.wst.server.ui.view.ServersViewEnums.ServerState;
public class WarIsDeployed extends AbstractWaitCondition {
private Server server;
private String warName;
public WarIsDeployed(String serverName, String warName) {
server = new ServersView().getServer(serverName);
this.warName = warName;
}
@Override
public boolean test() {
try {
ModuleLabel label = server.getModule(new RegexMatcher(".*" + warName + ".*")).getLabel();
return ServerPublishState.SYNCHRONIZED.equals(label.getPublishState())
&& ServerState.STARTED.equals(label.getState());
} catch (EclipseLayerException ex) {
return false;
}
}
@Override
public String description() {
return "war with name '" + warName + "' is started and synchronized";
}
}