Search in sources :

Example 1 with Query

use of org.apache.apex.malhar.lib.appdata.schemas.Query in project apex-malhar by apache.

the class QueryManagerSynchronousTest method simpleTest.

@Test
public void simpleTest() {
    final int numQueries = 3;
    QueryManagerSynchronous<Query, Void, Void, Result> queryProcessor = QueryManagerSynchronous.newInstance(new SimpleQueryComputer());
    queryProcessor.setup(null);
    queryProcessor.beginWindow(0);
    for (int qc = 0; qc < numQueries; qc++) {
        Query query = new MockQuery(Integer.toString(qc));
        queryProcessor.enqueue(query, null, null);
    }
    Result result;
    List<Result> results = Lists.newArrayList();
    while ((result = queryProcessor.process()) != null) {
        results.add(result);
    }
    queryProcessor.endWindow();
    queryProcessor.teardown();
    Assert.assertEquals("Sizes must match.", numQueries, results.size());
    for (int rc = 0; rc < results.size(); rc++) {
        result = results.get(rc);
        Assert.assertEquals("Ids must match.", Integer.toString(rc), result.getId());
    }
}
Also used : Query(org.apache.apex.malhar.lib.appdata.schemas.Query) Result(org.apache.apex.malhar.lib.appdata.schemas.Result) Test(org.junit.Test)

Example 2 with Query

use of org.apache.apex.malhar.lib.appdata.schemas.Query in project apex-malhar by apache.

the class SimpleDoneQueryQueueManagerTest method simpleEnqueueDequeue.

@Test
public void simpleEnqueueDequeue() {
    SimpleDoneQueueManager<Query, Void> sdqqm = new SimpleDoneQueueManager<Query, Void>();
    sdqqm.setup(null);
    sdqqm.beginWindow(0);
    Query query = new MockQuery("1");
    sdqqm.enqueue(query, null, new MutableBoolean(false));
    QueryBundle<Query, Void, MutableBoolean> qb = sdqqm.dequeue();
    Assert.assertEquals("Should return same query.", query, qb.getQuery());
    qb = sdqqm.dequeue();
    Assert.assertEquals("Should return back null.", null, qb);
    sdqqm.endWindow();
    sdqqm.beginWindow(1);
    qb = sdqqm.dequeue();
    Assert.assertEquals("Should return same query.", query, qb.getQuery());
    qb = sdqqm.dequeue();
    Assert.assertEquals("Should return back null.", null, qb);
    sdqqm.endWindow();
    sdqqm.teardown();
}
Also used : Query(org.apache.apex.malhar.lib.appdata.schemas.Query) MutableBoolean(org.apache.commons.lang3.mutable.MutableBoolean) Test(org.junit.Test)

Example 3 with Query

use of org.apache.apex.malhar.lib.appdata.schemas.Query in project apex-malhar by apache.

the class SimpleDoneQueryQueueManagerTest method simpleExpireBlockThenUnblock.

@Test
public void simpleExpireBlockThenUnblock() throws Exception {
    SimpleDoneQueueManager<Query, Void> sdqqm = new SimpleDoneQueueManager<Query, Void>();
    sdqqm.setup(null);
    sdqqm.beginWindow(0);
    Query query = new MockQuery("1");
    MutableBoolean expire = new MutableBoolean(false);
    sdqqm.enqueue(query, null, expire);
    sdqqm.endWindow();
    sdqqm.beginWindow(1);
    // Expire
    expire.setValue(true);
    ExceptionSaverExceptionHandler eseh = new ExceptionSaverExceptionHandler();
    testBlockingNoStop(sdqqm, eseh);
    query = new MockQuery("2");
    sdqqm.enqueue(query, null, new MutableBoolean(false));
    Thread.sleep(1000);
    Assert.assertNull(eseh.getCaughtThrowable());
    sdqqm.endWindow();
    sdqqm.teardown();
}
Also used : ExceptionSaverExceptionHandler(org.apache.apex.malhar.lib.appdata.ThreadUtils.ExceptionSaverExceptionHandler) Query(org.apache.apex.malhar.lib.appdata.schemas.Query) MutableBoolean(org.apache.commons.lang3.mutable.MutableBoolean) Test(org.junit.Test)

Example 4 with Query

use of org.apache.apex.malhar.lib.appdata.schemas.Query in project apex-malhar by apache.

the class SimpleDoneQueryQueueManagerTest method expiredTestBlockingValidFirstExpiredLast.

@Test
public void expiredTestBlockingValidFirstExpiredLast() throws Exception {
    SimpleDoneQueueManager<Query, Void> sdqqm = new SimpleDoneQueueManager<Query, Void>();
    sdqqm.setup(null);
    sdqqm.beginWindow(0);
    Query query = new MockQuery("1");
    MutableBoolean queueContext = new MutableBoolean(false);
    sdqqm.enqueue(query, null, queueContext);
    Query query1 = new MockQuery("2");
    MutableBoolean queueContext1 = new MutableBoolean(false);
    sdqqm.enqueue(query1, null, queueContext1);
    Assert.assertEquals(2, sdqqm.getNumLeft());
    Assert.assertEquals(sdqqm.getNumPermits(), sdqqm.getNumLeft());
    QueryBundle<Query, Void, MutableBoolean> qb = sdqqm.dequeueBlock();
    Assert.assertEquals(1, sdqqm.getNumLeft());
    Assert.assertEquals(sdqqm.getNumPermits(), sdqqm.getNumLeft());
    sdqqm.endWindow();
    sdqqm.beginWindow(1);
    Assert.assertEquals(2, sdqqm.getNumLeft());
    Assert.assertEquals(sdqqm.getNumPermits(), sdqqm.getNumLeft());
    queueContext1.setValue(true);
    qb = sdqqm.dequeueBlock();
    Assert.assertEquals(1, sdqqm.getNumLeft());
    Assert.assertEquals(sdqqm.getNumPermits(), sdqqm.getNumLeft());
    testBlocking(sdqqm);
    Assert.assertEquals(0, sdqqm.getNumLeft());
    Assert.assertEquals(sdqqm.getNumPermits(), sdqqm.getNumLeft());
    sdqqm.endWindow();
    sdqqm.beginWindow(2);
    Assert.assertEquals(1, sdqqm.getNumLeft());
    Assert.assertEquals(sdqqm.getNumPermits(), sdqqm.getNumLeft());
    qb = sdqqm.dequeueBlock();
    testBlocking(sdqqm);
    sdqqm.endWindow();
    sdqqm.teardown();
}
Also used : Query(org.apache.apex.malhar.lib.appdata.schemas.Query) MutableBoolean(org.apache.commons.lang3.mutable.MutableBoolean) Test(org.junit.Test)

Example 5 with Query

use of org.apache.apex.malhar.lib.appdata.schemas.Query in project apex-malhar by apache.

the class SimpleDoneQueryQueueManagerTest method simpleEnqueueDequeueThenBlock.

@Test
public void simpleEnqueueDequeueThenBlock() throws Exception {
    SimpleDoneQueueManager<Query, Void> sdqqm = new SimpleDoneQueueManager<Query, Void>();
    sdqqm.setup(null);
    sdqqm.beginWindow(0);
    Query query = new MockQuery("1");
    sdqqm.enqueue(query, null, new MutableBoolean(false));
    Assert.assertEquals(1, sdqqm.getNumLeft());
    Assert.assertEquals(sdqqm.getNumPermits(), sdqqm.getNumLeft());
    QueryBundle<Query, Void, MutableBoolean> qb = sdqqm.dequeueBlock();
    Assert.assertEquals(0, sdqqm.getNumLeft());
    Assert.assertEquals(sdqqm.getNumPermits(), sdqqm.getNumLeft());
    testBlocking(sdqqm);
    sdqqm.endWindow();
    sdqqm.teardown();
}
Also used : Query(org.apache.apex.malhar.lib.appdata.schemas.Query) MutableBoolean(org.apache.commons.lang3.mutable.MutableBoolean) Test(org.junit.Test)

Aggregations

Query (org.apache.apex.malhar.lib.appdata.schemas.Query)19 Test (org.junit.Test)19 MutableBoolean (org.apache.commons.lang3.mutable.MutableBoolean)11 MutableLong (org.apache.commons.lang3.mutable.MutableLong)6 ExceptionSaverExceptionHandler (org.apache.apex.malhar.lib.appdata.ThreadUtils.ExceptionSaverExceptionHandler)1 Result (org.apache.apex.malhar.lib.appdata.schemas.Result)1