示例#1
0
        public void TestMakeSubviews()
        {
            EventStream eventStream = new SupportStreamImpl(typeof(SupportMarketDataBean), 4);
            var         expressions = SupportExprNodeFactory.MakeIdentNodesMD("Symbol");
            GroupByView groupView   = new GroupByViewImpl(_agentInstanceContext, expressions, ExprNodeUtility.GetEvaluators(expressions));

            eventStream.AddView(groupView);

            var groupByValue = new Object[] { "IBM" };

            // Invalid for no child nodes
            try
            {
                GroupByViewImpl.MakeSubViews(groupView, "Symbol".Split(','), groupByValue, _agentInstanceContext);
                Assert.IsTrue(false);
            }
            catch (EPException)
            {
                // Expected exception
            }

            // Invalid for child node is a merge node - doesn't make sense to group and merge only
            var mergeViewOne = new MergeView(_agentInstanceContext, SupportExprNodeFactory.MakeIdentNodesMD("Symbol"), null, false);

            groupView.AddView(mergeViewOne);
            try
            {
                GroupByViewImpl.MakeSubViews(groupView, "Symbol".Split(','), groupByValue, _agentInstanceContext);
                Assert.IsTrue(false);
            }
            catch (EPException)
            {
                // Expected exception
            }

            // Add a size view parent of merge view
            groupView = new GroupByViewImpl(_agentInstanceContext, expressions, ExprNodeUtility.GetEvaluators(expressions));

            var firstElementView_1 = new FirstElementView(null);

            groupView.AddView(firstElementView_1);
            groupView.Parent = eventStream;
            mergeViewOne     = new MergeView(_agentInstanceContext, SupportExprNodeFactory.MakeIdentNodesMD("Symbol"), null, false);
            firstElementView_1.AddView(mergeViewOne);

            var subViews = GroupByViewImpl.MakeSubViews(groupView, "Symbol".Split(','), groupByValue, _agentInstanceContext);

            Assert.IsTrue(subViews is FirstElementView);
            Assert.IsTrue(subViews != firstElementView_1);

            var firstEleView = (FirstElementView)subViews;

            Assert.AreEqual(1, firstEleView.Views.Length);
            Assert.IsTrue(firstEleView.Views[0] is AddPropertyValueView);

            var md = (AddPropertyValueView)firstEleView.Views[0];

            Assert.AreEqual(1, md.Views.Length);
            Assert.IsTrue(md.Views[0] == mergeViewOne);
        }
示例#2
0
        public void SetUp()
        {
            // Set up length window view and a test child view
            _myView = new MergeView(SupportStatementContextFactory.MakeAgentInstanceViewFactoryContext(),
                                    SupportExprNodeFactory.MakeIdentNodesMD("Symbol"),
                                    SupportEventTypeFactory.CreateBeanType(typeof(SupportBean)), false);

            _childView = new SupportBeanClassView(typeof(SupportMarketDataBean));
            _myView.AddView(_childView);
        }
示例#3
0
        private void TryParameter(Object[] parameters, String[] fieldNames)
        {
            MergeViewFactory factory = new MergeViewFactory();

            factory.SetViewParameters(_viewFactoryContext, TestViewSupport.ToExprListMD(parameters));
            factory.Attach(SupportEventTypeFactory.CreateBeanType(typeof(SupportMarketDataBean)), SupportStatementContextFactory.MakeContext(_container), null, _parents);
            MergeView view = (MergeView)factory.MakeView(SupportStatementContextFactory.MakeAgentInstanceViewFactoryContext(_container));

            Assert.AreEqual(fieldNames[0], view.GroupFieldNames[0].ToExpressionStringMinPrecedenceSafe());
            if (fieldNames.Length > 0)
            {
                Assert.AreEqual(fieldNames[1], view.GroupFieldNames[1].ToExpressionStringMinPrecedenceSafe());
            }
        }
示例#4
0
        public void SetUp()
        {
            _statementContext     = SupportStatementContextFactory.MakeContext();
            _agentInstanceContext = SupportStatementContextFactory.MakeAgentInstanceViewFactoryContext();

            var expressions = SupportExprNodeFactory.MakeIdentNodesMD("Symbol");

            _myGroupByView = new GroupByViewImpl(_agentInstanceContext, expressions, ExprNodeUtility.GetEvaluators(expressions));

            var childView = new SupportBeanClassView(typeof(SupportMarketDataBean));

            var myMergeView = new MergeView(_agentInstanceContext, SupportExprNodeFactory.MakeIdentNodesMD("Symbol"), SupportEventTypeFactory.CreateBeanType(typeof(SupportMarketDataBean)), false);

            _ultimateChildView = new SupportBeanClassView(typeof(SupportMarketDataBean));

            // This is the view hierarchy
            _myGroupByView.AddView(childView);
            childView.AddView(myMergeView);
            myMergeView.AddView(_ultimateChildView);

            SupportBeanClassView.Instances.Clear();
        }