import 'package:angel3_container/angel3_container.dart'; import 'package:test/test.dart'; void main() { late Container container; setUp(() { container = Container(const EmptyReflector()); container.registerNamedSingleton('foo', Foo(bar: 'baz')); }); test('fetch by name', () { expect(container.findByName('foo')!.bar, 'baz'); }); test('cannot redefine', () { expect(() => container.registerNamedSingleton('foo', 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}); }