Merge pull request #9 from kemitix/demo-of-full-path-node-name

NodeItemTest: demonstrate using dynamic name supplier to generate nod…
This commit is contained in:
Paul Campbell 2016-05-24 23:03:11 +01:00
commit e06feddec3

View file

@ -14,6 +14,7 @@ import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Function;
/** /**
* Test for {@link NodeItem}. * Test for {@link NodeItem}.
@ -1013,4 +1014,21 @@ public class NodeItemTest {
assertThat(node.isNamed()).isFalse(); assertThat(node.isNamed()).isFalse();
assertThat(node.isNamed()).isTrue(); assertThat(node.isNamed()).isTrue();
} }
@Test
public void canUseNameSupplierToBuildFullPath() {
//given
final Function<Node<String>, String> pathNameSupplier = node -> {
Node<String> parent = node.getParent();
if (parent == null) {
return "";
}
return parent.getName() + "/" + node.getData();
};
node = new NodeItem<>(null, pathNameSupplier);
val child = new NodeItem<String>("child", node);
val grandchild = new NodeItem<String>("grandchild", child);
//then
assertThat(grandchild.getName()).isEqualTo("/child/grandchild");
}
} }