Search in sources :

Example 6 with Subscriber

use of com.datatorrent.bufferserver.support.Subscriber in project apex-core by apache.

the class ServerTest method testReset.

@Test(dependsOnMethods = { "testRepublishLowerWindow" })
@SuppressWarnings("SleepWhileInLoop")
public void testReset() throws InterruptedException {
    bsc = new Controller("MyController");
    eventloopClient.connect(address, bsc);
    bsc.reset(null, "MyPublisher", 0x7afebabe00000001L);
    for (int i = 0; i < spinCount * 2; i++) {
        Thread.sleep(10);
        if (bsc.data != null) {
            break;
        }
    }
    eventloopClient.disconnect(bsc);
    assertNotNull(bsc.data);
    bss = new Subscriber("MySubscriber");
    eventloopClient.connect(address, bss);
    bss.activate(null, "BufferServerOutput/BufferServerSubscriber", "MyPublisher", 0, null, 0L, 0);
    for (int i = 0; i < spinCount; i++) {
        Thread.sleep(10);
        if (bss.tupleCount.get() > 0) {
            break;
        }
    }
    eventloopClient.disconnect(bss);
    assertEquals(bss.tupleCount.get(), 0);
}
Also used : Subscriber(com.datatorrent.bufferserver.support.Subscriber) Controller(com.datatorrent.bufferserver.support.Controller) Test(org.testng.annotations.Test)

Example 7 with Subscriber

use of com.datatorrent.bufferserver.support.Subscriber in project apex-core by apache.

the class ServerTest method testRepublishLowerWindow.

@Test(dependsOnMethods = { "testRepublish" })
@SuppressWarnings("SleepWhileInLoop")
public void testRepublishLowerWindow() throws InterruptedException {
    bsp = new Publisher("MyPublisher");
    eventloopClient.connect(address, bsp);
    bsp.activate(null, 10, 0);
    long windowId = 0L;
    bsp.publishMessage(BeginWindowTuple.getSerializedTuple((int) windowId));
    for (int i = 0; i < 2; i++) {
        byte[] buff = PayloadTuple.getSerializedTuple(0, 1);
        buff[buff.length - 1] = (byte) i;
        bsp.publishMessage(buff);
    }
    bsp.publishMessage(EndWindowTuple.getSerializedTuple((int) windowId));
    windowId++;
    bsp.publishMessage(BeginWindowTuple.getSerializedTuple((int) windowId));
    for (int i = 0; i < 2; i++) {
        byte[] buff = PayloadTuple.getSerializedTuple(0, 1);
        buff[buff.length - 1] = (byte) i;
        bsp.publishMessage(buff);
    }
    bsp.publishMessage(EndWindowTuple.getSerializedTuple((int) windowId));
    eventloopClient.disconnect(bsp);
    bss = new Subscriber("MyPublisher");
    eventloopClient.connect(address, bss);
    bss.activate(null, "BufferServerOutput/BufferServerSubscriber", "MyPublisher", 0, null, 0L, 0);
    for (int i = 0; i < spinCount; i++) {
        Thread.sleep(10);
        if (bss.tupleCount.get() == 8) {
            break;
        }
    }
    // wait some more to receive more tuples if possible
    Thread.sleep(10);
    eventloopClient.disconnect(bss);
    assertEquals(bss.tupleCount.get(), 8);
}
Also used : Subscriber(com.datatorrent.bufferserver.support.Subscriber) Publisher(com.datatorrent.bufferserver.support.Publisher) Test(org.testng.annotations.Test)

Example 8 with Subscriber

use of com.datatorrent.bufferserver.support.Subscriber in project apex-core by apache.

the class ServerTest method testPurgeSome.

@Test(dependsOnMethods = { "testPurgeNonExistent" })
@SuppressWarnings("SleepWhileInLoop")
public void testPurgeSome() throws InterruptedException {
    bsc = new Controller("MyController");
    eventloopClient.connect(address, bsc);
    bsc.purge(null, "MyPublisher", 0x7afebabe00000000L);
    for (int i = 0; i < spinCount; i++) {
        Thread.sleep(10);
        if (bsc.data != null) {
            break;
        }
    }
    eventloopClient.disconnect(bsc);
    assertNotNull(bsc.data);
    bss = new Subscriber("MyPublisher");
    eventloopClient.connect(address, bss);
    bss.activate(null, "BufferServerOutput/BufferServerSubscriber", "MyPublisher", 0, null, 0L, 0);
    for (int i = 0; i < spinCount; i++) {
        Thread.sleep(10);
        if (bss.tupleCount.get() == 103) {
            break;
        }
    }
    eventloopClient.disconnect(bss);
    assertEquals(bss.tupleCount.get(), 103);
}
Also used : Subscriber(com.datatorrent.bufferserver.support.Subscriber) Controller(com.datatorrent.bufferserver.support.Controller) Test(org.testng.annotations.Test)

Example 9 with Subscriber

use of com.datatorrent.bufferserver.support.Subscriber in project apex-core by apache.

the class ServerTest method testNoPublishNoSubscribe.

@Test
public void testNoPublishNoSubscribe() throws InterruptedException {
    bsp = new Publisher("MyPublisher");
    eventloopClient.connect(address, bsp);
    bss = new Subscriber("MySubscriber");
    eventloopClient.connect(address, bss);
    bsp.activate(null, 0L);
    bss.activate(null, "BufferServerOutput/BufferServerSubscriber", "MyPublisher", 0, null, 0L, 0);
    synchronized (this) {
        wait(100);
    }
    eventloopClient.disconnect(bss);
    eventloopClient.disconnect(bsp);
    assertEquals(bss.tupleCount.get(), 0);
}
Also used : Subscriber(com.datatorrent.bufferserver.support.Subscriber) Publisher(com.datatorrent.bufferserver.support.Publisher) Test(org.testng.annotations.Test)

Example 10 with Subscriber

use of com.datatorrent.bufferserver.support.Subscriber in project apex-core by apache.

the class ServerTest method testAuthFailure.

@Test(dependsOnMethods = { "testAuth" })
public void testAuthFailure() throws InterruptedException {
    byte[] authToken = ServerTest.authToken.clone();
    authToken[0] = (byte) (authToken[0] + 1);
    bsp = new Publisher("MyPublisher");
    bsp.setToken(authToken);
    eventloopClient.connect(address, bsp);
    bss = new Subscriber("MySubscriber");
    bss.setToken(authToken);
    eventloopClient.connect(address, bss);
    bsp.activate(null, 0L);
    bss.activate(null, "BufferServerOutput/BufferServerSubscriber", "MyPublisher", 0, null, 0L, 0);
    long resetInfo = 0x7afebabe000000faL;
    bsp.publishMessage(ResetWindowTuple.getSerializedTuple((int) (resetInfo >> 32), 500));
    for (int i = 0; i < spinCount; i++) {
        Thread.sleep(10);
        if (!bss.resetPayloads.isEmpty()) {
            break;
        }
    }
    Thread.sleep(10);
    eventloopClient.disconnect(bss);
    eventloopClient.disconnect(bsp);
    assertEquals(bss.tupleCount.get(), 0);
    assertTrue(bss.resetPayloads.isEmpty());
}
Also used : Subscriber(com.datatorrent.bufferserver.support.Subscriber) Publisher(com.datatorrent.bufferserver.support.Publisher) Test(org.testng.annotations.Test)

Aggregations

Subscriber (com.datatorrent.bufferserver.support.Subscriber)15 Test (org.testng.annotations.Test)14 Publisher (com.datatorrent.bufferserver.support.Publisher)9 Controller (com.datatorrent.bufferserver.support.Controller)5 Server (com.datatorrent.bufferserver.server.Server)1 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)1 BeforeClass (org.testng.annotations.BeforeClass)1