From 075f91f0d91616f9d4eee664677891359ba50702 Mon Sep 17 00:00:00 2001 From: Rohitesh Kumar Jain <thekumarjain@gmail.com> Date: Tue, 22 Jun 2021 18:07:50 +0530 Subject: [PATCH] test: Add test for Substitution.insertAllNestedTypes (#3998) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Simon Larsén <slarse@kth.se> --- .../spoon/test/template/SubstitutionTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/test/java/spoon/test/template/SubstitutionTest.java b/src/test/java/spoon/test/template/SubstitutionTest.java index b0c5dba08d5..a7036655ebd 100644 --- a/src/test/java/spoon/test/template/SubstitutionTest.java +++ b/src/test/java/spoon/test/template/SubstitutionTest.java @@ -47,4 +47,36 @@ private static class SingleFieldTemplate extends StatementTemplate { @Override public void statement() { } } + + @Test + public void testInsertAllNestedTypes() { + // contract: Substitution.insertAllNestedTypes inserts the only nested class from a singly nested template into the target class + + // arrange + Launcher spoon = new Launcher(); + spoon.addTemplateResource(new FileSystemFile("./src/test/java/spoon/test/template/SubstitutionTest.java")); + + spoon.buildModel(); + Factory factory = spoon.getFactory(); + + CtType<?> targetType = factory.Class().create("goodClass"); + StatementTemplate template = new SinglyNestedTemplate(); + + // act + Substitution.insertAllNestedTypes(targetType, template); + + // assert + assertEquals(1, targetType.getNestedTypes().size()); + assertEquals("nestedClass", targetType.getNestedType("nestedClass").getSimpleName()); + } + + private static class SinglyNestedTemplate extends StatementTemplate { + + class nestedClass { + } + + @Override + public void statement() { + } + } }