public void testAttaches() throws Exception { // Should attach to anything as long as the fields exists EventType parentType = SupportEventTypeFactory.createBeanType(SupportMarketDataBean.class); factory.setViewParameters( viewFactoryContext, Arrays.asList( new ExprNode[] { SupportExprNodeFactory.makeIdentNodeMD("volume"), SupportExprNodeFactory.makeIdentNodeMD("price") })); factory.attach(parentType, SupportStatementContextFactory.makeContext(), null, null); assertEquals( Double.class, factory.getEventType().getPropertyType(ViewFieldEnum.REGRESSION__SLOPE.getName())); try { factory.setViewParameters( viewFactoryContext, TestViewSupport.toExprListMD(new Object[] {"symbol", "symbol"})); factory.attach(parentType, SupportStatementContextFactory.makeContext(), null, null); fail(); } catch (ViewParameterException ex) { // expected; } }
public static List<ExprNode> toExprListMD(Object[] constants) throws Exception { List<ExprNode> expr = new ArrayList<ExprNode>(); for (int i = 0; i < constants.length; i++) { if (constants[i] instanceof String) { expr.add(SupportExprNodeFactory.makeIdentNodeMD(constants[i].toString())); } else { expr.add(new ExprConstantNodeImpl(constants[i])); } } return expr; }
public void testCanReuse() throws Exception { factory.setViewParameters( viewFactoryContext, TestViewSupport.toExprListMD(new Object[] {"price", "volume"})); factory.attach( SupportEventTypeFactory.createBeanType(SupportMarketDataBean.class), SupportStatementContextFactory.makeContext(), null, null); assertFalse(factory.canReuse(new FirstElementView())); EventType type = RegressionLinestView.createEventType(SupportStatementContextFactory.makeContext(), null, 1); assertFalse( factory.canReuse( new RegressionLinestView( SupportStatementContextFactory.makeAgentInstanceContext(), SupportExprNodeFactory.makeIdentNodeMD("price"), SupportExprNodeFactory.makeIdentNodeMD("price"), type, null))); assertFalse( factory.canReuse( new RegressionLinestView( SupportStatementContextFactory.makeAgentInstanceContext(), SupportExprNodeFactory.makeIdentNodeMD("volume"), SupportExprNodeFactory.makeIdentNodeMD("price"), type, null))); assertTrue( factory.canReuse( new RegressionLinestView( SupportStatementContextFactory.makeAgentInstanceContext(), SupportExprNodeFactory.makeIdentNodeMD("price"), SupportExprNodeFactory.makeIdentNodeMD("volume"), type, null))); }