import 'package:dart_di/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); }); }); }); }