Beispiel #1
0
  public void testFindAncestorTest() throws Exception {
    Property property = new Property(stack);
    Form form = new Form(stack, request, response);
    ActionComponent actionComponent = new ActionComponent(stack, request, response);
    Anchor anchor = new Anchor(stack, request, response);
    Form form2 = new Form(stack, request, response);
    TextField textField = new TextField(stack, request, response);

    Stack stack = property.getComponentStack();
    Iterator i = stack.iterator();

    try {
      // component stack
      assertEquals(property.getComponentStack().size(), 6);
      assertEquals(i.next(), property);
      assertEquals(i.next(), form);
      assertEquals(i.next(), actionComponent);
      assertEquals(i.next(), anchor);
      assertEquals(i.next(), form2);
      assertEquals(i.next(), textField);

      // property
      assertNull(property.findAncestor(Component.class));

      // form
      assertEquals(form.findAncestor(Component.class), property);
      assertEquals(form.findAncestor(Property.class), property);

      // action
      assertEquals(actionComponent.findAncestor(Component.class), form);
      assertEquals(actionComponent.findAncestor(Property.class), property);
      assertEquals(actionComponent.findAncestor(Form.class), form);

      // anchor
      assertEquals(anchor.findAncestor(Component.class), actionComponent);
      assertEquals(anchor.findAncestor(ActionComponent.class), actionComponent);
      assertEquals(anchor.findAncestor(Form.class), form);
      assertEquals(anchor.findAncestor(Property.class), property);

      // form2
      assertEquals(form2.findAncestor(Component.class), anchor);
      assertEquals(form2.findAncestor(Anchor.class), anchor);
      assertEquals(form2.findAncestor(ActionComponent.class), actionComponent);
      assertEquals(form2.findAncestor(Form.class), form);
      assertEquals(form2.findAncestor(Property.class), property);

      // textField
      assertEquals(textField.findAncestor(Component.class), form2);
      assertEquals(textField.findAncestor(Form.class), form2);
      assertEquals(textField.findAncestor(Anchor.class), anchor);
      assertEquals(textField.findAncestor(ActionComponent.class), actionComponent);
      assertEquals(textField.findAncestor(Property.class), property);
    } finally {
      property.getComponentStack().pop();
      property.getComponentStack().pop();
      property.getComponentStack().pop();
      property.getComponentStack().pop();
      property.getComponentStack().pop();
    }
  }