public void Run(RegressionEnvironment env)
            {
                var path = new RegressionPath();
                env.CompileDeploy("create schema SomeType ()", path);
                env.CompileDeploy(
                    "@Name('flow') create dataflow MyDataFlowOne MyOp -> outstream<SomeType> {propOne:'abc', propThree:'xyz'}",
                    path);

                var options = new EPDataFlowInstantiationOptions();
                var myParameterProvider = new MyParameterProvider(Collections.SingletonDataMap("propTwo", "def"));
                options.WithParameterProvider(myParameterProvider);

                env.Runtime.DataFlowService.Instantiate(env.DeploymentId("flow"), "MyDataFlowOne", options);
                var myOp = MyOp.GetAndClearInstances()[0];
                Assert.AreEqual("abc", myOp.PropOne);
                Assert.AreEqual("def", myOp.PropTwo);

                Assert.AreEqual(3, myParameterProvider.contextMap.Count);
                Assert.IsNotNull(myParameterProvider.contextMap.Get("propOne"));

                var context = myParameterProvider.contextMap.Get("propTwo");
                Assert.AreEqual("propTwo", context.ParameterName);
                Assert.AreEqual("MyOp", context.OperatorName);
                Assert.AreSame(myOp.Factory, context.Factory);
                Assert.AreEqual(0, context.OperatorNum);
                Assert.AreEqual("MyDataFlowOne", context.DataFlowName);

                context = myParameterProvider.contextMap.Get("propThree");
                Assert.AreEqual("propThree", context.ParameterName);
                Assert.AreEqual("MyOp", context.OperatorName);
                Assert.AreSame(myOp.Factory, context.Factory);
                Assert.AreEqual(0, context.OperatorNum);

                env.UndeployAll();
            }
Exemple #2
0
        private void RunAssertionParameterInjectionCallback(EPServiceProvider epService)
        {
            epService.EPAdministrator.CreateEPL("create schema SomeType ()");
            epService.EPAdministrator.CreateEPL("create dataflow MyDataFlowOne MyOp -> outstream<SomeType> {propOne:'abc', propThree:'xyz'}");

            var myOp    = new MyOp("myid");
            var options = new EPDataFlowInstantiationOptions();

            options.OperatorProvider(new DefaultSupportGraphOpProvider(myOp));
            var myParameterProvider = new MyParameterProvider(Collections.SingletonDataMap("propTwo", "def"));

            options.ParameterProvider(myParameterProvider);
            Assert.AreEqual("myid", myOp.Id);
            Assert.IsNull(myOp.PropOne);
            Assert.IsNull(myOp.PropTwo);

            epService.EPRuntime.DataFlowRuntime.Instantiate("MyDataFlowOne", options);
            Assert.AreEqual("abc", myOp.PropOne);
            Assert.AreEqual("def", myOp.PropTwo);

            Assert.AreEqual(3, myParameterProvider.ContextMap.Count);
            Assert.IsNotNull(myParameterProvider.ContextMap.Get("propOne"));

            EPDataFlowOperatorParameterProviderContext context = myParameterProvider.ContextMap.Get("propTwo");

            Assert.AreEqual("propTwo", context.ParameterName);
            Assert.AreEqual("MyOp", context.OperatorName);
            Assert.AreSame(myOp, context.OperatorInstance);
            Assert.AreEqual(0, context.OperatorNum);
            Assert.AreEqual(null, context.ProvidedValue);
            Assert.AreEqual("MyDataFlowOne", context.DataFlowName);

            context = myParameterProvider.ContextMap.Get("propThree");
            Assert.AreEqual("propThree", context.ParameterName);
            Assert.AreEqual("MyOp", context.OperatorName);
            Assert.AreSame(myOp, context.OperatorInstance);
            Assert.AreEqual(0, context.OperatorNum);
            Assert.AreEqual("xyz", context.ProvidedValue);

            epService.EPAdministrator.DestroyAllStatements();
        }