diff --git a/src/main/java/net/kemitix/node/Nodes.java b/src/main/java/net/kemitix/node/Nodes.java index 0a6fa96..ffa8f74 100644 --- a/src/main/java/net/kemitix/node/Nodes.java +++ b/src/main/java/net/kemitix/node/Nodes.java @@ -25,7 +25,6 @@ SOFTWARE. package net.kemitix.node; import java.util.HashSet; -import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -121,15 +120,11 @@ public final class Nodes { private static Node asImmutableChild( final Node source ) { - final Optional> sourceParent = source.getParent(); - if (sourceParent.isPresent()) { - return ImmutableNodeItem.newChild(source.getData() - .orElse(null), source.getName(), sourceParent.get(), - getImmutableChildren(source) - ); - } else { - throw new IllegalArgumentException("source must not be the root node"); - } + return ImmutableNodeItem.newChild(source.getData() + .orElse(null), source.getName(), source.getParent() + .orElse(null), + getImmutableChildren(source) + ); } } diff --git a/src/test/java/net/kemitix/node/ImmutableNodeItemTest.java b/src/test/java/net/kemitix/node/ImmutableNodeItemTest.java index 411e9e5..3997ef3 100644 --- a/src/test/java/net/kemitix/node/ImmutableNodeItemTest.java +++ b/src/test/java/net/kemitix/node/ImmutableNodeItemTest.java @@ -418,4 +418,13 @@ public class ImmutableNodeItemTest { //when immutableNode.insertInPath(null, ""); } + + @Test + public void AsImmutableShouldThrowIAEWhenNotRoot() { + //given + exception.expect(IllegalArgumentException.class); + exception.expectMessage("source must be the root node"); + //when + Nodes.asImmutable(Nodes.unnamedChild("child", Nodes.unnamedRoot("root"))); + } }