public void GetAllInstances_GivenObjectsExists_ShouldNotThrowExceptionAndReturnListOfObjects()
        {
            //---------------Set up test pack-------------------
            var fakeObject1 = new FakeObject();
            var fakeObject2 = new FakeObject();
            var container   = new Container();

            container.Configure(expression =>
            {
                expression.For <IFakeObject>().Use(fakeObject1);
                expression.For <IFakeObject>().Use(fakeObject2);
            });

            var iocContainer = new StructuremapThuriaIocContainer(container);
            IEnumerable <object> returnedObjects = null;

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            Assert.DoesNotThrow(() => returnedObjects = iocContainer.GetAllInstances(typeof(IFakeObject)));
            //---------------Test Result -----------------------
            var enumerable = returnedObjects as object[] ?? returnedObjects.ToArray();

            enumerable.Should().NotBeNull();
            enumerable.Count().Should().Be(2);
        }
        public void GetAllInstances_ShouldGetInstancesFromStructuremapContainer()
        {
            //---------------Set up test pack-------------------
            var container    = Substitute.For <IContainer>();
            var iocContainer = new StructuremapThuriaIocContainer(container);

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            iocContainer.GetAllInstances(typeof(IFakeObject));
            //---------------Test Result -----------------------
            container.Received(1).GetAllInstances(typeof(IFakeObject));
        }
        public void GetAllInstances_GivenObjectsNotFound_ShouldNotThrowExceptionAndReturnEmptyList()
        {
            //---------------Set up test pack-------------------
            var container    = new Container();
            var iocContainer = new StructuremapThuriaIocContainer(container);
            IEnumerable <object> returnedObjects = null;

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            Assert.DoesNotThrow(() => returnedObjects = iocContainer.GetAllInstances(typeof(IFakeObject)));
            //---------------Test Result -----------------------
            var enumerable = returnedObjects as object[] ?? returnedObjects.ToArray();

            enumerable.Should().NotBeNull();
            enumerable.Any().Should().BeFalse();
        }
        public void GetAllInstances_Generic_GivenObjectsExists_ShouldNotThrowExceptionAndReturnListOfObjects()
        {
            //---------------Set up test pack-------------------
            var fakeObject1 = new FakeObject();
            var fakeObject2 = new FakeObject();
            var container   = new Container();

            container.Inject(typeof(IFakeObject), fakeObject1);
            container.Inject(typeof(IFakeObject), fakeObject2);

            var iocContainer = new StructuremapThuriaIocContainer(container);
            IEnumerable <IFakeObject> returnedObjects = null;

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            Assert.DoesNotThrow(() => returnedObjects = iocContainer.GetAllInstances <IFakeObject>());
            //---------------Test Result -----------------------
            var fakeObjects = returnedObjects as IFakeObject[] ?? returnedObjects.ToArray();

            fakeObjects.Should().NotBeNull();
            fakeObjects.Any().Should().BeTrue();
            fakeObjects.Count().Should().Be(2);
        }