use of com.axway.ats.rbv.PollingParameters in project ats-framework by Axway.
the class Test_SimpleMonitorListener method evaluateMonitorsMultipleMonitorsEndOnFirstMatchExpectedFalseNegative.
@Test
public void evaluateMonitorsMultipleMonitorsEndOnFirstMatchExpectedFalseNegative() throws RbvException {
final int pollingAttempts = 4;
PollingParameters longPollingParams = new PollingParameters(0, POLLING_INTERVAL, pollingAttempts);
DbStorage storage = new DbStorage(new MockDbProvider());
Matchable matchable1 = storage.getFolder(new DbSearchTerm(""));
Matchable matchable2 = storage.getFolder(new DbSearchTerm(""));
Matchable matchable3 = storage.getFolder(new DbSearchTerm(""));
DbFieldsRule dbRule = new DbStringFieldRule("", "key1", "value10", MatchRelation.EQUALS, "evaluateMonitorsMultipleMonitorsEndOnFirstMatchExpectedFalseNegative", true);
Monitor monitor1 = new Monitor("monitor1", matchable1, dbRule, longPollingParams, false, true, false);
Monitor monitor2 = new Monitor("monitor2", matchable2, dbRule, longPollingParams, false, true, false);
Monitor monitor3 = new Monitor("monitor3", matchable3, dbRule, longPollingParams, false, true, false);
List<Monitor> monitors = new ArrayList<Monitor>();
monitors.add(monitor1);
monitors.add(monitor2);
monitors.add(monitor3);
long timeBefore = System.currentTimeMillis();
SimpleMonitorListener listener = new SimpleMonitorListener(monitors);
assertFalse(listener.evaluateMonitors(pollingAttempts * POLLING_INTERVAL));
long timeAfter = System.currentTimeMillis();
//make sure more than (3 * poling interval) seconds have passed
//this means that all iteration ware executed
assertTrue(timeAfter - timeBefore > (pollingAttempts - 1) * POLLING_INTERVAL - 500);
}
use of com.axway.ats.rbv.PollingParameters in project ats-framework by Axway.
the class Test_SimpleMonitorListener method evaluateMonitorsMultipleMonitorsNegativeTimeoutExceeded.
@Test
public void evaluateMonitorsMultipleMonitorsNegativeTimeoutExceeded() throws RbvException {
DbStorage storage = new DbStorage(new MockDbProvider());
Matchable matchable1 = storage.getFolder(new DbSearchTerm(""));
Matchable matchable2 = storage.getFolder(new DbSearchTerm(""));
Matchable matchable3 = storage.getFolder(new DbSearchTerm(""));
DbFieldsRule dbRule = new DbStringFieldRule("", "key1", "value10", MatchRelation.EQUALS, "evaluateMonitorsMultipleMonitorsNegativeTimeoutExceeded", true);
PollingParameters longPolling = new PollingParameters(100, 1000, 5);
Monitor monitor1 = new Monitor("monitor1", matchable1, dbRule, longPolling, true, false, false);
Monitor monitor2 = new Monitor("monitor2", matchable2, dbRule, longPolling, true, false, false);
Monitor monitor3 = new Monitor("monitor3", matchable3, dbRule, longPolling, true, false, false);
List<Monitor> monitors = new ArrayList<Monitor>();
monitors.add(monitor1);
monitors.add(monitor2);
monitors.add(monitor3);
SimpleMonitorListener listener = new SimpleMonitorListener(monitors);
assertFalse(listener.evaluateMonitors(1000));
}
use of com.axway.ats.rbv.PollingParameters in project ats-framework by Axway.
the class Test_SimpleMonitorListener method beforeMethod.
@Before
public void beforeMethod() throws RbvException {
pollingParams = new PollingParameters(0, POLLING_INTERVAL, POLLING_ATTEMPTS);
mockDbProvider = new MockDbProvider();
DbStorage storage = new DbStorage(mockDbProvider);
matchable = storage.getFolder(new DbSearchTerm(""));
}
use of com.axway.ats.rbv.PollingParameters in project ats-framework by Axway.
the class VerificationSkeleton method verify.
/**
* Verify that all rules match using the given expected result
*
* @param expectedResult the expected result
* @param endOnFirstMatch end on first match or keep testing until all polling attempts are exhausted
* @param endOnFirstFailure end or first failure or keep testing until all polling attempts are exhausted
*
* @return the matched meta data
* @throws RbvException on error doing the verifications
*/
protected List<MetaData> verify(boolean expectedResult, boolean endOnFirstMatch, boolean endOnFirstFailure) throws RbvException {
try {
this.executor.setRootRule(this.rootRule);
applyConfigurationSettings();
Monitor monitor = new Monitor(getMonitorName(), this.folder, this.executor, new PollingParameters(pollingInitialDelay, pollingInterval, pollingAttempts), expectedResult, endOnFirstMatch, endOnFirstFailure);
ArrayList<Monitor> monitors = new ArrayList<Monitor>();
monitors.add(monitor);
SimpleMonitorListener monitorListener = new SimpleMonitorListener(monitors);
boolean evaluationPassed = monitorListener.evaluateMonitors(pollingTimeout);
String lastRuleName = monitor.getLastRuleName();
String classSimpleName = getClass().getSimpleName();
if ("FileSystemVerification".equals(classSimpleName) && !expectedResult) {
lastRuleName = "File do exist!";
} else if (lastRuleName != null) {
lastRuleName = "Rule failed '" + lastRuleName + "'!";
} else {
if ("DbVerification".equals(classSimpleName)) {
lastRuleName = "Database connection problem!";
} else if ("FileSystemVerification".equals(classSimpleName) && expectedResult) {
lastRuleName = "File does not exist!";
} else {
lastRuleName = "Server connection problem!";
}
}
if (evaluationPassed == false) {
throw new RbvVerificationException("Verification failed. " + lastRuleName);
}
return monitor.getAllMatchedMetaData();
} catch (ConfigurationException ce) {
throw new RbvException("RBV configuration error", ce);
}
}
use of com.axway.ats.rbv.PollingParameters in project ats-framework by Axway.
the class Test_SimpleMonitorListener method evaluateMonitorsMultipleMonitorsEndOnFirstMatchExpectedFalsePositive.
@Test
public void evaluateMonitorsMultipleMonitorsEndOnFirstMatchExpectedFalsePositive() throws RbvException {
PollingParameters longPollingParams = new PollingParameters(0, 5000, 10);
DbStorage storage = new DbStorage(new MockDbProvider());
Matchable matchable1 = storage.getFolder(new DbSearchTerm(""));
Matchable matchable2 = storage.getFolder(new DbSearchTerm(""));
Matchable matchable3 = storage.getFolder(new DbSearchTerm(""));
DbFieldsRule dbRule = new DbStringFieldRule("", "key1", "value2345", MatchRelation.EQUALS, "evaluateMonitorsMultipleMonitorsEndOnFirstMatchPositive", true);
Monitor monitor1 = new Monitor("monitor1", matchable1, dbRule, longPollingParams, false, true, false);
Monitor monitor2 = new Monitor("monitor2", matchable2, dbRule, longPollingParams, false, true, false);
Monitor monitor3 = new Monitor("monitor3", matchable3, dbRule, longPollingParams, false, true, false);
List<Monitor> monitors = new ArrayList<Monitor>();
monitors.add(monitor1);
monitors.add(monitor2);
monitors.add(monitor3);
long timeBefore = Calendar.getInstance().getTimeInMillis();
SimpleMonitorListener listener = new SimpleMonitorListener(monitors);
listener.evaluateMonitors(TIME_END_POLL);
long timeAfter = Calendar.getInstance().getTimeInMillis();
//make sure less than (3 * poling interval) seconds have passed
//this means that only one iteration was made
assertTrue(timeAfter - timeBefore < 3 * POLLING_INTERVAL - 500);
}
Aggregations