implemented toFactory method

This commit is contained in:
Sergey Penkovsky
2020-07-03 08:27:49 +03:00
parent 5e21fa844b
commit 6616c4d6e7
2 changed files with 11 additions and 2 deletions

View File

@@ -1,4 +1,5 @@
import 'package:dart_di/di_container.dart';
import 'package:dart_di/resolvers/factory_resolver.dart';
import 'package:dart_di/resolvers/resolver.dart';
import 'package:dart_di/resolvers/singelton_resolver.dart';
import 'package:dart_di/resolvers/value_resolver.dart';
@@ -52,8 +53,8 @@ class ResolvingContext<T> extends Resolver {
* Создать фабричный resolver без каких-либо зависимостей
*/
ResolvingContext<T> toFactory<TImpl extends T>(TImpl Function() factory) {
// TODO: implement toFactory
throw UnimplementedError();
Resolver<TImpl> resolver = FactoryResolver<TImpl>(factory);
return toResolver(resolver);
}
/**

View File

@@ -132,6 +132,14 @@ void main() {
expect(containerB.resolve<int>(), expectedIntValue);
});
test("Bind to the factory resolves with value", () {
final container = DiContainer();
final b = B();
container.bind<A>().toFactory(() => b);
expect(container.resolve<A>(), b);
});
}
ResolverMock<T> _makeResolver<T>(T expectedValue) {