ImmutableTree extends AbstractTree implements TreeTypeAware, ReadOnly { @NotNull @Override public String getName() { return 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 testGetName() { assertEquals("x", immutable.getChild("x").getName()); }
@Test public void testHiddenGetName() { assertEquals(Text.getName(HIDDEN_PATH), getHiddenTree(immutable).getName()); }
@Test public void testRootGetName() { assertEquals("", immutable.getName()); }
@Test public void testHasHiddenChild() { ImmutableTree parent = (ImmutableTree) TreeUtil.getTree(immutable, Text.getRelativeParent(HIDDEN_PATH, 1)); assertNotNull(parent); assertTrue(parent.hasChild(Text.getName(HIDDEN_PATH))); }