Skip to content

Commit d6e82bd

Browse files
committed
added unit tests
1 parent d9d64f9 commit d6e82bd

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

test/framework/src/main/java/org/elasticsearch/index/mapper/AbstractScriptFieldTypeTestCase.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@
5555
import static org.mockito.ArgumentMatchers.any;
5656
import static org.mockito.ArgumentMatchers.anyString;
5757
import static org.mockito.Mockito.mock;
58+
import static org.mockito.Mockito.never;
59+
import static org.mockito.Mockito.times;
60+
import static org.mockito.Mockito.verify;
5861
import static org.mockito.Mockito.when;
5962

6063
public abstract class AbstractScriptFieldTypeTestCase extends MapperServiceTestCase {
@@ -420,6 +423,43 @@ public final void testCacheable() throws IOException {
420423
}
421424
}
422425

426+
public final void testIsParsedFromSource() throws IOException {
427+
XContentBuilder mapping = runtimeMapping(b -> {
428+
b.startObject("field")
429+
.field("type", typeName())
430+
.startObject("script")
431+
.field("source", "dummy_source")
432+
.field("lang", "test")
433+
.endObject()
434+
.endObject()
435+
.startObject("field_source")
436+
.field("type", typeName())
437+
.startObject("script")
438+
.field("source", "deterministic_source")
439+
.field("lang", "test")
440+
.endObject()
441+
.endObject();
442+
});
443+
MapperService mapperService = createMapperService(mapping);
444+
SearchExecutionContext c = createSearchExecutionContext(mapperService);
445+
{
446+
var fieldType = (AbstractScriptFieldType) c.getFieldType("field_source");
447+
SearchLookup searchLookup = mock(SearchLookup.class);
448+
when(searchLookup.optimizedSourceProvider(any())).thenReturn(searchLookup);
449+
var result = fieldType.leafFactory(searchLookup);
450+
assertNotNull(result);
451+
verify(searchLookup, times(1)).optimizedSourceProvider(any());
452+
}
453+
{
454+
var fieldType = (AbstractScriptFieldType) c.getFieldType("field");
455+
SearchLookup searchLookup = mock(SearchLookup.class);
456+
when(searchLookup.optimizedSourceProvider(any())).thenReturn(searchLookup);
457+
var result = fieldType.leafFactory(searchLookup);
458+
assertNotNull(result);
459+
verify(searchLookup, never()).optimizedSourceProvider(any());
460+
}
461+
}
462+
423463
protected final List<Object> blockLoaderReadValuesFromColumnAtATimeReader(DirectoryReader reader, MappedFieldType fieldType, int offset)
424464
throws IOException {
425465
BlockLoader loader = fieldType.blockLoader(blContext());

0 commit comments

Comments
 (0)