public void Run(RegressionEnvironment env) { SupportGraphSource.GetAndResetLifecycle(); env.CompileDeploy( "@Name('flow') create dataflow MyDataFlow MyLineFeedSource -> outstream {} SupportOperator(outstream) {propOne:'abc'}"); Assert.AreEqual(0, SupportOperator.GetAndResetLifecycle().Count); // instantiate var src = new MyLineFeedSource(Arrays.AsList("abc", "def").GetEnumerator()); var options = new EPDataFlowInstantiationOptions() .WithOperatorProvider(new DefaultSupportGraphOpProvider(src)); var df = env.Runtime.DataFlowService.Instantiate(env.DeploymentId("flow"), "MyDataFlow", options); var events = SupportOperator.GetAndResetLifecycle(); Assert.AreEqual(1, events.Count); Assert.AreEqual("instantiated", events[0]); // instantiated // run df.Run(); events = SupportOperator.GetAndResetLifecycle(); Assert.AreEqual(4, events.Count); Assert.IsTrue(events[0] is DataFlowOpOpenContext); // called open (GraphSource only) Assert.AreEqual("abc", ((object[]) events[1])[0]); Assert.AreEqual("def", ((object[]) events[2])[0]); Assert.IsTrue(events[3] is DataFlowOpCloseContext); // called close (GraphSource only) env.UndeployAll(); }
private void RunAssertionFlowGraphSource(EPServiceProvider epService) { epService.EPAdministrator.Configuration.AddEventType <SupportBean>(); epService.EPAdministrator.Configuration.AddImport(typeof(SupportGraphSource)); SupportGraphSource.GetAndResetLifecycle(); epService.EPAdministrator.CreateEPL("create dataflow MyDataFlow @Name('Goodie') @Audit SupportGraphSource -> outstream<SupportBean> {propOne:'abc'}"); Assert.AreEqual(0, SupportGraphSource.GetAndResetLifecycle().Count); // instantiate var options = new EPDataFlowInstantiationOptions().DataFlowInstanceId("id1").DataFlowInstanceUserObject("myobject"); EPDataFlowInstance df = epService.EPRuntime.DataFlowRuntime.Instantiate("MyDataFlow", options); List <object> events = SupportGraphSource.GetAndResetLifecycle(); Assert.AreEqual(3, events.Count); Assert.AreEqual("instantiated", events[0]); // instantiated Assert.AreEqual("setPropOne=abc", events[1]); // injected properties Assert.IsTrue(events[2] is DataFlowOpInitializateContext); // called initialize DataFlowOpInitializateContext initContext = (DataFlowOpInitializateContext)events[2]; Assert.IsNotNull(initContext.AgentInstanceContext); Assert.IsNotNull(initContext.RuntimeEventSender); Assert.IsNotNull(initContext.ServicesContext); Assert.IsNotNull(initContext.StatementContext); Assert.AreEqual("id1", initContext.DataflowInstanceId); Assert.AreEqual("myobject", initContext.DataflowInstanceUserObject); Assert.AreEqual(0, initContext.InputPorts.Count); Assert.AreEqual(1, initContext.OutputPorts.Count); Assert.AreEqual("outstream", initContext.OutputPorts[0].StreamName); Assert.AreEqual("SupportBean", initContext.OutputPorts[0].OptionalDeclaredType.EventType.Name); Assert.AreEqual(2, initContext.OperatorAnnotations.Length); Assert.AreEqual("Goodie", ((NameAttribute)initContext.OperatorAnnotations[0]).Value); Assert.IsNotNull((AuditAttribute)initContext.OperatorAnnotations[1]); // run df.Run(); events = SupportGraphSource.GetAndResetLifecycle(); Assert.AreEqual(5, events.Count); Assert.IsTrue(events[0] is DataFlowOpOpenContext); // called open (GraphSource only) Assert.AreEqual("Next(numrows=0)", events[1]); Assert.AreEqual("Next(numrows=1)", events[2]); Assert.AreEqual("Next(numrows=2)", events[3]); Assert.IsTrue(events[4] is DataFlowOpCloseContext); // called close (GraphSource only) epService.EPAdministrator.DestroyAllStatements(); }
private void RunAssertionFlowGraphOperator(EPServiceProvider epService) { epService.EPAdministrator.Configuration.AddEventType <SupportBean>(); epService.EPAdministrator.Configuration.AddImport(typeof(MyLineFeedSource)); epService.EPAdministrator.Configuration.AddImport(typeof(SupportOperator)); SupportGraphSource.GetAndResetLifecycle(); epService.EPAdministrator.CreateEPL("create dataflow MyDataFlow MyLineFeedSource -> outstream {} SupportOperator(outstream) {propOne:'abc'}"); Assert.AreEqual(0, SupportOperator.GetAndResetLifecycle().Count); // instantiate var src = new MyLineFeedSource(Collections.List("abc", "def").GetEnumerator()); var options = new EPDataFlowInstantiationOptions().OperatorProvider(new DefaultSupportGraphOpProvider(src)); EPDataFlowInstance df = epService.EPRuntime.DataFlowRuntime.Instantiate("MyDataFlow", options); IList <object> events = SupportOperator.GetAndResetLifecycle(); Assert.AreEqual(3, events.Count); Assert.AreEqual("instantiated", events[0]); // instantiated Assert.AreEqual("setPropOne=abc", events[1]); // injected properties Assert.IsTrue(events[2] is DataFlowOpInitializateContext); // called initialize DataFlowOpInitializateContext initContext = (DataFlowOpInitializateContext)events[2]; Assert.IsNotNull(initContext.AgentInstanceContext); Assert.IsNotNull(initContext.RuntimeEventSender); Assert.IsNotNull(initContext.ServicesContext); Assert.IsNotNull(initContext.StatementContext); Assert.IsNull(initContext.DataflowInstanceId); Assert.IsNull(initContext.DataflowInstanceUserObject); Assert.AreEqual(1, initContext.InputPorts.Count); Assert.AreEqual("[line]", CompatExtensions.Render(initContext.InputPorts[0].TypeDesc.EventType.PropertyNames)); Assert.AreEqual("[outstream]", CompatExtensions.Render(initContext.InputPorts[0].StreamNames.ToArray())); Assert.AreEqual(0, initContext.OutputPorts.Count); // run df.Run(); events = SupportOperator.GetAndResetLifecycle(); Assert.AreEqual(4, events.Count); Assert.IsTrue(events[0] is DataFlowOpOpenContext); // called open (GraphSource only) Assert.AreEqual("abc", ((object[])events[1])[0]); Assert.AreEqual("def", ((object[])events[2])[0]); Assert.IsTrue(events[3] is DataFlowOpCloseContext); // called close (GraphSource only) epService.EPAdministrator.DestroyAllStatements(); }
public void Run(RegressionEnvironment env) { SupportGraphSource.GetAndResetLifecycle(); var compiled = env.Compile( "@Name('flow') create dataflow MyDataFlow @Name('Goodie') @Audit SupportGraphSource -> outstream<SupportBean> {propOne:'abc'}"); var events = SupportGraphSourceForge.GetAndResetLifecycle(); Assert.AreEqual(3, events.Count); Assert.AreEqual("instantiated", events[0]); Assert.AreEqual("SetPropOne=abc", events[1]); var forgeCtx = (DataFlowOpForgeInitializeContext) events[2]; Assert.AreEqual(0, forgeCtx.InputPorts.Count); Assert.AreEqual(1, forgeCtx.OutputPorts.Count); Assert.AreEqual("outstream", forgeCtx.OutputPorts[0].StreamName); Assert.AreEqual("SupportBean", forgeCtx.OutputPorts[0].OptionalDeclaredType.EventType.Name); Assert.AreEqual(2, forgeCtx.OperatorAnnotations.Length); Assert.AreEqual("Goodie", ((NameAttribute) forgeCtx.OperatorAnnotations[0]).Value); Assert.IsNotNull((AuditAttribute) forgeCtx.OperatorAnnotations[1]); Assert.AreEqual("MyDataFlow", forgeCtx.DataflowName); Assert.AreEqual(0, forgeCtx.OperatorNumber); env.Deploy(compiled); events = SupportGraphSourceFactory.GetAndResetLifecycle(); Assert.AreEqual(3, events.Count); Assert.AreEqual("instantiated", events[0]); Assert.AreEqual("SetPropOne=abc", events[1]); var factoryCtx = (DataFlowOpFactoryInitializeContext) events[2]; Assert.AreEqual("MyDataFlow", factoryCtx.DataFlowName); Assert.AreEqual(0, factoryCtx.OperatorNumber); Assert.IsNotNull(factoryCtx.StatementContext); // instantiate var options = new EPDataFlowInstantiationOptions() .WithDataFlowInstanceId("id1") .WithDataFlowInstanceUserObject("myobject"); var df = env.Runtime.DataFlowService.Instantiate(env.DeploymentId("flow"), "MyDataFlow", options); events = SupportGraphSourceFactory.GetAndResetLifecycle(); Assert.AreEqual(1, events.Count); var opCtx = (DataFlowOpInitializeContext) events[0]; Assert.AreEqual("MyDataFlow", opCtx.DataFlowName); Assert.AreEqual("id1", opCtx.DataFlowInstanceId); Assert.IsNotNull(opCtx.AgentInstanceContext); Assert.AreEqual("myobject", opCtx.DataflowInstanceUserObject); Assert.AreEqual(0, opCtx.OperatorNumber); Assert.AreEqual("SupportGraphSource", opCtx.OperatorName); events = SupportGraphSource.GetAndResetLifecycle(); Assert.AreEqual(1, events.Count); Assert.AreEqual("instantiated", events[0]); // instantiated // run df.Run(); events = SupportGraphSource.GetAndResetLifecycle(); Assert.AreEqual(5, events.Count); Assert.IsTrue(events[0] is DataFlowOpOpenContext); // called open (GraphSource only) Assert.AreEqual("next(numrows=0)", events[1]); Assert.AreEqual("next(numrows=1)", events[2]); Assert.AreEqual("next(numrows=2)", events[3]); Assert.IsTrue(events[4] is DataFlowOpCloseContext); // called close (GraphSource only) env.UndeployAll(); }