/addon-jpa/addon/src/main/java/org/springframework/roo/addon/jpa/addon/test/JpaUnitTestMetadata.java
Java | 586 lines | 279 code | 76 blank | 231 comment | 10 complexity | 56246151622adfd8ab2f977f4b51f8a6 MD5 | raw file
- package org.springframework.roo.addon.jpa.addon.test;
- import java.lang.reflect.Modifier;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.List;
- import java.util.Map;
- import java.util.TreeMap;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.commons.lang3.Validate;
- import org.apache.commons.lang3.builder.ToStringBuilder;
- import org.springframework.roo.addon.jpa.addon.entity.JpaEntityMetadata.RelationInfo;
- import org.springframework.roo.addon.jpa.annotations.test.RooJpaUnitTest;
- import org.springframework.roo.classpath.PhysicalTypeIdentifierNamingUtils;
- import org.springframework.roo.classpath.PhysicalTypeMetadata;
- import org.springframework.roo.classpath.details.BeanInfoUtils;
- import org.springframework.roo.classpath.details.FieldMetadata;
- import org.springframework.roo.classpath.details.FieldMetadataBuilder;
- import org.springframework.roo.classpath.details.MethodMetadata;
- import org.springframework.roo.classpath.details.MethodMetadataBuilder;
- import org.springframework.roo.classpath.details.annotations.AnnotationMetadataBuilder;
- import org.springframework.roo.classpath.details.comments.CommentStructure;
- import org.springframework.roo.classpath.details.comments.CommentStructure.CommentLocation;
- import org.springframework.roo.classpath.details.comments.JavadocComment;
- import org.springframework.roo.classpath.itd.AbstractItdTypeDetailsProvidingMetadataItem;
- import org.springframework.roo.classpath.itd.InvocableMemberBodyBuilder;
- import org.springframework.roo.metadata.MetadataIdentificationUtils;
- import org.springframework.roo.model.JavaSymbolName;
- import org.springframework.roo.model.JavaType;
- import org.springframework.roo.model.JdkJavaType;
- import org.springframework.roo.project.LogicalPath;
- /**
- * Metadata for {@link RooJpaUnitTest}.
- *
- * @author Sergio Clares
- * @since 2.0
- */
- public class JpaUnitTestMetadata extends AbstractItdTypeDetailsProvidingMetadataItem {
- // TODO: This class is under construction. It can contain several commented code
- private static final String PROVIDES_TYPE_STRING = JpaUnitTestMetadata.class.getName();
- private static final String PROVIDES_TYPE = MetadataIdentificationUtils
- .create(PROVIDES_TYPE_STRING);
- private static final JavaType RULE = new JavaType("org.junit.Rule");
- private static final JavaType MOCKITO_RULE = new JavaType("org.mockito.junit.MockitoRule");
- private static final JavaType MOCKITO_JUNIT = new JavaType("org.mockito.junit.MockitoJUnit");
- private static final JavaType MOCK = new JavaType("org.mockito.Mock");
- private static final JavaType BEFORE = new JavaType("org.junit.Before");
- private static final JavaType AFTER = new JavaType("org.junit.After");
- private static final JavaType TEST = new JavaType("org.junit.Test");
- private static final JavaType IGNORE = new JavaType("org.junit.Ignore");
- private Map<JavaType, FieldMetadata> entityFactories = new TreeMap<JavaType, FieldMetadata>();
- public static String createIdentifier(final JavaType javaType, final LogicalPath path) {
- return PhysicalTypeIdentifierNamingUtils.createIdentifier(PROVIDES_TYPE_STRING, javaType, path);
- }
- public static JavaType getJavaType(final String metadataIdentificationString) {
- return PhysicalTypeIdentifierNamingUtils.getJavaType(PROVIDES_TYPE_STRING,
- metadataIdentificationString);
- }
- public static String getMetadataIdentiferType() {
- return PROVIDES_TYPE;
- }
- public static LogicalPath getPath(final String metadataIdentificationString) {
- return PhysicalTypeIdentifierNamingUtils.getPath(PROVIDES_TYPE_STRING,
- metadataIdentificationString);
- }
- public static boolean isValid(final String metadataIdentificationString) {
- return PhysicalTypeIdentifierNamingUtils.isValid(PROVIDES_TYPE_STRING,
- metadataIdentificationString);
- }
- private final JavaType entity;
- private final String entityVar;
- private final Map<JavaType, JavaType> entityAndItsFactoryMap;
- private final JavaType entityFactory;
- /**
- * Constructor
- *
- * @param identifier
- * @param aspectName
- * @param governorPhysicalTypeMetadata
- * @param annotationValues
- * @param relationInfos
- * @param entityAndItsFactoryMap the map for each entity (key) and its entity factory (value).
- */
- public JpaUnitTestMetadata(final String identifier, final JavaType aspectName,
- final PhysicalTypeMetadata governorPhysicalTypeMetadata,
- final JpaUnitTestAnnotationValues annotationValues,
- final Collection<RelationInfo> relationInfos,
- final Map<JavaType, JavaType> entityAndItsFactoryMap) {
- super(identifier, aspectName, governorPhysicalTypeMetadata);
- Validate.isTrue(isValid(identifier),
- "Metadata identification string '%s' does not appear to be a valid", identifier);
- Validate.notNull(annotationValues, "Annotation values required");
- this.entity = annotationValues.getTargetClass();
- this.entityVar = StringUtils.uncapitalize(this.entity.getSimpleTypeName());
- this.entityAndItsFactoryMap = entityAndItsFactoryMap;
- this.entityFactory = entityAndItsFactoryMap.get(this.entity);
- Validate.notNull(this.entityFactory,
- "Unable to locate the entity factory of %s in JpaUnitTestMetadata",
- this.entity.getSimpleTypeName());
- // Add entity factory fields
- for (JavaType entityFactory : entityAndItsFactoryMap.values()) {
- FieldMetadataBuilder entityFactoryField =
- new FieldMetadataBuilder(this.getId(), Modifier.PRIVATE, new JavaSymbolName(
- StringUtils.uncapitalize(entityFactory.getSimpleTypeName())), entityFactory,
- String.format("new %s()", getNameOfJavaType(entityFactory)));
- entityFactories.put(entityFactory, entityFactoryField.build());
- ensureGovernorHasField(entityFactoryField);
- }
- for (RelationInfo relationInfo : relationInfos) {
- // Create addRelation test method
- if (relationInfo.addMethod != null) {
- ensureGovernorHasMethod(new MethodMetadataBuilder(getAddToRelationMethod(relationInfo)));
- }
- // Create removeRelation test method
- if (relationInfo.removeMethod != null) {
- ensureGovernorHasMethod(new MethodMetadataBuilder(getRemoveFromRelationMethod(relationInfo)));
- }
- }
- // // Build @Ignore
- // AnnotationMetadataBuilder ignoreAnnotationBuilder = new AnnotationMetadataBuilder(IGNORE);
- // ignoreAnnotationBuilder.addStringAttribute("value", "To be implemented by developer");
- // ignoreAnnotation = ignoreAnnotationBuilder.build();
- //
- // // Initialize @Mock
- // mockAnnotation.add(new AnnotationMetadataBuilder(MOCK));
- //
- // // Add @Rule field
- // ensureGovernorHasField(getMockitoRuleField());
- //
- // // Build one mock field for each external dependency field
- // for (FieldMetadata field : fieldDependencies) {
- // ensureGovernorHasField(getDependencyField(field));
- // }
- //
- // // Add target class field
- // ensureGovernorHasField(getTargetClassField(this.targetType));
- //
- // // Add setup method
- // ensureGovernorHasMethod(getSetupMethod());
- //
- // // Add clean method
- // ensureGovernorHasMethod(getCleanMethod());
- //
- // // Build one test method for each targetClass method
- // for (MethodMetadata method : methods) {
- //
- // // Add method names and avoid name repetition
- // int counter = 2;
- // String candidateName = method.getMethodName().getSymbolName();
- // while (this.methodNames.contains(candidateName)) {
- // candidateName = candidateName.concat(String.valueOf(counter));
- // counter++;
- // }
- // this.methodNames.add(candidateName);
- //
- // // Add method
- // ensureGovernorHasMethod(getTestMethod(method, candidateName));
- // }
- itdTypeDetails = builder.build();
- }
- /**
- * Creates a method to test item additions to a relationship.
- *
- * @param addMethod the {@link MethodMetadata} to test.
- * @param relationFieldName a {@link String} with the field name
- * representing the relation on the parent entity.
- * @param childEntity the {@link JavaType} of child entity.
- * @param field the {@link FieldMetadata} of relation field.
- * @param relationInfo the {@link RelationInfo} of the relation field.
- * @return the {@link MethodMetadata}
- */
- private MethodMetadata getAddToRelationMethod(RelationInfo relationInfo) {
- // Initialize local variables
- MethodMetadata addMethod = relationInfo.addMethod;
- String relationFieldName = relationInfo.fieldName;
- JavaType childEntity = relationInfo.childType;
- FieldMetadata relationField = relationInfo.fieldMetadata;
- // Create test method name using target method name, child entity name and relation field
- JavaSymbolName methodName =
- new JavaSymbolName(String.format("%sShouldAddThe%sToThe%sRelationship", addMethod
- .getMethodName().getSymbolName(), childEntity.getSimpleTypeName(), relationFieldName));
- MethodMetadata method = getGovernorMethod(methodName);
- if (method != null) {
- return method;
- }
- // Create body
- InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
- // Setup
- bodyBuilder.appendFormalLine("// Setup");
- // Entity entity = entityFactory.create(0);
- FieldMetadata entityFactory = entityFactories.get(this.entityFactory);
- bodyBuilder.appendFormalLine("%s %s = %s().create(0);", getNameOfJavaType(this.entity),
- this.entityVar, getAccessorMethod(entityFactory).getMethodName());
- // ChildEntity childEntity1 = childEntityFactory.create(0);
- FieldMetadata childEntityFactory =
- entityFactories.get(this.entityAndItsFactoryMap.get(childEntity));
- Validate.notNull(childEntityFactory,
- "Unable to locate the entity factory of %s in JpaUnitTestMetadata",
- childEntity.getSimpleTypeName());
- String childEntityVar1 =
- String.format("%s1", StringUtils.uncapitalize(childEntity.getSimpleTypeName()));
- bodyBuilder.appendFormalLine("%s %s = %s().create(0);", getNameOfJavaType(childEntity),
- childEntityVar1, getAccessorMethod(childEntityFactory).getMethodName());
- // ChildEntity childEntity2 = childEntityFactory.create(1);
- String childEntityVar2 =
- String.format("%s2", StringUtils.uncapitalize(childEntity.getSimpleTypeName()));
- bodyBuilder.appendFormalLine("%s %s = %s().create(1);", getNameOfJavaType(childEntity),
- childEntityVar2, getAccessorMethod(childEntityFactory).getMethodName());
- bodyBuilder.newLine();
- // Exercise
- bodyBuilder.appendFormalLine("// Exercise");
- // entity.ADD_METHOD(Arrays.asList(childEntity1, childEntity2));
- bodyBuilder.appendFormalLine("%s.%s(%s.asList(%s, %s));", entityVar, addMethod.getMethodName(),
- getNameOfJavaType(JavaType.ARRAYS), childEntityVar1, childEntityVar2);
- bodyBuilder.newLine();
- // Verify
- bodyBuilder.appendFormalLine("// Verify");
- // assertThat(entity.RELATION_FIELD_ACCESSOR()).as("Check 'ADD_METHOD_NAME' adds the FIELDNAME to the relationship")
- JavaSymbolName relationFieldAccessorName = BeanInfoUtils.getAccessorMethodName(relationField);
- bodyBuilder.appendFormalLine("%s(%s.%s()).as(\"Check '%s' adds the %s to the relationship\")",
- getNameOfJavaType(new JavaType("org.assertj.core.api.Assertions.assertThat"), true),
- this.entityVar, relationFieldAccessorName, addMethod.getMethodName(), relationFieldName);
- // .contains(childEntity1).contains(childEntity2);
- bodyBuilder.indent();
- bodyBuilder.appendFormalLine(".contains(%s).contains(%s);", childEntityVar1, childEntityVar2);
- bodyBuilder.indentRemove();
- // assertThat(entity).as("Check 'ADD_METHOD_NAME' updates the CHILD_ENTITY relationship side")
- bodyBuilder.appendFormalLine("%s(%s).as(\"Check '%s' updates the %s relationship side\")",
- getNameOfJavaType(new JavaType("org.assertj.core.api.Assertions.assertThat"), true),
- this.entityVar, addMethod.getMethodName(), getNameOfJavaType(childEntity));
- // .isEqualTo(childEntity1.PARENT_ENTITY_ACCESSOR()).isEqualTo(childEntity2.PARENT_ENTITY_ACCESSOR());
- JavaSymbolName parentEntityAccessor =
- BeanInfoUtils.getAccessorMethodName(new JavaSymbolName(relationInfo.mappedBy), this.entity);
- bodyBuilder.indent();
- bodyBuilder.appendFormalLine(".isEqualTo(%1$s.%3$s()).isEqualTo(%2$s.%3$s());",
- childEntityVar1, childEntityVar2, parentEntityAccessor);
- bodyBuilder.reset();
- MethodMetadataBuilder methodBuilder =
- new MethodMetadataBuilder(this.getId(), Modifier.PUBLIC, methodName,
- JavaType.VOID_PRIMITIVE, bodyBuilder);
- // Add @Test
- methodBuilder.addAnnotation(new AnnotationMetadataBuilder(TEST));
- // Add throws types
- methodBuilder.addThrowsType(JdkJavaType.EXCEPTION);
- return methodBuilder.build();
- }
- /**
- * Creates a method to test item removes from a relationship.
- *
- * @param removeMethod the {@link MethodMetadata} to test.
- * @param relationFieldName a {@link String} with the field name
- * representing the relation on the parent entity.
- * @param childEntity the {@link JavaType} of child entity.
- * @param field the {@link FieldMetadata} of relation field.
- * @return the {@link MethodMetadata}
- */
- private MethodMetadata getRemoveFromRelationMethod(RelationInfo relationInfo) {
- // Initialize local variables
- String relationFieldName = relationInfo.fieldName;
- JavaType childEntity = relationInfo.childType;
- FieldMetadata relationField = relationInfo.fieldMetadata;
- // Create test method name using target method name, child entity name and relation field
- JavaSymbolName methodName =
- new JavaSymbolName(String.format("%sShouldRemoveThe%sFromThe%sRelationship",
- relationInfo.addMethod.getMethodName().getSymbolName(),
- childEntity.getSimpleTypeName(), relationFieldName));
- MethodMetadata method = getGovernorMethod(methodName);
- if (method != null) {
- return method;
- }
- // Create body
- InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
- // Setup
- bodyBuilder.appendFormalLine("// Setup");
- // Entity entity = entityFactory.create(0);
- FieldMetadata entityFactory = entityFactories.get(this.entityFactory);
- bodyBuilder.appendFormalLine("%s %s = %s().create(0);", getNameOfJavaType(this.entity),
- this.entityVar, getAccessorMethod(entityFactory).getMethodName());
- // ChildEntity childEntity1 = childEntityFactory.create(0);
- FieldMetadata childEntityFactory =
- entityFactories.get(this.entityAndItsFactoryMap.get(childEntity));
- Validate.notNull(childEntityFactory,
- "Unable to locate the entity factory of %s in JpaUnitTestMetadata",
- childEntity.getSimpleTypeName());
- String childEntityVar1 =
- String.format("%s1", StringUtils.uncapitalize(childEntity.getSimpleTypeName()));
- bodyBuilder.appendFormalLine("%s %s = %s().create(0);", getNameOfJavaType(childEntity),
- childEntityVar1, getAccessorMethod(childEntityFactory).getMethodName());
- // ChildEntity childEntity2 = childEntityFactory.create(1);
- String childEntityVar2 =
- String.format("%s2", StringUtils.uncapitalize(childEntity.getSimpleTypeName()));
- bodyBuilder.appendFormalLine("%s %s = %s().create(1);", getNameOfJavaType(childEntity),
- childEntityVar2, getAccessorMethod(childEntityFactory).getMethodName());
- // entity.ADD_METHOD(Arrays.asList(childEntity1, childEntity2));
- bodyBuilder.appendFormalLine("%s.%s(%s.asList(%s, %s));", entityVar,
- relationInfo.addMethod.getMethodName(), getNameOfJavaType(JavaType.ARRAYS),
- childEntityVar1, childEntityVar2);
- bodyBuilder.newLine();
- // Exercise
- bodyBuilder.appendFormalLine("// Exercise");
- // entity.REMOVE_METHOD(Collections.singleton(childEntity1));
- bodyBuilder.appendFormalLine("%s.%s(%s.singleton(%s));", this.entityVar,
- relationInfo.removeMethod.getMethodName(), getNameOfJavaType(JavaType.COLLECTIONS),
- childEntityVar1);
- bodyBuilder.newLine();
- // Verify
- bodyBuilder.appendFormalLine("// Verify");
- // assertThat(childEntity1.PARENT_ENTITY_ACCESSOR()).as("Check 'REMOVE_METHOD' updates the CHILD_ENTITY relationship side")
- JavaSymbolName parentEntityAccessor =
- BeanInfoUtils.getAccessorMethodName(new JavaSymbolName(relationInfo.mappedBy), this.entity);
- bodyBuilder.appendFormalLine("%s(%s.%s()).as(\"Check '%s' updates the %s relationship side\")",
- getNameOfJavaType(new JavaType("org.assertj.core.api.Assertions.assertThat"), true),
- childEntityVar1, parentEntityAccessor, relationInfo.removeMethod.getMethodName(),
- getNameOfJavaType(childEntity));
- // .isNull();
- bodyBuilder.indent();
- bodyBuilder.appendFormalLine(".isNull();");
- bodyBuilder.indentRemove();
- // assertThat(entity.RELATION_FIELD_ACCESSOR()).as("Check 'REMOVE_METHOD' removes a CHILD_ENTITY from the relationship")
- JavaSymbolName relationFieldAccessorName = BeanInfoUtils.getAccessorMethodName(relationField);
- bodyBuilder.appendFormalLine(
- "%s(%s.%s()).as(\"Check '%s' removes a %s from the relationship\")",
- getNameOfJavaType(new JavaType("org.assertj.core.api.Assertions.assertThat"), true),
- this.entityVar, relationFieldAccessorName, relationInfo.removeMethod.getMethodName(),
- getNameOfJavaType(childEntity));
- // .doesNotContain(childEntity1).contains(childEntity2);
- bodyBuilder.indent();
- bodyBuilder.appendFormalLine(".doesNotContain(%s).contains(%s);", childEntityVar1,
- childEntityVar2);
- bodyBuilder.reset();
- MethodMetadataBuilder methodBuilder =
- new MethodMetadataBuilder(this.getId(), Modifier.PUBLIC, methodName,
- JavaType.VOID_PRIMITIVE, bodyBuilder);
- // Add @Test
- methodBuilder.addAnnotation(new AnnotationMetadataBuilder(TEST));
- // Add throws types
- methodBuilder.addThrowsType(JdkJavaType.EXCEPTION);
- return methodBuilder.build();
- }
- /**
- * Obtains a method annotated with @Test and @Ignore for testing one targeted
- * type's method. Developer should implement logic.
- *
- * @return {@link MethodMetadataBuilder}
- */
- private MethodMetadataBuilder getTestMethod(MethodMetadata method, String candidateName) {
- final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
- // bodyBuilder.newLine();
- //
- // // Setup phase
- // bodyBuilder.appendFormalLine("// Setup");
- // bodyBuilder.appendFormalLine("// Implement additional setup if necessary");
- // bodyBuilder.newLine();
- //
- // // Exercise phase
- // bodyBuilder.appendFormalLine("// Exercise");
- // List<JavaSymbolName> parameterNames = method.getParameterNames();
- // StringBuffer parameters = new StringBuffer();
- // for (int i = 0; i < parameterNames.size(); i++) {
- // parameters.append(parameterNames.get(i).getSymbolName());
- // if (i != parameterNames.size() - 1) {
- // parameters.append(", ");
- // }
- // }
- // if (method.getReturnType().equals(JavaType.VOID_PRIMITIVE)) {
- // bodyBuilder.appendFormalLine(String.format("// this.%s.%s(%s);",
- // StringUtils.uncapitalize(targetType.getSimpleTypeName()), method.getMethodName(),
- // parameters));
- // } else {
- // bodyBuilder.appendFormalLine(String.format("// %s result = this.%s.%s(%s);",
- // method.getReturnType().getNameIncludingTypeParameters(false, importResolver),
- // StringUtils.uncapitalize(targetType.getSimpleTypeName()), method.getMethodName(),
- // parameters));
- // }
- // bodyBuilder.newLine();
- //
- // // Verify phase
- // bodyBuilder.appendFormalLine("// Verify");
- // bodyBuilder.appendFormalLine("// Implement assertions");
- //
- // // Check if method alread exists
- // JavaSymbolName methodName = new JavaSymbolName(String.format("%sTest", candidateName));
- //
- // // Use the MethodMetadataBuilder for easy creation of MethodMetadata
- // MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(getId(), Modifier.PUBLIC,
- // methodName, JavaType.VOID_PRIMITIVE, bodyBuilder);
- //
- // // Add @Test and @Ignore
- // methodBuilder.addAnnotation(new AnnotationMetadataBuilder(TEST).build());
- // // methodBuilder.addAnnotation(ignoreAnnotation);
- //
- // return methodBuilder;
- return null;
- }
- /**
- * Obtains a method annotated with @After for doing the test class teardown phase
- * after finishing each test.
- *
- * @return {@link MethodMetadataBuilder}
- */
- private MethodMetadataBuilder getCleanMethod() {
- final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
- bodyBuilder.newLine();
- bodyBuilder.appendFormalLine("// Clean needed after executing each test method");
- bodyBuilder.appendFormalLine("// To be implemented by developer");
- bodyBuilder.newLine();
- // Use the MethodMetadataBuilder for easy creation of MethodMetadata
- MethodMetadataBuilder methodBuilder =
- new MethodMetadataBuilder(getId(), Modifier.PUBLIC, new JavaSymbolName("clean"),
- JavaType.VOID_PRIMITIVE, bodyBuilder);
- // Add @After
- methodBuilder.addAnnotation(new AnnotationMetadataBuilder(AFTER).build());
- // Add comment
- CommentStructure comment = new CommentStructure();
- JavadocComment javaDocComment =
- new JavadocComment(
- "This method will be automatically executed after each test method for freeing resources allocated with @Before annotated method.");
- comment.addComment(javaDocComment, CommentLocation.BEGINNING);
- methodBuilder.setCommentStructure(comment);
- return methodBuilder;
- }
- /**
- * Obtains a method annotated with @Before for doing the test class setup before
- * launching each test.
- *
- * @return {@link MethodMetadataBuilder}
- */
- private MethodMetadataBuilder getSetupMethod() {
- // // this.targetType = new TargetType();
- // final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
- // if (!targetTypeDetails.isInterface() && !targetTypeDetails.isAbstract()
- // && memberDetails.getConstructors().size() == 0) {
- // bodyBuilder.appendFormalLine(String.format("this.%s = new %s();",
- // StringUtils.uncapitalize(targetType.getSimpleTypeName()),
- // targetType.getNameIncludingTypeParameters(false, importResolver)));
- // }
- //
- // bodyBuilder.newLine();
- // bodyBuilder.appendFormalLine("// Setup needed before executing each test method");
- // bodyBuilder.appendFormalLine("// To be implemented by developer");
- // bodyBuilder.newLine();
- //
- // // Use the MethodMetadataBuilder for easy creation of MethodMetadata
- // MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(getId(), Modifier.PUBLIC,
- // new JavaSymbolName("setup"), JavaType.VOID_PRIMITIVE, bodyBuilder);
- //
- // // Add @Before
- // methodBuilder.addAnnotation(new AnnotationMetadataBuilder(BEFORE).build());
- //
- // // Add comment
- // CommentStructure comment = new CommentStructure();
- // JavadocComment javaDocComment = new JavadocComment(
- // "This method will be automatically executed before each test method for configuring needed resources.");
- // comment.addComment(javaDocComment, CommentLocation.BEGINNING);
- // methodBuilder.setCommentStructure(comment);
- //
- // return methodBuilder;
- return null;
- }
- /**
- * Creates field with @Mock for using it in tests.
- *
- * @return {@link FieldMetadataBuilder} for building field into ITD
- */
- private FieldMetadataBuilder getDependencyField(FieldMetadata field) {
- // FieldMetadataBuilder fieldBuilder = new FieldMetadataBuilder(getId(), Modifier.PRIVATE,
- // mockAnnotation, field.getFieldName(), field.getFieldType());
- // return fieldBuilder;
- return null;
- }
- /**
- * Creates target class field for initializing in tests.
- *
- * @return {@link FieldMetadataBuilder} for building field into ITD.
- */
- private FieldMetadataBuilder getTargetClassField(JavaType targetType) {
- FieldMetadataBuilder fieldBuilder =
- new FieldMetadataBuilder(getId(), Modifier.PRIVATE, new JavaSymbolName(
- StringUtils.uncapitalize(targetType.getSimpleTypeName())), targetType, null);
- return fieldBuilder;
- }
- /**
- * Creates MockitoRule field for validating and initialize mocks.
- *
- * @return {@link FieldMetadataBuilder} for building field into ITD.
- */
- private FieldMetadataBuilder getMockitoRuleField() {
- // Create field @Rule
- List<AnnotationMetadataBuilder> annotations = new ArrayList<AnnotationMetadataBuilder>();
- AnnotationMetadataBuilder ruleAnnotation = new AnnotationMetadataBuilder(RULE);
- annotations.add(ruleAnnotation);
- // Create field
- FieldMetadataBuilder ruleField =
- new FieldMetadataBuilder(getId(), Modifier.PUBLIC, annotations, new JavaSymbolName(
- "mockito"), MOCKITO_RULE);
- // ruleField.setFieldInitializer(String.format("%s.rule()",
- // new JavaType(MOCKITO_JUNIT.getNameIncludingTypeParameters(false, importResolver))));
- return ruleField;
- }
- @Override
- public String toString() {
- final ToStringBuilder builder = new ToStringBuilder(this);
- builder.append("identifier", getId());
- builder.append("valid", valid);
- builder.append("aspectName", aspectName);
- builder.append("destinationType", destination);
- builder.append("governor", governorPhysicalTypeMetadata.getId());
- builder.append("itdTypeDetails", itdTypeDetails);
- return builder.toString();
- }
- }