/** * Tests whether the refactoring * * @throws Exception In case of an unexpected exception. */ @Test public void testRefactorCaseMethodAddDifferentParam() throws Exception { VariationPoint vp = RefactoringTestUtil.getMethodAddDifferentParamCase(VariabilityType.OPTXOR); IfStaticConfigClassMethod refactoring = new IfStaticConfigClassMethod(); refactoring.refactor(vp, null); // location has two methods Class vpLocation = (Class) ((JaMoPPJavaSoftwareElement) vp.getLocation()).getJamoppElement(); assertThat(vpLocation.getMethods().size(), equalTo(2)); Method firstMethod = vpLocation.getMethods().get(0); Method secondMethod = vpLocation.getMethods().get(1); // assert number of parameters assertThat(firstMethod.getParameters().size(), anyOf(equalTo(1), equalTo(2))); assertThat(secondMethod.getParameters().size(), anyOf(equalTo(1), equalTo(2))); assertThat( firstMethod.getParameters().size(), not(equalTo(secondMethod.getParameters().size()))); // assert method names and return types assertThat(firstMethod.getName(), equalTo("someMethod")); assertThat(secondMethod.getName(), equalTo("someMethod")); assertThat(firstMethod.getTypeReference(), instanceOf(Void.class)); assertThat(secondMethod.getTypeReference(), instanceOf(Void.class)); // verify correct VPM RefactoringTestUtil.assertValidVPM(vp); }
/** * Tests whether the refactoring * * @throws Exception In case of an unexpected exception. */ @Test public void testRefactorCaseMethodAddSameParam() throws Exception { VariationPoint vp = RefactoringTestUtil.getMethodAddSameParamCase(VariabilityType.OPTXOR); IfStaticConfigClassMethod refactoring = new IfStaticConfigClassMethod(); refactoring.refactor(vp, null); // location has one method Class vpLocation = (Class) ((JaMoPPJavaSoftwareElement) vp.getLocation()).getJamoppElement(); assertThat(vpLocation.getMethods().size(), equalTo(1)); // assert number of parameters assertThat(vpLocation.getMethods().get(0).getParameters().size(), equalTo(0)); // assert method name and return type assertThat(vpLocation.getMethods().get(0).getTypeReference(), instanceOf(Void.class)); // verify correct VPM RefactoringTestUtil.assertValidVPM(vp); }