Skip to content

Commit f0cbd46

Browse files
committed
avoid mock
1 parent ed57e42 commit f0cbd46

File tree

1 file changed

+55
-2
lines changed

1 file changed

+55
-2
lines changed

test/external-modules/error-query/src/main/java/org/elasticsearch/test/errorquery/ErrorQueryPlugin.java

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,74 @@
99

1010
package org.elasticsearch.test.errorquery;
1111

12+
import org.elasticsearch.common.settings.Settings;
13+
import org.elasticsearch.index.mapper.OnScriptError;
14+
import org.elasticsearch.plugins.Plugin;
15+
import org.elasticsearch.plugins.ScriptPlugin;
1216
import org.elasticsearch.plugins.SearchPlugin;
13-
import org.elasticsearch.test.FailingFieldPlugin;
17+
import org.elasticsearch.script.LongFieldScript;
18+
import org.elasticsearch.script.ScriptContext;
19+
import org.elasticsearch.script.ScriptEngine;
20+
import org.elasticsearch.search.lookup.SearchLookup;
1421

22+
import java.util.Collection;
1523
import java.util.List;
24+
import java.util.Map;
25+
import java.util.Set;
1626

1727
import static java.util.Collections.singletonList;
1828

1929
/**
2030
* Test plugin that exposes a way to simulate search shard failures and warnings.
2131
*/
22-
public class ErrorQueryPlugin extends FailingFieldPlugin implements SearchPlugin {
32+
public class ErrorQueryPlugin extends Plugin implements SearchPlugin, ScriptPlugin {
2333
public ErrorQueryPlugin() {}
2434

2535
@Override
2636
public List<QuerySpec<?>> getQueries() {
2737
return singletonList(new QuerySpec<>(ErrorQueryBuilder.NAME, ErrorQueryBuilder::new, p -> ErrorQueryBuilder.PARSER.parse(p, null)));
2838
}
39+
40+
public static final String FAILING_FIELD_LANG = "failing_field";
41+
42+
@Override
43+
public ScriptEngine getScriptEngine(Settings settings, Collection<ScriptContext<?>> contexts) {
44+
return new ScriptEngine() {
45+
@Override
46+
public String getType() {
47+
return FAILING_FIELD_LANG;
48+
}
49+
50+
@Override
51+
@SuppressWarnings("unchecked")
52+
public <FactoryType> FactoryType compile(
53+
String name,
54+
String code,
55+
ScriptContext<FactoryType> context,
56+
Map<String, String> params
57+
) {
58+
return (FactoryType) new LongFieldScript.Factory() {
59+
@Override
60+
public LongFieldScript.LeafFactory newFactory(
61+
String fieldName,
62+
Map<String, Object> params,
63+
SearchLookup searchLookup,
64+
OnScriptError onScriptError
65+
) {
66+
return ctx -> new LongFieldScript(fieldName, params, searchLookup, onScriptError, ctx) {
67+
@Override
68+
public void execute() {
69+
throw new IllegalStateException("Accessing failing field");
70+
}
71+
};
72+
}
73+
};
74+
}
75+
76+
@Override
77+
public Set<ScriptContext<?>> getSupportedContexts() {
78+
return Set.of(LongFieldScript.CONTEXT);
79+
}
80+
};
81+
}
2982
}

0 commit comments

Comments
 (0)