|
13 | 13 | import java.util.Arrays;
|
14 | 14 |
|
15 | 15 | import static org.hamcrest.Matchers.equalTo;
|
| 16 | +import static org.hamcrest.Matchers.startsWith; |
16 | 17 |
|
17 | 18 | public class ExtractedFieldTests extends ESTestCase {
|
18 | 19 |
|
@@ -96,11 +97,32 @@ public void testNewTimeFieldGivenSource() {
|
96 | 97 | }
|
97 | 98 |
|
98 | 99 | public void testValueGivenTimeField() {
|
99 |
| - SearchHit hit = new SearchHitBuilder(42).addField("time", new DateTime(123456789L)).build(); |
| 100 | + final long millis = randomLong(); |
| 101 | + final SearchHit hit = new SearchHitBuilder(randomInt()).addField("time", new DateTime(millis)).build(); |
| 102 | + final ExtractedField timeField = ExtractedField.newTimeField("time", ExtractedField.ExtractionMethod.DOC_VALUE); |
| 103 | + assertThat(timeField.value(hit), equalTo(new Object[] { millis })); |
| 104 | + } |
| 105 | + |
| 106 | + public void testValueGivenStringTimeField() { |
| 107 | + final long millis = randomLong(); |
| 108 | + final SearchHit hit = new SearchHitBuilder(randomInt()).addField("time", Long.toString(millis)).build(); |
| 109 | + final ExtractedField timeField = ExtractedField.newTimeField("time", ExtractedField.ExtractionMethod.DOC_VALUE); |
| 110 | + assertThat(timeField.value(hit), equalTo(new Object[] { millis })); |
| 111 | + } |
100 | 112 |
|
101 |
| - ExtractedField timeField = ExtractedField.newTimeField("time", ExtractedField.ExtractionMethod.DOC_VALUE); |
| 113 | + public void testValueGivenPre6xTimeField() { |
| 114 | + // Prior to 6.x, timestamps were simply `long` milliseconds-past-the-epoch values |
| 115 | + final long millis = randomLong(); |
| 116 | + final SearchHit hit = new SearchHitBuilder(randomInt()).addField("time", millis).build(); |
| 117 | + final ExtractedField timeField = ExtractedField.newTimeField("time", ExtractedField.ExtractionMethod.DOC_VALUE); |
| 118 | + assertThat(timeField.value(hit), equalTo(new Object[] { millis })); |
| 119 | + } |
102 | 120 |
|
103 |
| - assertThat(timeField.value(hit), equalTo(new Object[] { 123456789L })); |
| 121 | + public void testValueGivenUnknownFormatTimeField() { |
| 122 | + final SearchHit hit = new SearchHitBuilder(randomInt()).addField("time", new Object()).build(); |
| 123 | + final ExtractedField timeField = ExtractedField.newTimeField("time", ExtractedField.ExtractionMethod.DOC_VALUE); |
| 124 | + assertThat(expectThrows(IllegalStateException.class, () -> timeField.value(hit)).getMessage(), |
| 125 | + startsWith("Unexpected value for a time field")); |
104 | 126 | }
|
105 | 127 |
|
106 | 128 | public void testAliasVersusName() {
|
|
0 commit comments