Merge pull request #21 from kemitix/immutable-tests

Extra test for ImmutableNodeItem
This commit is contained in:
Paul Campbell 2016-09-20 23:41:43 +01:00 committed by GitHub
commit b56e7f9d42
2 changed files with 14 additions and 10 deletions

View file

@ -25,7 +25,6 @@ SOFTWARE.
package net.kemitix.node; package net.kemitix.node;
import java.util.HashSet; import java.util.HashSet;
import java.util.Optional;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -121,15 +120,11 @@ public final class Nodes {
private static <T> Node<T> asImmutableChild( private static <T> Node<T> asImmutableChild(
final Node<T> source final Node<T> source
) { ) {
final Optional<Node<T>> sourceParent = source.getParent(); return ImmutableNodeItem.newChild(source.getData()
if (sourceParent.isPresent()) { .orElse(null), source.getName(), source.getParent()
return ImmutableNodeItem.newChild(source.getData() .orElse(null),
.orElse(null), source.getName(), sourceParent.get(), getImmutableChildren(source)
getImmutableChildren(source) );
);
} else {
throw new IllegalArgumentException("source must not be the root node");
}
} }
} }

View file

@ -418,4 +418,13 @@ public class ImmutableNodeItemTest {
//when //when
immutableNode.insertInPath(null, ""); 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")));
}
} }