package com.telenav.logshed.collector.muxdemux;
import java.io.File;
import java.io.IOException;
import java.util.Calendar;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import junit.framework.Assert;
import junit.framework.TestCase;
import org.junit.Test;
public class MuxDemuxRunnableTest extends TestCase
{
private final static String APPID = "test";
@Test
public void test()
{
File dir = new File(MuxDemuxRunnable.COLLECTOR_LOCATION);
int expected = -1;
String files[] = dir.list();
for (String f : files)
{
try
{
MuxDemuxValidate
.validateCollectorsFile(dir.getAbsolutePath().concat("/").concat(f));
expected = 0;
}
catch (IOException e)
{
Assert.assertEquals("Failed to validate collector files: " + e.getMessage(), 0, expected);
e.printStackTrace();
}
}
Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR_OF_DAY, -1);
ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
service.execute(new MuxDemuxRunnable(APPID));
expected = -1;
try
{
Thread.sleep((int) (1 * 60 * 1000)); // 1min
expected = 0;
}
catch (Exception e)
{
Assert.assertEquals("Failed to validate collector files: " + e.getMessage(), 0, expected);
e.printStackTrace();
}
finally
{
service.shutdown();
}
expected = -1;
try
{
MuxDemuxValidate.validateMuxDemuxFile(APPID, cal.getTimeInMillis());
expected = 0;
}
catch (Exception e)
{
Assert.assertEquals("Failed to validate mux demux file: " + e.getMessage(), 0, expected);
}
}
}