@@ -62,6 +62,7 @@ public class IngestDocumentTests extends OpenSearchTestCase {
6262
6363 private static final ZonedDateTime BOGUS_TIMESTAMP = ZonedDateTime .of (2016 , 10 , 23 , 0 , 0 , 0 , 0 , ZoneOffset .UTC );
6464 private IngestDocument ingestDocument ;
65+ private int initialSourceAndMetadataSize ;
6566
6667 @ Before
6768 public void setTestIngestDocument () {
@@ -70,7 +71,6 @@ public void setTestIngestDocument() {
7071 ingestMap .put ("timestamp" , BOGUS_TIMESTAMP );
7172 document .put ("_ingest" , ingestMap );
7273 document .put ("foo" , "bar" );
73- document .put ("int" , 123 );
7474 Map <String , Object > innerObject = new HashMap <>();
7575 innerObject .put ("buzz" , "hello world" );
7676 innerObject .put ("foo_null" , null );
@@ -92,7 +92,17 @@ public void setTestIngestDocument() {
9292 list2 .add ("bar" );
9393 list2 .add ("baz" );
9494 document .put ("list2" , list2 );
95+ document .put ("byte" , (byte ) 1 );
96+ document .put ("short" , (short ) 2 );
97+ document .put ("int" , Integer .MAX_VALUE );
98+ document .put ("long" , Long .MAX_VALUE );
99+ document .put ("float" , 0.1f );
100+ document .put ("double" , 0.1d );
101+ document .put ("char" , 'a' );
102+ document .put ("string" , "A test string \uD83C \uDF89 " );
103+ document .put ("datetime" , ZonedDateTime .parse ("2007-12-03T10:15:30+01:00[Europe/Paris]" ));
95104 ingestDocument = new IngestDocument ("index" , "id" , null , null , null , document );
105+ initialSourceAndMetadataSize = 16 ; // i.e. ingestDocument.getSourceAndMetadata().size()
96106 }
97107
98108 public void testSelfReferencingSource () {
@@ -101,11 +111,18 @@ public void testSelfReferencingSource() {
101111 expectThrows (IllegalArgumentException .class , () -> IngestDocument .deepCopyMap (value ));
102112 }
103113
114+ public void testCopy () {
115+ final IngestDocument copy = new IngestDocument (ingestDocument );
116+ assertThat (copy , equalTo (ingestDocument ));
117+ assertThat (copy .getSourceAndMetadata (), not (sameInstance (ingestDocument .getSourceAndMetadata ())));
118+ assertThat (copy .getIngestMetadata (), not (sameInstance (ingestDocument .getIngestMetadata ())));
119+ }
120+
104121 public void testSimpleGetFieldValue () {
105122 assertThat (ingestDocument .getFieldValue ("foo" , String .class ), equalTo ("bar" ));
106- assertThat (ingestDocument .getFieldValue ("int" , Integer .class ), equalTo (123 ));
123+ assertThat (ingestDocument .getFieldValue ("int" , Integer .class ), equalTo (Integer . MAX_VALUE ));
107124 assertThat (ingestDocument .getFieldValue ("_source.foo" , String .class ), equalTo ("bar" ));
108- assertThat (ingestDocument .getFieldValue ("_source.int" , Integer .class ), equalTo (123 ));
125+ assertThat (ingestDocument .getFieldValue ("_source.int" , Integer .class ), equalTo (Integer . MAX_VALUE ));
109126 assertThat (ingestDocument .getFieldValue ("_index" , String .class ), equalTo ("index" ));
110127 assertThat (ingestDocument .getFieldValue ("_id" , String .class ), equalTo ("id" ));
111128 assertThat (
@@ -578,7 +595,7 @@ public void testAppendFieldValueConvertIntegerToList() {
578595 @ SuppressWarnings ("unchecked" )
579596 List <Object > list = (List <Object >) object ;
580597 assertThat (list .size (), equalTo (2 ));
581- assertThat (list .get (0 ), equalTo (123 ));
598+ assertThat (list .get (0 ), equalTo (Integer . MAX_VALUE ));
582599 assertThat (list .get (1 ), equalTo (456 ));
583600 }
584601
@@ -589,7 +606,7 @@ public void testAppendFieldValuesConvertIntegerToList() {
589606 @ SuppressWarnings ("unchecked" )
590607 List <Object > list = (List <Object >) object ;
591608 assertThat (list .size (), equalTo (3 ));
592- assertThat (list .get (0 ), equalTo (123 ));
609+ assertThat (list .get (0 ), equalTo (Integer . MAX_VALUE ));
593610 assertThat (list .get (1 ), equalTo (456 ));
594611 assertThat (list .get (2 ), equalTo (789 ));
595612 }
@@ -812,23 +829,23 @@ public void testSetFieldValueEmptyName() {
812829
813830 public void testRemoveField () {
814831 ingestDocument .removeField ("foo" );
815- assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (7 ));
832+ assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (initialSourceAndMetadataSize - 1 ));
816833 assertThat (ingestDocument .getSourceAndMetadata ().containsKey ("foo" ), equalTo (false ));
817834 ingestDocument .removeField ("_index" );
818- assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (6 ));
835+ assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (initialSourceAndMetadataSize - 2 ));
819836 assertThat (ingestDocument .getSourceAndMetadata ().containsKey ("_index" ), equalTo (false ));
820837 ingestDocument .removeField ("_source.fizz" );
821- assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (5 ));
838+ assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (initialSourceAndMetadataSize - 3 ));
822839 assertThat (ingestDocument .getSourceAndMetadata ().containsKey ("fizz" ), equalTo (false ));
823840 assertThat (ingestDocument .getIngestMetadata ().size (), equalTo (1 ));
824841 ingestDocument .removeField ("_ingest.timestamp" );
825- assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (5 ));
842+ assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (initialSourceAndMetadataSize - 3 ));
826843 assertThat (ingestDocument .getIngestMetadata ().size (), equalTo (0 ));
827844 }
828845
829846 public void testRemoveInnerField () {
830847 ingestDocument .removeField ("fizz.buzz" );
831- assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (8 ));
848+ assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (initialSourceAndMetadataSize ));
832849 assertThat (ingestDocument .getSourceAndMetadata ().get ("fizz" ), instanceOf (Map .class ));
833850 @ SuppressWarnings ("unchecked" )
834851 Map <String , Object > map = (Map <String , Object >) ingestDocument .getSourceAndMetadata ().get ("fizz" );
@@ -837,17 +854,17 @@ public void testRemoveInnerField() {
837854
838855 ingestDocument .removeField ("fizz.foo_null" );
839856 assertThat (map .size (), equalTo (2 ));
840- assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (8 ));
857+ assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (initialSourceAndMetadataSize ));
841858 assertThat (ingestDocument .getSourceAndMetadata ().containsKey ("fizz" ), equalTo (true ));
842859
843860 ingestDocument .removeField ("fizz.1" );
844861 assertThat (map .size (), equalTo (1 ));
845- assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (8 ));
862+ assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (initialSourceAndMetadataSize ));
846863 assertThat (ingestDocument .getSourceAndMetadata ().containsKey ("fizz" ), equalTo (true ));
847864
848865 ingestDocument .removeField ("fizz.list" );
849866 assertThat (map .size (), equalTo (0 ));
850- assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (8 ));
867+ assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (initialSourceAndMetadataSize ));
851868 assertThat (ingestDocument .getSourceAndMetadata ().containsKey ("fizz" ), equalTo (true ));
852869 }
853870
@@ -883,7 +900,7 @@ public void testRemoveSourceObject() {
883900
884901 public void testRemoveIngestObject () {
885902 ingestDocument .removeField ("_ingest" );
886- assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (7 ));
903+ assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (initialSourceAndMetadataSize - 1 ));
887904 assertThat (ingestDocument .getSourceAndMetadata ().containsKey ("_ingest" ), equalTo (false ));
888905 }
889906
@@ -905,7 +922,7 @@ public void testRemoveEmptyPathAfterStrippingOutPrefix() {
905922
906923 public void testListRemoveField () {
907924 ingestDocument .removeField ("list.0.field" );
908- assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (8 ));
925+ assertThat (ingestDocument .getSourceAndMetadata ().size (), equalTo (initialSourceAndMetadataSize ));
909926 assertThat (ingestDocument .getSourceAndMetadata ().containsKey ("list" ), equalTo (true ));
910927 Object object = ingestDocument .getSourceAndMetadata ().get ("list" );
911928 assertThat (object , instanceOf (List .class ));
0 commit comments