package org.smartly.commons.network.socket.messages.multipart;
import org.junit.Test;
import static org.junit.Assert.assertTrue;
/**
*
*/
public class MultipartPoolTest {
@Test
public void testMain() throws Exception {
final MultipartPool pool = new MultipartPool(1000);
this.handleEvents(pool);
final MultipartMessagePart part1 = new MultipartMessagePart();
part1.setUid("FULL-PART");
part1.setInfo(new MultipartInfo("FULL", MultipartInfo.MultipartInfoType.File,
MultipartInfo.MultipartInfoDirection.Upload, "chunk_01", 0, 0, 2));
final MultipartMessagePart part2 = new MultipartMessagePart();
part2.setUid("FULL-PART");
part2.setInfo(new MultipartInfo("FULL", MultipartInfo.MultipartInfoType.File,
MultipartInfo.MultipartInfoDirection.Upload, "chunk_02", 0, 1, 2));
pool.add(part1);
pool.add(part2);
System.out.println("ITEMS in POOL: " + pool.size());
Thread.sleep(1000);
System.out.println("ITEMS in POOL: " + pool.size());
//-- time out --//
System.out.println("Testing timeout.... ");
final MultipartMessagePart part3 = new MultipartMessagePart();
part3.setUid("INCOMPLETE-PART");
part3.setInfo(new MultipartInfo("INCOMPLETE", MultipartInfo.MultipartInfoType.File,
MultipartInfo.MultipartInfoDirection.Upload, "chunk_01", 0, 0, 2));
pool.add(part3);
System.out.println("ITEMS in POOL: " + pool.size());
System.out.println("Wait 3 seconds....");
Thread.sleep(3000);
System.out.println("ITEMS in POOL: " + pool.size());
assertTrue(pool.size() == 0);
}
private void handleEvents(final MultipartPool pool) {
// handle
pool.onFull(new Multipart.OnFullListener() {
@Override
public void handle(Multipart sender) {
System.out.println("FULL: " + sender.toString());
}
});
// handle timeout
pool.onTimeOut(new Multipart.OnTimeOutListener() {
@Override
public void handle(Multipart sender) {
System.out.println("TIME OUT: " + sender.toString());
}
});
}
}