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);
}
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);
}
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);
}
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);
}
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());
}
Aggregations