diff --git a/angel_container/test/named_test.dart b/angel_container/test/named_test.dart new file mode 100644 index 00000000..2e30965c --- /dev/null +++ b/angel_container/test/named_test.dart @@ -0,0 +1,34 @@ +import 'package:angel_container/angel_container.dart'; +import 'package:test/test.dart'; + +void main() { + Container container; + + setUp(() { + container = new Container(const EmptyReflector()); + container.registerNamedSingleton('foo', new Foo(bar: 'baz')); + }); + + test('fetch by name', () { + expect(container.findByName('foo').bar, 'baz'); + }); + + test('cannot redefine', () { + expect(() => container.registerNamedSingleton('foo', new Foo(bar: 'quux')), + throwsStateError); + }); + + test('throws on unknown name', () { + expect(() => container.findByName('bar'), throwsStateError); + }); + + test('throws on incorrect type', () { + expect(() => container.findByName>('foo'), throwsA(anything)); + }); +} + +class Foo { + final String bar; + + Foo({this.bar}); +}