package com.cloudera.flume.handlers.hdfs;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import com.cloudera.flume.core.Event.Priority;
import com.cloudera.flume.core.EventImpl;
import com.cloudera.util.Clock;
import com.cloudera.util.NetUtils;
@Test
String s = "this is a test string";
WriteableEvent e = new WriteableEvent(new EventImpl(s.getBytes()));
ByteArrayOutputStream bas = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(bas);
e.write(out);
out.flush();
byte[] stuff = bas.toByteArray();
WriteableEvent e2 = WriteableEvent.createWriteableEvent(stuff);
Assert.assertEquals(e.getTimestamp(), e2.getTimestamp());
Assert.assertEquals(e.getPriority(), e2.getPriority());
Assert.assertTrue(Arrays.equals(e.getBody(), e2.getBody()));
}
@Test
String s = "this is a test string";
Map<String, byte[]> fields = new HashMap<String, byte[]>();
byte[] data = { 'd', 'a', 't', 'a' };
fields.put("test", data);
WriteableEvent e = new WriteableEvent(
new EventImpl(s.getBytes(), Clock.unixTime(), Priority.INFO, Clock
.nanos(), NetUtils.localhost(), fields));
ByteArrayOutputStream bas = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(bas);
e.write(out);
out.flush();
byte[] stuff = bas.toByteArray();
WriteableEvent e2 = WriteableEvent.createWriteableEvent(stuff);
Assert.assertEquals(e.getTimestamp(), e2.getTimestamp());
Assert.assertEquals(e.getPriority(), e2.getPriority());
Assert.assertTrue(Arrays.equals(e.getBody(), e2.getBody()));
byte[] data2 = e2.get("test");
Assert.assertTrue(Arrays.equals(data, data2));
}
@Test
String s = "this is a test string";
Map<String, byte[]> fields = new HashMap<String, byte[]>();
byte[] data = { 'd', 'a', 't', 'a' };
fields.put("test", data);
String val = "more data, with longer value";
fields.put("moredata", val.getBytes());
WriteableEvent e = new WriteableEvent(
new EventImpl(s.getBytes(), Clock.unixTime(), Priority.INFO, Clock
.nanos(), NetUtils.localhost(), fields));
ByteArrayOutputStream bas = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(bas);
e.write(out);
out.flush();
byte[] stuff = bas.toByteArray();
WriteableEvent e2 = WriteableEvent.createWriteableEvent(stuff);
Assert.assertEquals(e.getTimestamp(), e2.getTimestamp());
Assert.assertEquals(e.getPriority(), e2.getPriority());
Assert.assertTrue(Arrays.equals(e.getBody(), e2.getBody()));
byte[] data2 = e2.get("test");
Assert.assertTrue(Arrays.equals(data, data2));
Assert.assertTrue(val.equals(new String(e2.get("moredata"))));
}
}