ipjohnson / Grace

Grace is a feature rich dependency injection container library
MIT License
337 stars 33 forks source link

Complex missing dependency bug #84

Closed ipjohnson closed 7 years ago

ipjohnson commented 7 years ago

There looks to be a minor bug when resolving complex nested that rely on missing dependency resolver. It only happens when you force the container to register concrete types automatically.

Here is the test case to cause it

        [Fact]
        public void Scoped_Dependent_MissingType()
        {
            var container = new DependencyInjectionContainer();

            var funcService = container.Locate<DependentService<Func<Scoped<DisposableService>>>>();

            var disposed = false;

            using (var scoped = funcService.Value())
            {
                Assert.NotNull(scoped);
                Assert.NotNull(scoped.Instance);

                scoped.Instance.Disposing += (sender, args) => disposed = true;

                Assert.False(disposed);
            }

            Assert.True(disposed);
        }
ipjohnson commented 7 years ago

Completed in 6.1.0