private static void RunAssertion( RegressionEnvironment env, RegressionPath path, EPStage stage, string typename, object underlying, Consumer <EPEventService> sender) { string epl = "@public @buseventtype create schema TriggerEvent();\n" + "@public @buseventtype @name('schema') create json schema " + JSON_TYPENAME + "();\n" + "@Name('trigger') select * from TriggerEvent;\n" + "@Name('s0') select * from " + typename + ";\n"; env.CompileDeploy(epl, path).AddListener("s0"); string deploymentId = env.DeploymentId("s0"); StageIt(env, "ST", deploymentId); // test normal send sender.Invoke(stage.EventService); AssertUnderlying(env, typename, underlying); // test EventSender#send EventSender eventSender = stage.EventService.GetEventSender(typename); eventSender.SendEvent(underlying); AssertUnderlying(env, typename, underlying); // test EventSender#route GetStatement("trigger", "ST", env.Runtime).Events += (_, args) => { eventSender.RouteEvent(underlying); }; stage.EventService.SendEventMap(new Dictionary <string, object>(), "TriggerEvent"); AssertUnderlying(env, typename, underlying); UnstageIt(env, "ST", deploymentId); path.Clear(); env.UndeployModuleContaining("s0"); }