public void TestCacheFieldsOverrideBaseFields() { var provider = new Provider6(); var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer()); Assert.AreEqual(provider.Provided3, dependencies.Get <ProvidedType1>()); }
public void TestCacheProperty() { var provider = new Provider19(); var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer()); Assert.IsNotNull(dependencies.Get <object>()); }
public void TestCacheStructInternal() { var provider = new CachedStructProvider(); var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer()); Assert.AreEqual(provider.CachedObject.Value, dependencies.GetValue <CachedStructProvider.Struct>().Value); }
public void TestCacheMostDerivedType() { var provider = new Provider10(); var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer()); Assert.IsNotNull(dependencies.Get <ProvidedType1>()); }
public void TestCacheTypeAsParentType() { var provider = new Provider2(); var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer()); Assert.AreEqual(provider, dependencies.Get <object>()); }
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>()); }
public void TestCacheMultipleFields() { var provider = new Provider5(); var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer()); Assert.IsNotNull(dependencies.Get <ProvidedType1>()); Assert.IsNotNull(dependencies.Get <ProvidedType2>()); }
public void TestCacheTypeAsMultipleTypes() { var provider = new Provider8(); var dependencies = DependencyActivator.MergeDependencies(provider, new DependencyContainer()); Assert.IsNotNull(dependencies.Get <object>()); Assert.IsNotNull(dependencies.Get <Provider8>()); }
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>()); }
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>()); }
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); }
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); }
public void TestCacheNullReferenceValue() { var provider = new Provider18(); Assert.Throws <NullReferenceException>(() => DependencyActivator.MergeDependencies(provider, new DependencyContainer())); }
public void TestAttemptToCacheBaseAsDerived() { var provider = new Provider9(); Assert.Throws <ArgumentException>(() => DependencyActivator.MergeDependencies(provider, new DependencyContainer())); }
protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnlyDependencyContainer parent) => DependencyActivator.MergeDependencies(shadowModel, base.CreateChildDependencies(parent), new CacheInfo(parent: typeof(TModel)));
public void TestCacheStructAsInterface() { var provider = new Provider12(); Assert.Throws <ArgumentException>(() => DependencyActivator.MergeDependencies(provider, new DependencyContainer())); }
public void TestInvalidProtectedInternalAccessor() { var provider = new Provider16(); Assert.Throws <AccessModifierNotAllowedForCachedValueException>(() => DependencyActivator.MergeDependencies(provider, new DependencyContainer())); }
public void TestValidPublicAccessor() { var provider = new Provider17(); Assert.DoesNotThrow(() => DependencyActivator.MergeDependencies(provider, new DependencyContainer())); }
public void TestCachePropertyWithNoSetter() { var provider = new Provider20(); Assert.DoesNotThrow(() => DependencyActivator.MergeDependencies(provider, new DependencyContainer())); }
public void TestCacheWithNonAutoGetter() { var provider = new Provider24(); Assert.Throws <AccessModifierNotAllowedForCachedValueException>(() => DependencyActivator.MergeDependencies(provider, new DependencyContainer())); }