86 lines
2.1 KiB
Dart
86 lines
2.1 KiB
Dart
// Test classes ported from Laravel's ContainerTest.php
|
|
|
|
// Basic concrete class
|
|
class ContainerConcreteStub {}
|
|
|
|
// Interface and implementations
|
|
abstract class IContainerContractStub {
|
|
String getValue();
|
|
}
|
|
|
|
class ContainerImplementationStub implements IContainerContractStub {
|
|
final String value;
|
|
ContainerImplementationStub([this.value = 'implementation']);
|
|
@override
|
|
String getValue() => value;
|
|
}
|
|
|
|
class ContainerImplementationStubTwo implements IContainerContractStub {
|
|
@override
|
|
String getValue() => 'implementation2';
|
|
}
|
|
|
|
// Classes with dependencies
|
|
class ContainerDependentStub {
|
|
final IContainerContractStub impl;
|
|
ContainerDependentStub(this.impl);
|
|
}
|
|
|
|
class ContainerNestedDependentStub {
|
|
final ContainerDependentStub inner;
|
|
ContainerNestedDependentStub(this.inner);
|
|
}
|
|
|
|
// Classes with default values
|
|
class ContainerDefaultValueStub {
|
|
final ContainerConcreteStub stub;
|
|
final String default_;
|
|
ContainerDefaultValueStub(this.stub, [this.default_ = 'taylor']);
|
|
}
|
|
|
|
// Classes with mixed parameters
|
|
class ContainerMixedPrimitiveStub {
|
|
final int first;
|
|
final ContainerConcreteStub stub;
|
|
final int last;
|
|
ContainerMixedPrimitiveStub(this.first, this.stub, this.last);
|
|
}
|
|
|
|
// Classes for variable injection
|
|
class ContainerInjectVariableStub {
|
|
final String something;
|
|
ContainerInjectVariableStub(ContainerConcreteStub concrete, this.something);
|
|
}
|
|
|
|
class ContainerInjectVariableStubWithInterface
|
|
implements IContainerContractStub {
|
|
final String something;
|
|
ContainerInjectVariableStubWithInterface(
|
|
ContainerConcreteStub concrete, this.something);
|
|
@override
|
|
String getValue() => something;
|
|
}
|
|
|
|
// Class for contextual binding
|
|
class ContainerContextualBindingCallTarget {
|
|
IContainerContractStub work(IContainerContractStub stub) => stub;
|
|
}
|
|
|
|
// Classes for circular dependency testing
|
|
class CircularAStub {
|
|
CircularAStub(CircularBStub b);
|
|
}
|
|
|
|
class CircularBStub {
|
|
CircularBStub(CircularCStub c);
|
|
}
|
|
|
|
class CircularCStub {
|
|
CircularCStub(CircularAStub a);
|
|
}
|
|
|
|
// Additional test types
|
|
class StubAlias implements IContainerContractStub {
|
|
@override
|
|
String getValue() => 'alias';
|
|
}
|