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); }
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); } }
.forEach(realInjector::inject); testReifier.reifyCut(context.getCutDescriptor(), arguments);
.forEach(realInjector::inject); testReifier.reifyCut(context.getCutDescriptor(), arguments);
.forEach(realInjector::inject); testReifier.reifyCut(context.getCutDescriptor(), arguments);
.forEach(realInjector::inject); testReifier.reifyCut(context.getCutDescriptor(), arguments);