5353import java .util .function .Supplier ;
5454import java .util .stream .Collectors ;
5555
56- import static org .elasticsearch .cluster .metadata .ComponentTemplateTests .randomMappings ;
5756import static org .elasticsearch .cluster .metadata .DataStream .getDefaultBackingIndexName ;
5857import static org .elasticsearch .cluster .metadata .DataStream .getDefaultFailureStoreName ;
5958import static org .elasticsearch .cluster .metadata .DataStreamTestHelper .newInstance ;
@@ -2562,9 +2561,9 @@ public void testGetEffectiveIndexTemplateNoMatchingTemplate() {
25622561 assertThrows (IllegalArgumentException .class , () -> dataStream .getEffectiveIndexTemplate (projectMetadataBuilder .build ()));
25632562 }
25642563
2565- public void testGetEffectiveIndexTemplateTemplateSettingsOnly () throws IOException {
2566- // We only have settings from the template, so the effective template will just be the original template
2567- DataStream dataStream = createDataStream (Settings .EMPTY );
2564+ public void testGetEffectiveIndexTemplateTemplateNoOverrides () throws IOException {
2565+ // We only have settings and mappings from the template, so the effective template will just be the original template
2566+ DataStream dataStream = createDataStream (Settings .EMPTY , DataStream . EMPTY_MAPPINGS );
25682567 Settings templateSettings = randomSettings ();
25692568 Template .Builder templateBuilder = Template .builder ().settings (templateSettings ).mappings (randomMappings ());
25702569 ComposableIndexTemplate indexTemplate = ComposableIndexTemplate .builder ()
@@ -2580,7 +2579,7 @@ public void testGetEffectiveIndexTemplateTemplateSettingsOnly() throws IOExcepti
25802579 public void testGetEffectiveIndexTemplateDataStreamSettingsOnly () throws IOException {
25812580 // We only have settings from the data stream, so we expect to get only those back in the effective template
25822581 Settings dataStreamSettings = randomSettings ();
2583- DataStream dataStream = createDataStream (dataStreamSettings );
2582+ DataStream dataStream = createDataStream (dataStreamSettings , DataStream . EMPTY_MAPPINGS );
25842583 Settings templateSettings = Settings .EMPTY ;
25852584 CompressedXContent templateMappings = randomMappings ();
25862585 Template .Builder templateBuilder = Template .builder ().settings (templateSettings ).mappings (templateMappings );
@@ -2607,7 +2606,7 @@ public void testGetEffectiveIndexTemplate() throws IOException {
26072606 .put ("index.setting2" , "dataStreamValue" )
26082607 .put ("index.setting3" , (String ) null ) // This one gets removed from the effective settings
26092608 .build ();
2610- DataStream dataStream = createDataStream (dataStreamSettings );
2609+ DataStream dataStream = createDataStream (dataStreamSettings , DataStream . EMPTY_MAPPINGS );
26112610 Settings templateSettings = Settings .builder ()
26122611 .put ("index.setting1" , "templateValue" )
26132612 .put ("index.setting3" , "templateValue" )
@@ -2636,11 +2635,30 @@ public void testGetEffectiveIndexTemplate() throws IOException {
26362635 assertThat (dataStream .getEffectiveIndexTemplate (projectMetadataBuilder .build ()), equalTo (expectedEffectiveTemplate ));
26372636 }
26382637
2638+ private static CompressedXContent randomMappings () {
2639+ try {
2640+ return new CompressedXContent ("{\" _doc\" : {\" properties\" :{\" " + randomAlphaOfLength (5 ) + "\" :{\" type\" :\" keyword\" }}}}" );
2641+ } catch (IOException e ) {
2642+ fail ("got an IO exception creating fake mappings: " + e );
2643+ return null ;
2644+ }
2645+ }
2646+
26392647 private DataStream createDataStream (Settings settings ) {
26402648 DataStream dataStream = createTestInstance ();
26412649 return dataStream .copy ().setSettings (settings ).build ();
26422650 }
26432651
2652+ private DataStream createDataStream (CompressedXContent mappings ) {
2653+ DataStream dataStream = createTestInstance ();
2654+ return dataStream .copy ().setMappings (mappings ).build ();
2655+ }
2656+
2657+ private DataStream createDataStream (Settings settings , CompressedXContent mappings ) {
2658+ DataStream dataStream = createTestInstance ();
2659+ return dataStream .copy ().setSettings (settings ).setMappings (mappings ).build ();
2660+ }
2661+
26442662 private record DataStreamMetadata (Long creationTimeInMillis , Long rolloverTimeInMillis , Long originationTimeInMillis ) {
26452663 public static DataStreamMetadata dataStreamMetadata (Long creationTimeInMillis , Long rolloverTimeInMillis ) {
26462664 return new DataStreamMetadata (creationTimeInMillis , rolloverTimeInMillis , null );
0 commit comments