import 'package:cherrypick/src/binding.dart'; import 'package:test/test.dart'; void main() { group('Check instance.', () { group('Without name.', () { test('Binding resolves null', () { final binding = Binding(); expect(binding.instance, null); }); test('Binding check mode', () { final expectedValue = 5; final binding = Binding().toInstance(expectedValue); expect(binding.mode, Mode.INSTANCE); }); test('Binding check singeltone', () { final expectedValue = 5; final binding = Binding().toInstance(expectedValue); expect(binding.isSingeltone, true); }); test('Binding check value', () { final expectedValue = 5; final binding = Binding().toInstance(expectedValue); expect(binding.instance, expectedValue); }); test('Binding resolves value', () { final expectedValue = 5; final binding = Binding().toInstance(expectedValue); expect(binding.instance, expectedValue); }); }); group('With name.', () { test('Binding resolves null', () { final binding = Binding().withName('expectedValue'); expect(binding.instance, null); }); test('Binding check mode', () { final expectedValue = 5; final binding = Binding().withName('expectedValue').toInstance(expectedValue); expect(binding.mode, Mode.INSTANCE); }); test('Binding check key', () { final expectedValue = 5; final binding = Binding().withName('expectedValue').toInstance(expectedValue); expect(binding.key, int); }); test('Binding check singeltone', () { final expectedValue = 5; final binding = Binding().withName('expectedValue').toInstance(expectedValue); expect(binding.isSingeltone, true); }); test('Binding check value', () { final expectedValue = 5; final binding = Binding().withName('expectedValue').toInstance(expectedValue); expect(binding.instance, expectedValue); }); test('Binding check value', () { final expectedValue = 5; final binding = Binding().withName('expectedValue').toInstance(expectedValue); expect(binding.name, 'expectedValue'); }); test('Binding resolves value', () { final expectedValue = 5; final binding = Binding().withName('expectedValue').toInstance(expectedValue); expect(binding.instance, expectedValue); }); }); }); group('Check provide.', () { group('Without name.', () { test('Binding resolves null', () { final binding = Binding(); expect(binding.provider, null); }); test('Binding check mode', () { final expectedValue = 5; final binding = Binding().toProvide(() => expectedValue); expect(binding.mode, Mode.PROVIDER_INSTANCE); }); test('Binding check singeltone', () { final expectedValue = 5; final binding = Binding().toProvide(() => expectedValue); expect(binding.isSingeltone, false); }); test('Binding check value', () { final expectedValue = 5; final binding = Binding().toProvide(() => expectedValue); expect(binding.provider, expectedValue); }); test('Binding resolves value', () { final expectedValue = 5; final binding = Binding().toProvide(() => expectedValue); expect(binding.provider, expectedValue); }); }); group('With name.', () { test('Binding resolves null', () { final binding = Binding().withName('expectedValue'); expect(binding.provider, null); }); test('Binding check mode', () { final expectedValue = 5; final binding = Binding() .withName('expectedValue') .toProvide(() => expectedValue); expect(binding.mode, Mode.PROVIDER_INSTANCE); }); test('Binding check key', () { final expectedValue = 5; final binding = Binding() .withName('expectedValue') .toProvide(() => expectedValue); expect(binding.key, int); }); test('Binding check singeltone', () { final expectedValue = 5; final binding = Binding() .withName('expectedValue') .toProvide(() => expectedValue); expect(binding.isSingeltone, false); }); test('Binding check value', () { final expectedValue = 5; final binding = Binding() .withName('expectedValue') .toProvide(() => expectedValue); expect(binding.provider, expectedValue); }); test('Binding check value', () { final expectedValue = 5; final binding = Binding() .withName('expectedValue') .toProvide(() => expectedValue); expect(binding.name, 'expectedValue'); }); test('Binding resolves value', () { final expectedValue = 5; final binding = Binding() .withName('expectedValue') .toProvide(() => expectedValue); expect(binding.provider, expectedValue); }); }); }); group('Check singeltone provide.', () { group('Without name.', () { test('Binding resolves null', () { final binding = Binding().singeltone(); expect(binding.provider, null); }); test('Binding check mode', () { final expectedValue = 5; final binding = Binding().toProvide(() => expectedValue).singeltone(); expect(binding.mode, Mode.PROVIDER_INSTANCE); }); test('Binding check singeltone', () { final expectedValue = 5; final binding = Binding().toProvide(() => expectedValue).singeltone(); expect(binding.isSingeltone, true); }); test('Binding check value', () { final expectedValue = 5; final binding = Binding().toProvide(() => expectedValue).singeltone(); expect(binding.provider, expectedValue); }); test('Binding resolves value', () { final expectedValue = 5; final binding = Binding().toProvide(() => expectedValue).singeltone(); expect(binding.provider, expectedValue); }); }); group('With name.', () { test('Binding resolves null', () { final binding = Binding().withName('expectedValue').singeltone(); expect(binding.provider, null); }); test('Binding check mode', () { final expectedValue = 5; final binding = Binding() .withName('expectedValue') .toProvide(() => expectedValue) .singeltone(); expect(binding.mode, Mode.PROVIDER_INSTANCE); }); test('Binding check key', () { final expectedValue = 5; final binding = Binding() .withName('expectedValue') .toProvide(() => expectedValue) .singeltone(); expect(binding.key, int); }); test('Binding check singeltone', () { final expectedValue = 5; final binding = Binding() .withName('expectedValue') .toProvide(() => expectedValue) .singeltone(); expect(binding.isSingeltone, true); }); test('Binding check value', () { final expectedValue = 5; final binding = Binding() .withName('expectedValue') .toProvide(() => expectedValue) .singeltone(); expect(binding.provider, expectedValue); }); test('Binding check value', () { final expectedValue = 5; final binding = Binding() .withName('expectedValue') .toProvide(() => expectedValue) .singeltone(); expect(binding.name, 'expectedValue'); }); test('Binding resolves value', () { final expectedValue = 5; final binding = Binding() .withName('expectedValue') .toProvide(() => expectedValue) .singeltone(); expect(binding.provider, expectedValue); }); }); }); }