package com.netflix.suro.sink.elasticsearch;
import com.google.common.collect.ImmutableMap;
import org.joda.time.DateTime;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class TestTimestampField {
@Test
public void shouldNullFormatReturnsLongTS() {
TimestampField field = new TimestampField("ts", null);
long ts = System.currentTimeMillis();
assertEquals(
field.get(
new ImmutableMap.Builder<String, Object>()
.put("ts", ts)
.put("field1", "value1").build()),
ts);
assertEquals(
field.get(
new ImmutableMap.Builder<String, Object>()
.put("ts", "2014-04-05T00:00:00.000Z")
.put("field1", "value1").build()),
new DateTime("2014-04-05T00:00:00.000Z").getMillis());
}
@Test(expected=IllegalArgumentException.class)
public void shouldNonNullFormatThrowsException() {
TimestampField field = new TimestampField("ts", "YYYY-MM-DD");
long ts = System.currentTimeMillis();
assertEquals(
field.get(
new ImmutableMap.Builder<String, Object>()
.put("ts", ts)
.put("field1", "value1").build()),
ts);
field.get(
new ImmutableMap.Builder<String, Object>()
.put("ts", "2014-04-05T00:00:00.000Z")
.put("field1", "value1").build());
}
@Test
public void testFormat() {
TimestampField field = new TimestampField("ts", "EEE MMM dd HH:mm:ss zzz YYYY");
assertEquals(
field.get(new ImmutableMap.Builder<String, Object>()
.put("ts", "Fri Oct 03 18:25:08 GMT 2014")
.put("field1", "value1").build()),
new DateTime("2014-10-03T18:25:08.000Z").getMillis());
}
@Test
public void testFormat2() {
TimestampField field = new TimestampField("ts", "YYYY-MM-dd HH:mm:ss.SSS");
assertEquals(
field.get(new ImmutableMap.Builder<String, Object>()
.put("ts", "2014-10-17 19:53:26.001")
.put("field1", "value1").build()),
new DateTime("2014-10-17T19:53:26.001Z").getMillis());
}
}