ImmutableTree extends AbstractTree implements TreeTypeAware, ReadOnly { @NotNull @Override public ImmutableTree getChild(@NotNull String name) throws IllegalArgumentException { return createChild(name); } ImmutableTree(@NotNull NodeState rootState);  ImmutableTree(@NotNull ImmutableTree parent, @NotNull String name, @NotNull NodeState state);  ImmutableTree(@NotNull ParentProvider parentProvider, @NotNull String name, @NotNull NodeState state); @Nullable TreeType getType(); void setType(@NotNull TreeType type); @Override boolean isRoot(); @NotNull @Override String getName(); @Override @NotNull String getPath(); @NotNull @Override ImmutableTree getChild(@NotNull String name); @Override boolean remove(); @Override @NotNull Tree addChild(@NotNull String name); @Override void setOrderableChildren(boolean enable); @Override boolean orderBefore(@Nullable String name); @Override void setProperty(@NotNull PropertyState property); @Override void setProperty(@NotNull String name, @NotNull T value); @Override void setProperty(@NotNull String name, @NotNull T value, @NotNull Type<T> type); @Override void removeProperty(@NotNull String name); @Override int hashCode(); @Override boolean equals(Object o);  }
@Test public void testExists() { ImmutableTree child = immutable.getChild("x"); assertTrue(child.exists()); }
@Test public void testNonExisting() { ImmutableTree child = immutable.getChild("nonExisting"); assertNotNull(child); assertFalse(child.exists()); }
@Test public void testGetStatus() { assertSame(Tree.Status.UNCHANGED, immutable.getChild("x").getStatus()); }
@Test public void testNonExistingGetStatus() { assertSame(Tree.Status.UNCHANGED, immutable.getChild("nonExisting").getStatus()); }
@Test public void testHasHiddenProperty() { ImmutableTree orderable = immutable.getChild("orderable"); assertTrue(orderable.hasProperty(TreeConstants.OAK_CHILD_ORDER)); }
@Test public void testGetHiddenProperty() { ImmutableTree orderable = immutable.getChild("orderable"); assertNotNull(orderable.getProperty(TreeConstants.OAK_CHILD_ORDER)); }
@Test public void testGetPropertyStatus() { ImmutableTree orderable = immutable.getChild("orderable"); assertSame(Tree.Status.UNCHANGED, orderable.getPropertyStatus(TreeConstants.OAK_CHILD_ORDER)); }
@Test public void testGetPropertyCount() { ImmutableTree orderable = immutable.getChild("orderable"); assertEquals(2, orderable.getPropertyCount()); }