Beispiel #1
0
            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();
        }
Beispiel #4
0
            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();
            }