From 9070c26d678c1587eeacca7514e8068e2b8ed4e9 Mon Sep 17 00:00:00 2001 From: Sergey Penkovsky Date: Fri, 3 Jul 2020 00:42:44 +0300 Subject: [PATCH] implemented tests --- test/di_container_test.dart | 68 +++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/test/di_container_test.dart b/test/di_container_test.dart index ddd7b62..b3e0e6b 100644 --- a/test/di_container_test.dart +++ b/test/di_container_test.dart @@ -63,6 +63,74 @@ void main() { expect(() => container.bind().toResolver(_makeResolver(3)), throwsA(isA())); }); + + test("Container resolve() returns a value from parent container", () { + final expectedValue = 5; + final parentContainer = DiContainer(); + final container = DiContainer(parentContainer); + + parentContainer.bind().toResolver(_makeResolver(expectedValue)); + + expect(container.resolve(), expectedValue); + }); + }); + + test("Container resolve() returns a several value from parent container", + () { + final expectedIntValue = 5; + final expectedStringValue = "Hello world"; + final parentContainer = DiContainer(); + final container = DiContainer(parentContainer); + + parentContainer.bind().toResolver(_makeResolver(expectedIntValue)); + parentContainer + .bind() + .toResolver(_makeResolver(expectedStringValue)); + + expect(container.resolve(), expectedIntValue); + expect(container.resolve(), expectedStringValue); + }); + + test("Container resolve() throws a state error if parent hasn't value too", + () { + final parentContainer = DiContainer(); + final container = DiContainer(parentContainer); + expect(() => container.resolve(), throwsA(isA())); + }); + + test("Container has() returns false if parent has a resolver", () { + final parentContainer = DiContainer(); + final container = DiContainer(parentContainer); + + parentContainer.bind().toResolver(_makeResolver(5)); + + expect(container.has(), false); + }); + + test("Container has() returns false if parent hasn't a resolver", () { + final parentContainer = DiContainer(); + final container = DiContainer(parentContainer); + + expect(container.has(), false); + }); + + test("Container hasInTree() returns true if parent has a resolver", () { + final parentContainer = DiContainer(); + final container = DiContainer(parentContainer); + + parentContainer.bind().toResolver(_makeResolver(5)); + + expect(container.hasInTree(), true); + }); + + test("Test asSingelton", () { + final expectedIntValue = 10; + final containerA = DiContainer(); + final containerB = DiContainer(containerA); + + containerA.bind().toValue(expectedIntValue).asSingleton(); + + expect(containerB.resolve(), expectedIntValue); }); }