package org.springframework.roo.classpath.layers; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import java.util.Arrays; import org.junit.Test; import org.springframework.roo.model.JavaType; /** * Unit test of {@link MemberTypeAdditions} * * @author Andrew Swan * @since 1.2.0 */ public class MemberTypeAdditionsTest { /** * Asserts that * {@link MemberTypeAdditions#buildMethodCall(String, String, java.util.Iterator)} * builds the expected method call from the given parameters * * @param expectedMethodCall * @param target * @param method * @param parameterNames */ private void assertMethodCall(final String expectedMethodCall, final String target, final String method, final MethodParameter... parameters) { assertEquals(expectedMethodCall, MemberTypeAdditions.buildMethodCall(target, method, Arrays.asList(parameters))); } @Test public void testGetInvokedFieldWhenBuilderIsNull() { // Set up final MemberTypeAdditions memberTypeAdditions = new MemberTypeAdditions(null, "foo", "foo()", false, null); // Invoke and check assertNull(memberTypeAdditions.getInvokedField()); } @Test public void testGetMethodCallWithBlankTargetAndNoParameters() { assertMethodCall("foo()", null, "foo"); } @Test public void testGetMethodCallWithBlankTargetAndTwoParameters() { final MethodParameter firstNameParameter = new MethodParameter(JavaType.STRING, "firstName"); final MethodParameter lastNameParameter = new MethodParameter(JavaType.STRING, "lastName"); assertMethodCall("matchmakingService.marry(firstName, lastName)", "matchmakingService", "marry", firstNameParameter, lastNameParameter); } @Test public void testGetMethodCallWithTargetAndNoParameters() { assertMethodCall("Foo.bar()", "Foo", "bar"); } }