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;
    }
  }
 private void tryInvalidParameter(Object[] parameters) throws Exception {
   try {
     factory.setViewParameters(viewFactoryContext, TestViewSupport.toExprListMD(parameters));
     factory.attach(
         SupportEventTypeFactory.createBeanType(SupportMarketDataBean.class),
         SupportStatementContextFactory.makeContext(),
         null,
         null);
     fail();
   } catch (ViewParameterException ex) {
     // expected
   }
 }
 private void tryParameter(Object[] parameters, String fieldNameX, String fieldNameY)
     throws Exception {
   factory.setViewParameters(viewFactoryContext, TestViewSupport.toExprListMD(parameters));
   factory.attach(
       SupportEventTypeFactory.createBeanType(SupportMarketDataBean.class),
       SupportStatementContextFactory.makeContext(),
       null,
       null);
   RegressionLinestView view =
       (RegressionLinestView)
           factory.makeView(SupportStatementContextFactory.makeAgentInstanceViewFactoryContext());
   assertEquals(fieldNameX, view.getExpressionX().toExpressionString());
   assertEquals(fieldNameY, view.getExpressionY().toExpressionString());
 }
 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)));
 }