@Override public Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName) { return testContext.getSutDescriptor().map(sutDescriptor -> { MockProvider mockProvider = testContext.getMockProvider(); for (FieldDescriptor fieldDescriptor : testContext.getTestDescriptor() .getFieldDescriptors()) { if (!fieldDescriptor.getFake().isPresent()) { continue; } Type fieldType = fieldDescriptor.getGenericType(); TypeToken fieldTypeToken = TypeToken.of(fieldType); TypeToken rawTypeToken = getRawTypeToken(fieldType); if (fieldTypeToken.isSupertypeOf(beanClass)) { Optional<Object> foundValue = fieldDescriptor.getValue(testContext .getTestInstance()); if (foundValue.isPresent()) { return foundValue.get(); } } else if (rawTypeToken.isSupertypeOf(beanClass)) { return mockProvider.createFake(beanClass); } } return null; }).orElse(null); }
.resolveType(Provider.class.getTypeParameters()[0]) .getRawType(); instance = mockProvider.createFake(contract); } else if (token.isSubtypeOf(com.google.inject.Provider.class)) { contract = token .resolveType(com.google.inject.Provider.class.getTypeParameters()[0]) .getRawType(); instance = mockProvider.createFake(contract);
@Override public Object resolve(Injectee injectee, ServiceHandle root) { return testContext.getSutDescriptor().map(sutDescriptor -> { TestDescriptor testDescriptor = testContext.getTestDescriptor(); MockProvider mockProvider = testContext.getMockProvider(); Object testInstance = testContext.getTestInstance(); Type requiredType = injectee.getRequiredType(); for (FieldDescriptor fieldDescriptor : testDescriptor.getFieldDescriptors()) { if (fieldDescriptor.getFake().isPresent()) { Type fieldType = fieldDescriptor.getGenericType(); Optional<Object> foundValue = fieldDescriptor.getValue(testInstance); if (TypeToken.of(fieldType).isSupertypeOf(requiredType) && foundValue .isPresent()) { return foundValue.get(); } else if (getRawTypeToken(fieldType).isSupertypeOf(requiredType)) { return mockProvider.createFake(TypeToken.of(requiredType) .getRawType()); } } } return null; }).orElseGet(() -> findThreeThirtyService(injectee, root)); }
@Override public Object resolve(Injectee injectee, ServiceHandle root) { return testContext.getSutDescriptor().map(sutDescriptor -> { TestDescriptor testDescriptor = testContext.getTestDescriptor(); MockProvider mockProvider = testContext.getMockProvider(); Object testInstance = testContext.getTestInstance(); Type requiredType = injectee.getRequiredType(); for (FieldDescriptor fieldDescriptor : testDescriptor.getFieldDescriptors()) { if (fieldDescriptor.getFake().isPresent()) { Type fieldType = fieldDescriptor.getGenericType(); Optional<Object> foundValue = fieldDescriptor.getValue(testInstance); if (TypeToken.of(fieldType).isSupertypeOf(requiredType) && foundValue .isPresent()) { return foundValue.get(); } else if (getRawTypeToken(fieldType).isSupertypeOf(requiredType)) { return mockProvider.createFake(TypeToken.of(requiredType) .getRawType()); } } } return null; }).orElseGet(() -> findThreeThirtyService(injectee, root)); }