GetTestClass(javax.lang.model.util.Types types) { this.instantiateInterface = new InstantiateInterface(); this.types = types; }
private Mockery.Behaviour getBehaviourMockery(Mockery mockery) { try { mockery.value(); } catch (MirroredTypeException e) { TypeElement typeElement = (TypeElement) types.asElement(e.getTypeMirror()); try { String className = typeElement.getQualifiedName().toString(); Class<?> behaviourClass = Class.forName(className); Mockery.Behaviour behaviour = (Mockery.Behaviour) instantiateInterface.from(behaviourClass); return behaviour; } catch (ClassNotFoundException e1) { e1.printStackTrace(); } } return null; }
private MockeryMetadata mockeryMetadata(Class<?> mockingClass, Method method, Object[] args, Type type, Annotation[] annotations) { List<MockeryMetadata> mockeriesMetadata = new ArrayList<>(); for (Annotation annotation : annotations) { Mockery mockeryAnnotation = annotation.annotationType() .getAnnotation(Mockery.class); if (mockeryAnnotation == null) continue; Metadata metadata = new Metadata<>(mockingClass, method, args, annotation, type); Mockery.Behaviour mockery = instantiateInterface.from(mockeryAnnotation.value()); mockeriesMetadata.add(new MockeryMetadata(metadata, mockery)); } if (mockeriesMetadata.isEmpty()) return null; if (mockeriesMetadata.size() > 1) { String message = Messages .multipleMockeryOnMethodOrParam(mockingClass, method); throw new IllegalArgumentException(message); } return mockeriesMetadata.get(0); }
public InterceptorMetadata with(Class<?> mockingClass, Method method, Object[] args) { Annotation[] annotations = mockingClass.getAnnotations(); List<InterceptorMetadata> interceptorsMetadata = new ArrayList<>(); for (Annotation annotation : annotations) { Interceptor interceptorAnnotation = annotation.annotationType() .getAnnotation(Interceptor.class); if (interceptorAnnotation == null) continue; Metadata metadata = new Metadata(mockingClass, method, args, annotation, method.getGenericReturnType()); Interceptor.Behaviour interceptor = instantiateInterface .from(interceptorAnnotation.value()); interceptorsMetadata.add(new InterceptorMetadata(metadata, interceptor)); } if (interceptorsMetadata.size() > 1) { String message = Messages.multipleInterceptorsFoundOnClass(mockingClass); throw new RuntimeException(message); } if (interceptorsMetadata.isEmpty()) { String message = Messages.noInterceptorsFoundOnClass(mockingClass); throw new RuntimeException(message); } return interceptorsMetadata.get(0); }
public DTOMockery() { instantiateInterface = new InstantiateInterface(); }
/** * Provide a legal value deferring to the {@link Mockery.Behaviour} implementation supplied. */ @Override public Object legal(Metadata<DTO> metadata) { DTO dto = metadata.getAnnotation(); DTO.Behaviour behaviour = instantiateInterface.from(dto.value()); return behaviour.legal(); }
public GetInterceptorMetadata() { this.instantiateInterface = new InstantiateInterface(); }
/** * Same as {@link DTOMockery} */ @Override public void validate(Metadata<DTOArgs> metadata, Object candidate) throws AssertionError { DTOArgs dtoArgs = metadata.getAnnotation(); DTOArgs.Behaviour behaviour = instantiateInterface.from(dtoArgs.value()); behaviour.validate(candidate); }
public GetMockeryMetadata() { this.instantiateInterface = new InstantiateInterface(); }
private JolyglotGenerics jolyglot(Metadata<DTOJson> metadata) { JsonConverter jsonConverter = metadata.getMockingClass() .getAnnotation(JsonConverter.class); if (jsonConverter == null) { String message = Messages.noJsonConverterFound( metadata.getMockingClass(), metadata.getMethod(), DTOJson.class); throw new RuntimeException(message); } JolyglotGenerics jolyglot = instantiateInterface.from(jsonConverter.value()); return jolyglot; }
public DTOMockeryArgs() { instantiateInterface = new InstantiateInterface(); }
/** * Perform validation upon {@code candidate} deferring to the {@link Mockery.Behaviour} implementation supplied. */ @Override public void validate(Metadata<DTO> metadata, Object candidate) throws AssertionError { DTO dto = metadata.getAnnotation(); DTO.Behaviour behaviour = instantiateInterface.from(dto.value()); behaviour.validate(candidate); }
public DTOJsonMockery() { dtoMockery = new DTOMockery(); instantiateInterface = new InstantiateInterface(); }
/** * Same as {@link DTOMockery} */ @Override public Object legal(Metadata<DTOArgs> metadata) { DTOArgs dtoArgs = metadata.getAnnotation(); DTOArgs.Behaviour behaviour = instantiateInterface.from(dtoArgs.value()); return behaviour.legal(metadata.getArgs()); }