public void create() { Map<DescriptorKey, ParameterDescriptor> parameterDescriptors = testContext.getParamaterDescriptors(); Map<DescriptorKey, FieldDescriptor> fieldDescriptors = testContext.getFieldDescriptors(); Object[] arguments = new Object[parameterDescriptors.size()]; Collection<FieldDescriptor> descriptors = fieldDescriptors.values(); UnitIndexFakeInjector indexInjector = new UnitIndexFakeInjector(testContext, testReifier, arguments); UnitNameFakeInjector nameInjector = new UnitNameFakeInjector(testContext, testReifier, arguments); UnitTypeFakeInjector typeInjector = new UnitTypeFakeInjector(testContext, testReifier, arguments); Set<FieldDescriptor> fakeDescriptors = descriptors.parallelStream() .filter(p -> p.hasAnnotation(Fake.class)) .collect(toSet()); //process fields with a custom index first fakeDescriptors.parallelStream() .forEach(indexInjector::inject); //process fields with custom names second fakeDescriptors.parallelStream() .forEach(nameInjector::inject); //finally process fields based on their type fakeDescriptors.parallelStream() .forEach(typeInjector::inject); testReifier.reifyCut(testContext.getCutDescriptor(), arguments); }
@Override public void wiring() { CutDescriptor cutDescriptor = testContext.getCutDescriptor(); String testClassName = testContext.getTestClassName(); String cutClassName = cutDescriptor.getTypeName(); Collection<ParameterDescriptor> fieldDescriptors = testContext.getParamaterDescriptors().values(); fieldDescriptors.parallelStream().forEach(p -> { Optional instance = p.getInstance(); if (!instance.isPresent()) { String paramTypeName = p.getTypeName(); logger.warn("Improper wiring detected. Class under test '{}' defined " + "in '{}' declars constructor argument of type '{}' but '{}' " + "does not define a field of type '{}' annotated with @Fake.", cutClassName, testClassName, paramTypeName, testClassName, paramTypeName); } }); }
@Override public void wiring() { doPrivileged((PrivilegedAction<Object>) () -> { CutDescriptor cutDescriptor = testContext.getCutDescriptor(); String testClassName = testContext.getTestClassName(); Collection<ParameterDescriptor> paramDescriptors = testContext.getParamaterDescriptors().values(); if (cutDescriptor != null) { String cutClassName = cutDescriptor.getTypeName(); paramDescriptors.parallelStream().forEach(p -> { Optional instance = p.getInstance(); if (!instance.isPresent()) { String paramTypeName = p.getTypeName(); logger.warn("Class under test '{}' defined in '{}' has a collaborator " + "of type '{}' but test class '{}' does not define a field of " + "type '{}' annotated with @Fake, @Real, or @Inject. The real " + "instance of the collaborator will be used.", cutClassName, testClassName, paramTypeName, testClassName, paramTypeName); } }); } return null; }); }
@Override public void wiring() { CutDescriptor cutDescriptor = testContext.getCutDescriptor(); String testClassName = testContext.getTestClassName(); String cutClassName = cutDescriptor.getTypeName(); Collection<ParameterDescriptor> fieldDescriptors = testContext.getParamaterDescriptors().values(); fieldDescriptors.parallelStream().forEach(p -> { Optional instance = p.getInstance(); if (!instance.isPresent()) { String paramTypeName = p.getTypeName(); logger.warn("Class under test '{}' defined in '{}' has a collaborator " + "type '{}' but test class '{}' does not define a field of " + "type '{}' annotated with @Fake. Null values will be used.", cutClassName, testClassName, paramTypeName, testClassName, paramTypeName); } }); }
@Override public void wiring() { doPrivileged((PrivilegedAction<Object>) () -> { CutDescriptor cutDescriptor = testContext.getCutDescriptor(); String testClassName = testContext.getTestClassName(); Collection<ParameterDescriptor> paramDescriptors = testContext.getParamaterDescriptors().values(); if (cutDescriptor != null) { String cutClassName = cutDescriptor.getTypeName(); paramDescriptors.parallelStream().forEach(p -> { Optional instance = p.getInstance(); if (!instance.isPresent()) { String paramTypeName = p.getTypeName(); logger.warn("Improper wiring detected. Class under test '{}' defined " + "in '{}' declars constructor argument of type '{}' but '{}' " + "does not define a field of type '{}' annotated with @Fake or @Real.", cutClassName, testClassName, paramTypeName, testClassName, paramTypeName); } }); } return null; }); }
@Override public void wiring() { doPrivileged((PrivilegedAction<Object>) () -> { CutDescriptor cutDescriptor = testContext.getCutDescriptor(); String testClassName = testContext.getTestClassName(); Collection<ParameterDescriptor> paramDescriptors = testContext.getParamaterDescriptors().values(); if (cutDescriptor != null) { String cutClassName = cutDescriptor.getTypeName(); paramDescriptors.parallelStream().forEach(p -> { Optional instance = p.getInstance(); if (!instance.isPresent()) { String paramTypeName = p.getTypeName(); logger.warn("Improper wiring detected. Class under test '{}' defined " + "in '{}' declars constructor argument of type '{}' but '{}' " + "does not define a field of type '{}' annotated with @Fake or @Real.", cutClassName, testClassName, paramTypeName, testClassName, paramTypeName); } }); } return null; }); }
@Override public void wiring() { doPrivileged((PrivilegedAction<Object>) () -> { CutDescriptor cutDescriptor = testContext.getCutDescriptor(); String testClassName = testContext.getTestClassName(); Collection<ParameterDescriptor> paramDescriptors = testContext.getParamaterDescriptors().values(); if (cutDescriptor != null) { String cutClassName = cutDescriptor.getTypeName(); paramDescriptors.parallelStream().forEach(p -> { Optional instance = p.getInstance(); if (!instance.isPresent()) { String paramTypeName = p.getTypeName(); logger.warn("Class under test '{}' defined in '{}' has a collaborator " + "of type '{}' but test class '{}' does not define a field of " + "type '{}' annotated with @Fake, @Real, or @Inject. The real " + "instance of the collaborator will be used.", cutClassName, testClassName, paramTypeName, testClassName, paramTypeName); } }); } return null; }); }
public void create() { Map<DescriptorKey, ParameterDescriptor> parameterDescriptors = testContext.getParamaterDescriptors(); Map<DescriptorKey, FieldDescriptor> fieldDescriptors = testContext.getFieldDescriptors(); Object[] arguments = new Object[parameterDescriptors.size()]; Collection<FieldDescriptor> descriptors = fieldDescriptors.values(); UnitIndexFakeInjector indexInjector = new UnitIndexFakeInjector(testContext, testReifier, arguments); UnitNameFakeInjector nameInjector = new UnitNameFakeInjector(testContext, testReifier, arguments); UnitTypeFakeInjector typeInjector = new UnitTypeFakeInjector(testContext, testReifier, arguments); UnitServiceFakeInjector serviceInjector = new UnitServiceFakeInjector(testContext, testReifier, arguments); Set<FieldDescriptor> fakeDescriptors = descriptors.parallelStream() .filter(p -> p.hasAnnotation(Fake.class)) .collect(toSet()); //process fields with a custom index first fakeDescriptors.parallelStream() .forEach(indexInjector::inject); //process fields with custom names second fakeDescriptors.parallelStream() .forEach(nameInjector::inject); //finally process fields based on their type fakeDescriptors.parallelStream() .forEach(typeInjector::inject); testReifier.reifyCut(testContext.getCutDescriptor(), arguments); //if there are no arguments then try to inject descriptor fields. if (arguments.length == 0) { fakeDescriptors.parallelStream() .forEach(serviceInjector::inject); } }
public void cut() { Map<DescriptorKey, ParameterDescriptor> parameterDescriptors = context.getParamaterDescriptors(); Map<DescriptorKey, FieldDescriptor> fieldDescriptors = context.getFieldDescriptors(); Object[] arguments = new Object[parameterDescriptors.size()];
Map<DescriptorKey, ParameterDescriptor> parameterDescriptors = context.getParamaterDescriptors();
Map<DescriptorKey, ParameterDescriptor> parameterDescriptors = context.getParamaterDescriptors();
Map<DescriptorKey, ParameterDescriptor> parameterDescriptors = context.getParamaterDescriptors();
Map<DescriptorKey, ParameterDescriptor> parameterDescriptors = context.getParamaterDescriptors(); Field field = descriptor.getField();
Map<DescriptorKey, ParameterDescriptor> parameterDescriptors = context.getParamaterDescriptors(); Field field = descriptor.getField();
Map<DescriptorKey, ParameterDescriptor> parameterDescriptors = context.getParamaterDescriptors(); Field field = descriptor.getField();
Map<DescriptorKey, ParameterDescriptor> parameterDescriptors = context.getParamaterDescriptors(); Type fieldType = descriptor.getGenericType(); String fieldName = descriptor.getName();
Map<DescriptorKey, ParameterDescriptor> parameterDescriptors = context.getParamaterDescriptors(); Type fieldType = descriptor.getGenericType(); String fieldName = descriptor.getName();
Map<DescriptorKey, ParameterDescriptor> parameterDescriptors = context.getParamaterDescriptors(); Type fieldType = descriptor.getGenericType(); String fieldName = descriptor.getName();
Map<DescriptorKey, ParameterDescriptor> parameterDescriptors = context.getParamaterDescriptors(); String testClassName = context.getTestClassName(); Type fieldType = descriptor.getGenericType();
Map<DescriptorKey, ParameterDescriptor> parameterDescriptors = context.getParamaterDescriptors(); String testClassName = context.getTestClassName(); Type fieldType = descriptor.getGenericType();