Ejemplo n.º 1
0
        public void TestCacheFieldsOverrideBaseFields()
        {
            var provider = new Provider6();

            var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer());

            Assert.AreEqual(provider.Provided3, dependencies.Get <ProvidedType1>());
        }
Ejemplo n.º 2
0
        public void TestCacheProperty()
        {
            var provider = new Provider19();

            var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer());

            Assert.IsNotNull(dependencies.Get <object>());
        }
Ejemplo n.º 3
0
        public void TestCacheStructInternal()
        {
            var provider = new CachedStructProvider();

            var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer());

            Assert.AreEqual(provider.CachedObject.Value, dependencies.GetValue <CachedStructProvider.Struct>().Value);
        }
Ejemplo n.º 4
0
        public void TestCacheMostDerivedType()
        {
            var provider = new Provider10();

            var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer());

            Assert.IsNotNull(dependencies.Get <ProvidedType1>());
        }
Ejemplo n.º 5
0
        public void TestCacheTypeAsParentType()
        {
            var provider = new Provider2();

            var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer());

            Assert.AreEqual(provider, dependencies.Get <object>());
        }
Ejemplo n.º 6
0
        public void TestCacheTypeOverrideParentCache()
        {
            var provider = new Provider3();

            var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer());

            Assert.AreEqual(provider, dependencies.Get <Provider1>());
            Assert.AreEqual(null, dependencies.Get <Provider3>());
        }
        public void TestInheritancePreservesCachingViaBaseType()
        {
            var provider = new Provider26();

            var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer());

            Assert.AreEqual(provider, dependencies.Get <Provider1>());
            Assert.IsNull(dependencies.Get <Provider26>());
        }
Ejemplo n.º 8
0
        public void TestCacheMultipleFields()
        {
            var provider = new Provider5();

            var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer());

            Assert.IsNotNull(dependencies.Get <ProvidedType1>());
            Assert.IsNotNull(dependencies.Get <ProvidedType2>());
        }
Ejemplo n.º 9
0
        public void TestCacheTypeAsMultipleTypes()
        {
            var provider = new Provider8();

            var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer());

            Assert.IsNotNull(dependencies.Get <object>());
            Assert.IsNotNull(dependencies.Get <Provider8>());
        }
Ejemplo n.º 10
0
        public void TestCacheClassAsInterface()
        {
            var provider = new Provider11();

            var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer());

            Assert.IsNotNull(dependencies.Get <IProvidedInterface1>());
            Assert.IsNotNull(dependencies.Get <ProvidedType1>());
        }
        public void TestCachedViaInterface()
        {
            var provider = new Provider25();

            var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer());

            Assert.IsNotNull(dependencies.Get <IProviderInterface3>());
            Assert.IsNotNull(dependencies.Get <IProviderInterface2>());
        }
Ejemplo n.º 12
0
        public void TestCacheNullableInternal(int?testValue)
        {
            var provider = new CachedNullableProvider();

            provider.SetValue(testValue);

            var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer());

            Assert.AreEqual(testValue, dependencies.GetValue <int?>());
        }
        public void TestImplementationOfDerivedInterfacePreservesCaching()
        {
            var provider = new Provider27();

            var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer());

            Assert.AreEqual(provider, dependencies.Get <IProviderInterface2>());
            Assert.IsNull(dependencies.Get <IProviderInterface4>());
            Assert.IsNull(dependencies.Get <Provider27>());
        }
Ejemplo n.º 14
0
        public void TestResolveInternalStruct()
        {
            var receiver = new Receiver12();

            var testObject = new CachedStructProvider();

            var dependencies = DependencyActivator.MergeDependencies(testObject, new DependencyContainer());

            Assert.DoesNotThrow(() => dependencies.Inject(receiver));
            Assert.AreEqual(testObject.CachedObject.Value, receiver.Obj.Value);
        }
Ejemplo n.º 15
0
        public void TestResolveNullableInternal(int?testValue)
        {
            var receiver = new Receiver13();

            var testObject = new CachedNullableProvider();

            testObject.SetValue(testValue);

            var dependencies = DependencyActivator.MergeDependencies(testObject, new DependencyContainer());

            dependencies.Inject(receiver);

            Assert.AreEqual(testValue, receiver.Obj);
        }
Ejemplo n.º 16
0
        public void TestCacheNullReferenceValue()
        {
            var provider = new Provider18();

            Assert.Throws <NullReferenceException>(() => DependencyActivator.MergeDependencies(provider, new DependencyContainer()));
        }
Ejemplo n.º 17
0
        public void TestAttemptToCacheBaseAsDerived()
        {
            var provider = new Provider9();

            Assert.Throws <ArgumentException>(() => DependencyActivator.MergeDependencies(provider, new DependencyContainer()));
        }
Ejemplo n.º 18
0
 protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnlyDependencyContainer parent)
 => DependencyActivator.MergeDependencies(shadowModel, base.CreateChildDependencies(parent), new CacheInfo(parent: typeof(TModel)));
Ejemplo n.º 19
0
        public void TestCacheStructAsInterface()
        {
            var provider = new Provider12();

            Assert.Throws <ArgumentException>(() => DependencyActivator.MergeDependencies(provider, new DependencyContainer()));
        }
Ejemplo n.º 20
0
        public void TestInvalidProtectedInternalAccessor()
        {
            var provider = new Provider16();

            Assert.Throws <AccessModifierNotAllowedForCachedValueException>(() => DependencyActivator.MergeDependencies(provider, new DependencyContainer()));
        }
Ejemplo n.º 21
0
        public void TestValidPublicAccessor()
        {
            var provider = new Provider17();

            Assert.DoesNotThrow(() => DependencyActivator.MergeDependencies(provider, new DependencyContainer()));
        }
Ejemplo n.º 22
0
        public void TestCachePropertyWithNoSetter()
        {
            var provider = new Provider20();

            Assert.DoesNotThrow(() => DependencyActivator.MergeDependencies(provider, new DependencyContainer()));
        }
Ejemplo n.º 23
0
        public void TestCacheWithNonAutoGetter()
        {
            var provider = new Provider24();

            Assert.Throws <AccessModifierNotAllowedForCachedValueException>(() => DependencyActivator.MergeDependencies(provider, new DependencyContainer()));
        }