mirror of
https://github.com/mbierlee/poodinis.git
synced 2024-11-15 04:04:01 +01:00
Autoformat code
This commit is contained in:
parent
dfac28102e
commit
b8caa00be1
|
@ -140,7 +140,7 @@ public void autowire(Type)(shared(DependencyContainer) container, Type instance)
|
|||
}
|
||||
|
||||
private void printDebugAutowiringCandidate(TypeInfo candidateInstanceType,
|
||||
void* candidateInstanceAddress, TypeInfo instanceType, void* instanceAddress, string member)
|
||||
void* candidateInstanceAddress, TypeInfo instanceType, void* instanceAddress, string member)
|
||||
{
|
||||
debug
|
||||
{
|
||||
|
@ -150,7 +150,7 @@ private void printDebugAutowiringCandidate(TypeInfo candidateInstanceType,
|
|||
}
|
||||
|
||||
private void printDebugAutowiringArray(TypeInfo superTypeInfo,
|
||||
TypeInfo instanceType, void* instanceAddress, string member)
|
||||
TypeInfo instanceType, void* instanceAddress, string member)
|
||||
{
|
||||
debug
|
||||
{
|
||||
|
@ -160,7 +160,7 @@ private void printDebugAutowiringArray(TypeInfo superTypeInfo,
|
|||
}
|
||||
|
||||
private void autowireMember(string member, size_t memberIndex, Type)(
|
||||
shared(DependencyContainer) container, Type instance)
|
||||
shared(DependencyContainer) container, Type instance)
|
||||
{
|
||||
foreach (attribute; __traits(getAttributes, Type.tupleof[memberIndex]))
|
||||
{
|
||||
|
@ -186,7 +186,7 @@ private void autowireMember(string member, size_t memberIndex, Type)(
|
|||
}
|
||||
|
||||
private void injectInstance(string member, size_t memberIndex, QualifierType, Type)(
|
||||
shared(DependencyContainer) container, Type instance)
|
||||
shared(DependencyContainer) container, Type instance)
|
||||
{
|
||||
if (instance.tupleof[memberIndex] is null)
|
||||
{
|
||||
|
@ -196,18 +196,18 @@ private void injectInstance(string member, size_t memberIndex, QualifierType, Ty
|
|||
static if (isDynamicArray!MemberType)
|
||||
{
|
||||
injectMultipleInstances!(member, memberIndex, isOptional, MemberType)(container,
|
||||
instance);
|
||||
instance);
|
||||
}
|
||||
else
|
||||
{
|
||||
injectSingleInstance!(member, memberIndex, isOptional, MemberType, QualifierType)(container,
|
||||
instance);
|
||||
instance);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void injectMultipleInstances(string member, size_t memberIndex,
|
||||
bool isOptional, MemberType, Type)(shared(DependencyContainer) container, Type instance)
|
||||
bool isOptional, MemberType, Type)(shared(DependencyContainer) container, Type instance)
|
||||
{
|
||||
alias MemberElementType = ElementType!MemberType;
|
||||
static if (isOptional)
|
||||
|
@ -227,8 +227,8 @@ private void injectMultipleInstances(string member, size_t memberIndex,
|
|||
}
|
||||
|
||||
private void injectSingleInstance(string member, size_t memberIndex,
|
||||
bool isOptional, MemberType, QualifierType, Type)(
|
||||
shared(DependencyContainer) container, Type instance)
|
||||
bool isOptional, MemberType, QualifierType, Type)(
|
||||
shared(DependencyContainer) container, Type instance)
|
||||
{
|
||||
debug (poodinisVerbose)
|
||||
{
|
||||
|
@ -241,7 +241,7 @@ private void injectSingleInstance(string member, size_t memberIndex,
|
|||
static if (!is(QualifierType == UseMemberType))
|
||||
{
|
||||
qualifiedInstance = createOrResolveInstance!(MemberType, QualifierType,
|
||||
assignNewInstance, isOptional)(container);
|
||||
assignNewInstance, isOptional)(container);
|
||||
debug (poodinisVerbose)
|
||||
{
|
||||
qualifiedInstanceType = typeid(QualifierType);
|
||||
|
@ -250,7 +250,7 @@ private void injectSingleInstance(string member, size_t memberIndex,
|
|||
else
|
||||
{
|
||||
qualifiedInstance = createOrResolveInstance!(MemberType, MemberType,
|
||||
assignNewInstance, isOptional)(container);
|
||||
assignNewInstance, isOptional)(container);
|
||||
}
|
||||
|
||||
instance.tupleof[memberIndex] = qualifiedInstance;
|
||||
|
@ -258,18 +258,18 @@ private void injectSingleInstance(string member, size_t memberIndex,
|
|||
debug (poodinisVerbose)
|
||||
{
|
||||
printDebugAutowiringCandidate(qualifiedInstanceType,
|
||||
&qualifiedInstance, typeid(Type), &instance, member);
|
||||
&qualifiedInstance, typeid(Type), &instance, member);
|
||||
}
|
||||
}
|
||||
|
||||
private QualifierType createOrResolveInstance(MemberType, QualifierType,
|
||||
bool createNew, bool isOptional)(shared(DependencyContainer) container)
|
||||
bool createNew, bool isOptional)(shared(DependencyContainer) container)
|
||||
{
|
||||
static if (createNew)
|
||||
{
|
||||
auto instanceFactory = new InstanceFactory();
|
||||
instanceFactory.factoryParameters = InstanceFactoryParameters(typeid(MemberType),
|
||||
CreatesSingleton.no);
|
||||
CreatesSingleton.no);
|
||||
return cast(MemberType) instanceFactory.getInstance();
|
||||
}
|
||||
else
|
||||
|
@ -286,7 +286,7 @@ private QualifierType createOrResolveInstance(MemberType, QualifierType,
|
|||
}
|
||||
|
||||
private void injectValue(string member, size_t memberIndex, string key, bool mandatory, Type)(
|
||||
shared(DependencyContainer) container, Type instance)
|
||||
shared(DependencyContainer) container, Type instance)
|
||||
{
|
||||
alias MemberType = typeof(Type.tupleof[memberIndex]);
|
||||
try
|
||||
|
@ -315,7 +315,7 @@ private void injectValue(string member, size_t memberIndex, string key, bool man
|
|||
}
|
||||
|
||||
private void printDebugValueInjection(TypeInfo instanceType,
|
||||
void* instanceAddress, string member, TypeInfo valueType, string key)
|
||||
void* instanceAddress, string member, TypeInfo valueType, string key)
|
||||
{
|
||||
debug
|
||||
{
|
||||
|
@ -340,16 +340,16 @@ class AutowiredRegistration(RegistrationType : Object) : Registration
|
|||
private shared(DependencyContainer) container;
|
||||
|
||||
public this(TypeInfo registeredType, InstanceFactory instanceFactory,
|
||||
shared(DependencyContainer) originatingContainer)
|
||||
shared(DependencyContainer) originatingContainer)
|
||||
{
|
||||
super(registeredType, typeid(RegistrationType), instanceFactory, originatingContainer);
|
||||
}
|
||||
|
||||
public override Object getInstance(
|
||||
InstantiationContext context = new AutowireInstantiationContext())
|
||||
InstantiationContext context = new AutowireInstantiationContext())
|
||||
{
|
||||
enforce(!(originatingContainer is null),
|
||||
"The registration's originating container is null. There is no way to resolve autowire dependencies.");
|
||||
"The registration's originating container is null. There is no way to resolve autowire dependencies.");
|
||||
|
||||
RegistrationType instance = cast(RegistrationType) super.getInstance(context);
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ version (unittest)
|
|||
auto componentD = new ComponentD();
|
||||
container.autowire(componentD);
|
||||
assert(componentD.privateComponentC is componentD.componentC,
|
||||
"Autowire private dependency failed");
|
||||
"Autowire private dependency failed");
|
||||
}
|
||||
|
||||
// Test autowiring will only happen once
|
||||
|
@ -55,7 +55,7 @@ version (unittest)
|
|||
container.autowire(componentD);
|
||||
auto actualComponent = componentD.componentC;
|
||||
assert(expectedComponent is actualComponent,
|
||||
"Autowiring the second time wired a different instance");
|
||||
"Autowiring the second time wired a different instance");
|
||||
}
|
||||
|
||||
// Test autowiring unregistered type
|
||||
|
@ -64,7 +64,7 @@ version (unittest)
|
|||
auto container = new shared DependencyContainer();
|
||||
auto componentD = new ComponentD();
|
||||
assertThrown!(ResolveException)(container.autowire(componentD),
|
||||
"Autowiring unregistered type should throw ResolveException");
|
||||
"Autowiring unregistered type should throw ResolveException");
|
||||
}
|
||||
|
||||
// Test autowiring member with non-autowire attribute does not autowire
|
||||
|
@ -74,7 +74,7 @@ version (unittest)
|
|||
auto componentE = new ComponentE();
|
||||
container.autowire(componentE);
|
||||
assert(componentE.componentC is null,
|
||||
"Autowiring should not occur for members with attributes other than @Autowire");
|
||||
"Autowiring should not occur for members with attributes other than @Autowire");
|
||||
}
|
||||
|
||||
// Test autowire class with alias declaration
|
||||
|
@ -87,7 +87,7 @@ version (unittest)
|
|||
container.autowire(componentDeclarationCocktail);
|
||||
|
||||
assert(componentDeclarationCocktail.componentA !is null,
|
||||
"Autowiring class with non-assignable declarations failed");
|
||||
"Autowiring class with non-assignable declarations failed");
|
||||
}
|
||||
|
||||
// Test autowire class with qualifier
|
||||
|
@ -117,9 +117,9 @@ version (unittest)
|
|||
container.autowire(bootstrapBootstrap);
|
||||
|
||||
assert(bootstrapBootstrap.componentX is componentX,
|
||||
"Autowiring class with multiple qualifiers failed");
|
||||
"Autowiring class with multiple qualifiers failed");
|
||||
assert(bootstrapBootstrap.componentC is componentC,
|
||||
"Autowiring class with multiple qualifiers failed");
|
||||
"Autowiring class with multiple qualifiers failed");
|
||||
}
|
||||
|
||||
// Test getting instance from autowired registration will autowire instance
|
||||
|
@ -129,9 +129,9 @@ version (unittest)
|
|||
container.register!ComponentA;
|
||||
|
||||
auto registration = new AutowiredRegistration!ComponentB(typeid(ComponentB),
|
||||
new InstanceFactory(), container).initializeFactoryType().singleInstance();
|
||||
new InstanceFactory(), container).initializeFactoryType().singleInstance();
|
||||
auto instance = cast(ComponentB) registration.getInstance(
|
||||
new AutowireInstantiationContext());
|
||||
new AutowireInstantiationContext());
|
||||
|
||||
assert(instance.componentA !is null);
|
||||
}
|
||||
|
@ -161,7 +161,7 @@ version (unittest)
|
|||
container.autowire(charlie);
|
||||
|
||||
assert(charlie.componentA !is regularComponentA,
|
||||
"Autowiring class with AssignNewInstance did not yield a different instance");
|
||||
"Autowiring class with AssignNewInstance did not yield a different instance");
|
||||
}
|
||||
|
||||
// Test autowiring members from base class
|
||||
|
@ -222,4 +222,20 @@ version (unittest)
|
|||
assert(componentA.instance is componentB);
|
||||
assert(componentB.instance is componentA);
|
||||
}
|
||||
|
||||
// Test autowiring class where a method is marked with @Autowire does nothing
|
||||
unittest
|
||||
{
|
||||
// It should also not show deprecation warning:
|
||||
// Deprecation: `__traits(getAttributes)` may only be used for individual functions, not overload sets such as: `lala`
|
||||
// the result of `__traits(getOverloads)` may be used to select the desired function to extract attributes from
|
||||
|
||||
auto container = new shared DependencyContainer();
|
||||
container.register!AutowiredMethod;
|
||||
auto instance = container.resolve!AutowiredMethod;
|
||||
|
||||
assert(instance !is null);
|
||||
assert(instance.lala == 42);
|
||||
assert(instance.lala(77) == 77);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue