NodeItemTest: demonstrate using dynamic name supplier to generate node paths

This commit is contained in:
Paul Campbell 2016-05-24 22:35:24 +01:00
parent 96ac0f720f
commit d82b0290a1

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}.
@ -1011,4 +1012,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");
}
} }