Cleaned up the use of execution context mocking in the tests

Added helper methods in `AlertsTestUtils` to mock `ExecutionContext` and create a simple payload

Original commit: elastic/x-pack-elasticsearch@eac6b63e62
This commit is contained in:
uboness 2015-03-04 10:37:38 +01:00
parent 4874fa2f1b
commit f5c48576bc
7 changed files with 38 additions and 91 deletions

View File

@ -6,7 +6,6 @@
package org.elasticsearch.alerts.actions.email; package org.elasticsearch.alerts.actions.email;
import com.carrotsearch.randomizedtesting.annotations.Repeat; import com.carrotsearch.randomizedtesting.annotations.Repeat;
import org.elasticsearch.alerts.Alert;
import org.elasticsearch.alerts.ExecutionContext; import org.elasticsearch.alerts.ExecutionContext;
import org.elasticsearch.alerts.Payload; import org.elasticsearch.alerts.Payload;
import org.elasticsearch.alerts.actions.ActionSettingsException; import org.elasticsearch.alerts.actions.ActionSettingsException;
@ -31,6 +30,7 @@ import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import static org.elasticsearch.alerts.test.AlertsTestUtils.mockExecutionContext;
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
import static org.hamcrest.Matchers.*; import static org.hamcrest.Matchers.*;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
@ -79,17 +79,11 @@ public class EmailActionTests extends ElasticsearchTestCase {
} }
}; };
DateTime now = new DateTime(DateTimeZone.UTC); DateTime now = DateTime.now(DateTimeZone.UTC);
String ctxId = randomAsciiOfLength(5); String ctxId = randomAsciiOfLength(5);
ExecutionContext ctx = mock(ExecutionContext.class); ExecutionContext ctx = mockExecutionContext(now, now, "alert1", payload);
when(ctx.id()).thenReturn(ctxId); when(ctx.id()).thenReturn(ctxId);
Alert alert = mock(Alert.class);
when(alert.name()).thenReturn("alert1");
when(ctx.alert()).thenReturn(alert);
when(ctx.fireTime()).thenReturn(now);
when(ctx.scheduledTime()).thenReturn(now);
when(ctx.payload()).thenReturn(payload);
if (transform != null) { if (transform != null) {
Transform.Result transformResult = mock(Transform.Result.class); Transform.Result transformResult = mock(Transform.Result.class);
when(transformResult.type()).thenReturn("_transform_type"); when(transformResult.type()).thenReturn("_transform_type");

View File

@ -37,6 +37,7 @@ import java.io.IOException;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import static org.elasticsearch.alerts.test.AlertsTestUtils.mockExecutionContext;
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
@ -62,13 +63,7 @@ public class ScriptConditionTests extends ElasticsearchTestCase {
ScriptServiceProxy scriptService = getScriptServiceProxy(tp); ScriptServiceProxy scriptService = getScriptServiceProxy(tp);
ScriptCondition condition = new ScriptCondition(logger, scriptService, new Script("ctx.payload.hits.total > 1")); ScriptCondition condition = new ScriptCondition(logger, scriptService, new Script("ctx.payload.hits.total > 1"));
SearchResponse response = new SearchResponse(InternalSearchResponse.empty(), "", 3, 3, 500l, new ShardSearchFailure[0]); SearchResponse response = new SearchResponse(InternalSearchResponse.empty(), "", 3, 3, 500l, new ShardSearchFailure[0]);
ExecutionContext ctx = mock(ExecutionContext.class); ExecutionContext ctx = mockExecutionContext("_name", new Payload.ActionResponse(response));
Alert alert = mock(Alert.class);
when(alert.name()).thenReturn("_name");
when(ctx.alert()).thenReturn(alert);
when(ctx.scheduledTime()).thenReturn(new DateTime());
when(ctx.fireTime()).thenReturn(new DateTime());
when(ctx.payload()).thenReturn(new Payload.ActionResponse(response));
assertFalse(condition.execute(ctx).met()); assertFalse(condition.execute(ctx).met());
} }
@ -78,13 +73,7 @@ public class ScriptConditionTests extends ElasticsearchTestCase {
Script script = new Script("ctx.payload.hits.total > threshold", ScriptService.ScriptType.INLINE, ScriptService.DEFAULT_LANG, ImmutableMap.<String, Object>of("threshold", 1)); Script script = new Script("ctx.payload.hits.total > threshold", ScriptService.ScriptType.INLINE, ScriptService.DEFAULT_LANG, ImmutableMap.<String, Object>of("threshold", 1));
ScriptCondition condition = new ScriptCondition(logger, scriptService, script); ScriptCondition condition = new ScriptCondition(logger, scriptService, script);
SearchResponse response = new SearchResponse(InternalSearchResponse.empty(), "", 3, 3, 500l, new ShardSearchFailure[0]); SearchResponse response = new SearchResponse(InternalSearchResponse.empty(), "", 3, 3, 500l, new ShardSearchFailure[0]);
ExecutionContext ctx = mock(ExecutionContext.class); ExecutionContext ctx = mockExecutionContext("_name", new Payload.ActionResponse(response));
Alert alert = mock(Alert.class);
when(alert.name()).thenReturn("_name");
when(ctx.alert()).thenReturn(alert);
when(ctx.scheduledTime()).thenReturn(new DateTime());
when(ctx.fireTime()).thenReturn(new DateTime());
when(ctx.payload()).thenReturn(new Payload.ActionResponse(response));
assertFalse(condition.execute(ctx).met()); assertFalse(condition.execute(ctx).met());
} }
@ -98,13 +87,7 @@ public class ScriptConditionTests extends ElasticsearchTestCase {
ScriptCondition condition = conditionParser.parse(parser); ScriptCondition condition = conditionParser.parse(parser);
SearchResponse response = new SearchResponse(InternalSearchResponse.empty(), "", 3, 3, 500l, new ShardSearchFailure[0]); SearchResponse response = new SearchResponse(InternalSearchResponse.empty(), "", 3, 3, 500l, new ShardSearchFailure[0]);
ExecutionContext ctx = mock(ExecutionContext.class); ExecutionContext ctx = mockExecutionContext("_name", new Payload.ActionResponse(response));
Alert alert = mock(Alert.class);
when(alert.name()).thenReturn("_name");
when(ctx.alert()).thenReturn(alert);
when(ctx.scheduledTime()).thenReturn(new DateTime());
when(ctx.fireTime()).thenReturn(new DateTime());
when(ctx.payload()).thenReturn(new Payload.ActionResponse(response));
assertFalse(condition.execute(ctx).met()); assertFalse(condition.execute(ctx).met());
@ -114,11 +97,7 @@ public class ScriptConditionTests extends ElasticsearchTestCase {
parser.nextToken(); parser.nextToken();
condition = conditionParser.parse(parser); condition = conditionParser.parse(parser);
reset(ctx); ctx = mockExecutionContext("_name", new Payload.ActionResponse(response));
when(ctx.alert()).thenReturn(alert);
when(ctx.scheduledTime()).thenReturn(new DateTime());
when(ctx.fireTime()).thenReturn(new DateTime());
when(ctx.payload()).thenReturn(new Payload.ActionResponse(response));
assertTrue(condition.execute(ctx).met()); assertTrue(condition.execute(ctx).met());
} }
@ -171,8 +150,6 @@ public class ScriptConditionTests extends ElasticsearchTestCase {
fail("expected a condition exception trying to parse an invalid condition XContent"); fail("expected a condition exception trying to parse an invalid condition XContent");
} }
private static ScriptServiceProxy getScriptServiceProxy(ThreadPool tp) { private static ScriptServiceProxy getScriptServiceProxy(ThreadPool tp) {
Settings settings = ImmutableSettings.settingsBuilder().build(); Settings settings = ImmutableSettings.settingsBuilder().build();
GroovyScriptEngineService groovyScriptEngineService = new GroovyScriptEngineService(settings); GroovyScriptEngineService groovyScriptEngineService = new GroovyScriptEngineService(settings);

View File

@ -30,6 +30,7 @@ import org.elasticsearch.alerts.support.template.ScriptTemplate;
import org.elasticsearch.alerts.support.template.Template; import org.elasticsearch.alerts.support.template.Template;
import org.elasticsearch.alerts.transform.SearchTransform; import org.elasticsearch.alerts.transform.SearchTransform;
import org.elasticsearch.common.Strings; import org.elasticsearch.common.Strings;
import org.elasticsearch.common.collect.ImmutableMap;
import org.elasticsearch.common.joda.time.DateTime; import org.elasticsearch.common.joda.time.DateTime;
import org.elasticsearch.common.logging.ESLogger; import org.elasticsearch.common.logging.ESLogger;
import org.elasticsearch.common.netty.handler.codec.http.HttpMethod; import org.elasticsearch.common.netty.handler.codec.http.HttpMethod;
@ -54,6 +55,8 @@ import static org.mockito.Mockito.when;
*/ */
public final class AlertsTestUtils { public final class AlertsTestUtils {
public static final Payload EMPTY_PAYLOAD = new Payload.Simple(ImmutableMap.<String, Object>of());
private AlertsTestUtils() { private AlertsTestUtils() {
} }
@ -77,12 +80,16 @@ public final class AlertsTestUtils {
return request; return request;
} }
public static Payload simplePayload(String key, Object value) {
return new Payload.Simple(key, value);
}
public static ExecutionContext mockExecutionContext(String alertName, Payload payload) { public static ExecutionContext mockExecutionContext(String alertName, Payload payload) {
DateTime now = DateTime.now(); DateTime now = DateTime.now();
return mockExecutionContext(now, now, alertName, payload); return mockExecutionContext(now, now, alertName, payload);
} }
public static ExecutionContext mockExecutionContext(DateTime firedTime, DateTime scheduledTime, String alertName, Payload payload) { public static ExecutionContext mockExecutionContext(DateTime scheduledTime, DateTime firedTime, String alertName, Payload payload) {
ExecutionContext ctx = mock(ExecutionContext.class); ExecutionContext ctx = mock(ExecutionContext.class);
when(ctx.scheduledTime()).thenReturn(scheduledTime); when(ctx.scheduledTime()).thenReturn(scheduledTime);
when(ctx.fireTime()).thenReturn(firedTime); when(ctx.fireTime()).thenReturn(firedTime);

View File

@ -7,11 +7,14 @@ package org.elasticsearch.alerts.throttle;
import org.elasticsearch.alerts.Alert; import org.elasticsearch.alerts.Alert;
import org.elasticsearch.alerts.ExecutionContext; import org.elasticsearch.alerts.ExecutionContext;
import org.elasticsearch.alerts.test.AlertsTestUtils;
import org.elasticsearch.common.joda.time.DateTime; import org.elasticsearch.common.joda.time.DateTime;
import org.elasticsearch.test.ElasticsearchTestCase; import org.elasticsearch.test.ElasticsearchTestCase;
import org.junit.Test; import org.junit.Test;
import static org.elasticsearch.alerts.support.AlertsDateUtils.formatDate; import static org.elasticsearch.alerts.support.AlertsDateUtils.formatDate;
import static org.elasticsearch.alerts.test.AlertsTestUtils.EMPTY_PAYLOAD;
import static org.elasticsearch.alerts.test.AlertsTestUtils.mockExecutionContext;
import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.CoreMatchers.nullValue;
import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.is;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
@ -25,14 +28,13 @@ public class AckThrottlerTests extends ElasticsearchTestCase {
@Test @Test
public void testWhenAcked() throws Exception { public void testWhenAcked() throws Exception {
DateTime timestamp = new DateTime(); DateTime timestamp = new DateTime();
ExecutionContext ctx = mock(ExecutionContext.class); ExecutionContext ctx = mockExecutionContext("_alert", EMPTY_PAYLOAD);
Alert alert = mock(Alert.class); Alert alert = ctx.alert();
Alert.Status status = mock(Alert.Status.class); Alert.Status status = mock(Alert.Status.class);
when(status.ackStatus()).thenReturn(new Alert.Status.AckStatus(Alert.Status.AckStatus.State.ACKED, timestamp)); when(status.ackStatus()).thenReturn(new Alert.Status.AckStatus(Alert.Status.AckStatus.State.ACKED, timestamp));
when(alert.status()).thenReturn(status); when(alert.status()).thenReturn(status);
when(alert.name()).thenReturn("_alert"); when(alert.name()).thenReturn("_alert");
when(alert.acked()).thenReturn(true); when(alert.acked()).thenReturn(true);
when(ctx.alert()).thenReturn(alert);
AckThrottler throttler = new AckThrottler(); AckThrottler throttler = new AckThrottler();
Throttler.Result result = throttler.throttle(ctx); Throttler.Result result = throttler.throttle(ctx);
assertThat(result.throttle(), is(true)); assertThat(result.throttle(), is(true));
@ -42,15 +44,13 @@ public class AckThrottlerTests extends ElasticsearchTestCase {
@Test @Test
public void testWhenNotAcked() throws Exception { public void testWhenNotAcked() throws Exception {
DateTime timestamp = new DateTime(); DateTime timestamp = new DateTime();
ExecutionContext ctx = mock(ExecutionContext.class); ExecutionContext ctx = mockExecutionContext("_alert", EMPTY_PAYLOAD);
Alert alert = mock(Alert.class); Alert alert = ctx.alert();
Alert.Status status = mock(Alert.Status.class); Alert.Status status = mock(Alert.Status.class);
Alert.Status.AckStatus.State state = randomFrom(Alert.Status.AckStatus.State.AWAITS_EXECUTION, Alert.Status.AckStatus.State.ACKABLE); Alert.Status.AckStatus.State state = randomFrom(Alert.Status.AckStatus.State.AWAITS_EXECUTION, Alert.Status.AckStatus.State.ACKABLE);
when(status.ackStatus()).thenReturn(new Alert.Status.AckStatus(state, timestamp)); when(status.ackStatus()).thenReturn(new Alert.Status.AckStatus(state, timestamp));
when(alert.status()).thenReturn(status); when(alert.status()).thenReturn(status);
when(alert.name()).thenReturn("_alert");
when(alert.acked()).thenReturn(false); when(alert.acked()).thenReturn(false);
when(ctx.alert()).thenReturn(alert);
AckThrottler throttler = new AckThrottler(); AckThrottler throttler = new AckThrottler();
Throttler.Result result = throttler.throttle(ctx); Throttler.Result result = throttler.throttle(ctx);
assertThat(result.throttle(), is(false)); assertThat(result.throttle(), is(false));

View File

@ -14,10 +14,10 @@ import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.test.ElasticsearchTestCase; import org.elasticsearch.test.ElasticsearchTestCase;
import org.junit.Test; import org.junit.Test;
import static org.elasticsearch.alerts.test.AlertsTestUtils.EMPTY_PAYLOAD;
import static org.elasticsearch.alerts.test.AlertsTestUtils.mockExecutionContext;
import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.CoreMatchers.nullValue;
import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.*;
import static org.hamcrest.Matchers.notNullValue;
import static org.hamcrest.Matchers.startsWith;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@ -32,11 +32,9 @@ public class PeriodThrottlerTests extends ElasticsearchTestCase {
TimeValue period = TimeValue.timeValueSeconds(randomIntBetween(2, 5)); TimeValue period = TimeValue.timeValueSeconds(randomIntBetween(2, 5));
PeriodThrottler throttler = new PeriodThrottler(period, periodType); PeriodThrottler throttler = new PeriodThrottler(period, periodType);
ExecutionContext ctx = mock(ExecutionContext.class); ExecutionContext ctx = mockExecutionContext("_name", EMPTY_PAYLOAD);
Alert alert = mock(Alert.class);
Alert.Status status = mock(Alert.Status.class); Alert.Status status = mock(Alert.Status.class);
when(ctx.alert()).thenReturn(alert); when(ctx.alert().status()).thenReturn(status);
when(alert.status()).thenReturn(status);
when(status.lastExecuted()).thenReturn(new DateTime().minusSeconds((int) period.seconds() - 1)); when(status.lastExecuted()).thenReturn(new DateTime().minusSeconds((int) period.seconds() - 1));
Throttler.Result result = throttler.throttle(ctx); Throttler.Result result = throttler.throttle(ctx);
@ -52,11 +50,9 @@ public class PeriodThrottlerTests extends ElasticsearchTestCase {
TimeValue period = TimeValue.timeValueSeconds(randomIntBetween(2, 5)); TimeValue period = TimeValue.timeValueSeconds(randomIntBetween(2, 5));
PeriodThrottler throttler = new PeriodThrottler(period, periodType); PeriodThrottler throttler = new PeriodThrottler(period, periodType);
ExecutionContext ctx = mock(ExecutionContext.class); ExecutionContext ctx = mockExecutionContext("_name", EMPTY_PAYLOAD);
Alert alert = mock(Alert.class);
Alert.Status status = mock(Alert.Status.class); Alert.Status status = mock(Alert.Status.class);
when(ctx.alert()).thenReturn(alert); when(ctx.alert().status()).thenReturn(status);
when(alert.status()).thenReturn(status);
when(status.lastExecuted()).thenReturn(new DateTime().minusSeconds((int) period.seconds() + 1)); when(status.lastExecuted()).thenReturn(new DateTime().minusSeconds((int) period.seconds() + 1));
Throttler.Result result = throttler.throttle(ctx); Throttler.Result result = throttler.throttle(ctx);

View File

@ -5,14 +5,12 @@
*/ */
package org.elasticsearch.alerts.transform; package org.elasticsearch.alerts.transform;
import org.elasticsearch.alerts.Alert;
import org.elasticsearch.alerts.ExecutionContext; import org.elasticsearch.alerts.ExecutionContext;
import org.elasticsearch.alerts.Payload; import org.elasticsearch.alerts.Payload;
import org.elasticsearch.alerts.support.Script; import org.elasticsearch.alerts.support.Script;
import org.elasticsearch.alerts.support.Variables; import org.elasticsearch.alerts.support.Variables;
import org.elasticsearch.alerts.support.init.proxy.ScriptServiceProxy; import org.elasticsearch.alerts.support.init.proxy.ScriptServiceProxy;
import org.elasticsearch.common.collect.ImmutableMap; import org.elasticsearch.common.collect.ImmutableMap;
import org.elasticsearch.common.joda.time.DateTime;
import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.common.xcontent.json.JsonXContent;
@ -24,6 +22,7 @@ import org.junit.Test;
import java.util.Collections; import java.util.Collections;
import java.util.Map; import java.util.Map;
import static org.elasticsearch.alerts.test.AlertsTestUtils.*;
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
import static org.hamcrest.Matchers.*; import static org.hamcrest.Matchers.*;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
@ -42,15 +41,9 @@ public class ScriptTransformTests extends ElasticsearchTestCase {
Script script = new Script("_script", type, "_lang", params); Script script = new Script("_script", type, "_lang", params);
ScriptTransform transform = new ScriptTransform(service, script); ScriptTransform transform = new ScriptTransform(service, script);
DateTime now = new DateTime(); ExecutionContext ctx = mockExecutionContext("_name", EMPTY_PAYLOAD);
ExecutionContext ctx = mock(ExecutionContext.class);
when(ctx.scheduledTime()).thenReturn(now);
when(ctx.fireTime()).thenReturn(now);
Alert alert = mock(Alert.class);
when(alert.name()).thenReturn("_name");
when(ctx.alert()).thenReturn(alert);
Payload payload = new Payload.Simple(ImmutableMap.<String, Object>builder().put("key", "value").build()); Payload payload = simplePayload("key", "value");
Map<String, Object> model = Variables.createCtxModel(ctx, payload); Map<String, Object> model = Variables.createCtxModel(ctx, payload);

View File

@ -8,7 +8,6 @@ package org.elasticsearch.alerts.transform;
import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchType; import org.elasticsearch.action.search.SearchType;
import org.elasticsearch.alerts.Alert;
import org.elasticsearch.alerts.ExecutionContext; import org.elasticsearch.alerts.ExecutionContext;
import org.elasticsearch.alerts.Payload; import org.elasticsearch.alerts.Payload;
import org.elasticsearch.alerts.support.Variables; import org.elasticsearch.alerts.support.Variables;
@ -16,8 +15,6 @@ import org.elasticsearch.alerts.support.init.proxy.ClientProxy;
import org.elasticsearch.alerts.test.AbstractAlertsSingleNodeTests; import org.elasticsearch.alerts.test.AbstractAlertsSingleNodeTests;
import org.elasticsearch.client.Requests; import org.elasticsearch.client.Requests;
import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.bytes.BytesReference;
import org.elasticsearch.common.collect.ImmutableMap;
import org.elasticsearch.common.joda.time.DateTime;
import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.common.settings.ImmutableSettings;
import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentParser;
@ -29,14 +26,13 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import static org.elasticsearch.alerts.support.AlertsDateUtils.parseDate; import static org.elasticsearch.alerts.support.AlertsDateUtils.parseDate;
import static org.elasticsearch.alerts.test.AlertsTestUtils.*;
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
import static org.elasticsearch.index.query.FilterBuilders.*; import static org.elasticsearch.index.query.FilterBuilders.*;
import static org.elasticsearch.index.query.QueryBuilders.filteredQuery; import static org.elasticsearch.index.query.QueryBuilders.filteredQuery;
import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery; import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
import static org.elasticsearch.search.builder.SearchSourceBuilder.searchSource; import static org.elasticsearch.search.builder.SearchSourceBuilder.searchSource;
import static org.hamcrest.Matchers.*; import static org.hamcrest.Matchers.*;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
/** /**
* *
@ -57,18 +53,9 @@ public class SearchTransformTests extends AbstractAlertsSingleNodeTests {
.endObject()); .endObject());
SearchTransform transform = new SearchTransform(logger, scriptService(), ClientProxy.of(client()), request); SearchTransform transform = new SearchTransform(logger, scriptService(), ClientProxy.of(client()), request);
ExecutionContext ctx = mock(ExecutionContext.class); ExecutionContext ctx = mockExecutionContext("_name", EMPTY_PAYLOAD);
DateTime now = new DateTime();
when(ctx.scheduledTime()).thenReturn(now);
when(ctx.fireTime()).thenReturn(now);
Alert alert = mock(Alert.class);
when(alert.name()).thenReturn("_name");
when(ctx.alert()).thenReturn(alert);
Transform.Result result = transform.apply(ctx, EMPTY_PAYLOAD);
Payload payload = new Payload.Simple(new HashMap<String, Object>());
Transform.Result result = transform.apply(ctx, payload);
assertThat(result, notNullValue()); assertThat(result, notNullValue());
assertThat(result.type(), is(SearchTransform.TYPE)); assertThat(result.type(), is(SearchTransform.TYPE));
@ -123,16 +110,9 @@ public class SearchTransformTests extends AbstractAlertsSingleNodeTests {
SearchTransform transform = new SearchTransform(logger, scriptService(), ClientProxy.of(client()), request); SearchTransform transform = new SearchTransform(logger, scriptService(), ClientProxy.of(client()), request);
ExecutionContext ctx = mock(ExecutionContext.class); ExecutionContext ctx = mockExecutionContext(parseDate("2015-01-01T00:00:00"), parseDate("2015-01-04T00:00:00"), "_name", EMPTY_PAYLOAD);
when(ctx.scheduledTime()).thenReturn(parseDate("2015-01-01T00:00:00"));
when(ctx.fireTime()).thenReturn(parseDate("2015-01-04T00:00:00"));
Alert alert = mock(Alert.class);
when(alert.name()).thenReturn("_name");
when(ctx.alert()).thenReturn(alert);
Payload payload = new Payload.Simple(ImmutableMap.<String, Object>builder() Payload payload = simplePayload("value", "val_3");
.put("value", "val_3")
.build());
Transform.Result result = transform.apply(ctx, payload); Transform.Result result = transform.apply(ctx, payload);
assertThat(result, notNullValue()); assertThat(result, notNullValue());