diff --git a/test/main.dart b/test/main.dart index 927f84c..86e228a 100644 --- a/test/main.dart +++ b/test/main.dart @@ -37,6 +37,22 @@ class InjectableTest { const InjectableTest(); } +@InjectableTest() +class ParameterizedClass { + T t; +} + +class GenericArgument { + +} + +@InjectableTest() +class ClassWithParameterizedDependency { + ParameterizedClass _parameterizedClass; + + ClassWithParameterizedDependency(this._parameterizedClass); +} + // just some classes for testing @InjectableTest() class Engine { @@ -389,6 +405,18 @@ createInjectorSpec(String injectorName, ModuleFactory moduleFactory) { expect(instance.strs).toEqual(['1', '2']); }); + it('should resolve dependencies with parameterized types using non primitive', () { + var injector = new ModuleInjector([moduleFactory() + ..bind(new TypeLiteral>().type, + inject: [], + toFactory: () => new ParameterizedClass()) + ..bind(ClassWithParameterizedDependency) + ]); + var instance = injector.get(ClassWithParameterizedDependency); + + expect(instance).toBeAnInstanceOf(ClassWithParameterizedDependency); + }); + it('should resolve dependencies with parameterized types (TypeLiteral)', () { var injector = new ModuleInjector([moduleFactory() ..bind(new TypeLiteral>().type, toValue: {1 : 'first', 2: 'second'})