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); }
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); }
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()); } }
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(); }