diff options
author | stephenramthun <stephenramthun@gmail.com> | 2018-02-04 22:45:55 +0100 |
---|---|---|
committer | stephenramthun <stephenramthun@gmail.com> | 2018-02-04 22:45:55 +0100 |
commit | ae442842668f9414f3a5fd8a294968d7cddf147f (patch) | |
tree | 53a7aed9bb070bd8dcc88b18b3ee35f1c9e5b0a4 /javaparser-testing | |
parent | 9f20df294175a8dcc2f0c1331c818589c5de9cb4 (diff) | |
download | platform_external_javaparser-ae442842668f9414f3a5fd8a294968d7cddf147f.tar.gz platform_external_javaparser-ae442842668f9414f3a5fd8a294968d7cddf147f.tar.bz2 platform_external_javaparser-ae442842668f9414f3a5fd8a294968d7cddf147f.zip |
Add removeFirst and removeLast to NodeList.
Issue #1389
Diffstat (limited to 'javaparser-testing')
-rw-r--r-- | javaparser-testing/src/test/java/com/github/javaparser/ast/NodeListTest.java | 60 |
1 files changed, 52 insertions, 8 deletions
diff --git a/javaparser-testing/src/test/java/com/github/javaparser/ast/NodeListTest.java b/javaparser-testing/src/test/java/com/github/javaparser/ast/NodeListTest.java index d8fe3d6c3..5d2fd8680 100644 --- a/javaparser-testing/src/test/java/com/github/javaparser/ast/NodeListTest.java +++ b/javaparser-testing/src/test/java/com/github/javaparser/ast/NodeListTest.java @@ -38,6 +38,8 @@ import java.util.List; import static com.github.javaparser.ast.NodeList.nodeList; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; public class NodeListTest { @@ -138,6 +140,48 @@ public class NodeListTest { } @Test + public void removeFirstNode() { + List<String> changes = new LinkedList<>(); + String code = "class A { int a; int b; int c; int d; int e; }"; + CompilationUnit cu = JavaParser.parse(code); + ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); + cd.getMembers().register(createObserver(changes)); + + cd.getMembers().removeFirst(); + assertEquals(Arrays.asList("'int a;' REMOVAL in list at 0"), changes); + assertEquals(cd.getMembers().size(), 4); + + for (int i = 3; i >= 0; i--) { + assertTrue(cd.getMembers().removeFirst()); + assertEquals(cd.getMembers().size(), i); + } + + assertFalse(cd.getMembers().removeFirst()); + assertEquals(cd.getMembers().size(), 0); + } + + @Test + public void removeLastNode() { + List<String> changes = new LinkedList<>(); + String code = "class A { int a; int b; int c; int d; int e; }"; + CompilationUnit cu = JavaParser.parse(code); + ClassOrInterfaceDeclaration cd = cu.getClassByName("A").get(); + cd.getMembers().register(createObserver(changes)); + + cd.getMembers().removeLast(); + assertEquals(Arrays.asList("'int e;' REMOVAL in list at 4"), changes); + assertEquals(cd.getMembers().size(), 4); + + for (int i = 3; i >= 0; i--) { + assertTrue(cd.getMembers().removeLast()); + assertEquals(cd.getMembers().size(), i); + } + + assertFalse(cd.getMembers().removeLast()); + assertEquals(cd.getMembers().size(), 0); + } + + @Test public void removeObject() { List<String> changes = new LinkedList<>(); String code = "class A { int a; int b; int c; int d; int e; }"; @@ -226,22 +270,22 @@ public class NodeListTest { assertEquals("[abc, bcd, cde]", list.toString()); } - + @Test public void addFirst() { final NodeList<Name> list = nodeList(new Name("abc"), new Name("bcd"), new Name("cde")); list.addFirst(new Name("xxx")); - + assertEquals("[xxx, abc, bcd, cde]", list.toString()); } - + @Test public void addLast() { final NodeList<Name> list = nodeList(new Name("abc"), new Name("bcd"), new Name("cde")); list.addLast(new Name("xxx")); - + assertEquals("[abc, bcd, cde, xxx]", list.toString()); } @@ -251,7 +295,7 @@ public class NodeListTest { final NodeList<Name> list = nodeList(new Name("abc"), n, new Name("cde")); list.addBefore(new Name("xxx"), n); - + assertEquals("[abc, xxx, bcd, cde]", list.toString()); } @@ -261,7 +305,7 @@ public class NodeListTest { final NodeList<Name> list = nodeList(new Name("abc"), n, new Name("cde")); list.addAfter(new Name("xxx"), n); - + assertEquals("[abc, bcd, xxx, cde]", list.toString()); } @@ -271,7 +315,7 @@ public class NodeListTest { final NodeList<Name> list = nodeList(abc, new Name("bcd"), new Name("cde")); list.addBefore(new Name("xxx"), abc); - + assertEquals("[xxx, abc, bcd, cde]", list.toString()); } @@ -281,7 +325,7 @@ public class NodeListTest { final NodeList<Name> list = nodeList(new Name("abc"), new Name("bcd"), cde); list.addAfter(new Name("xxx"), cde); - + assertEquals("[abc, bcd, cde, xxx]", list.toString()); } } |