public void TestWantSomeFutureHandlersAlreadyBoundVolatile() { IInjector i = TangFactory.GetTang().NewInjector(); i.BindVolatileInstance(GenericType <IAHandler> .Class, new AHandlerImpl()); i.BindVolatileInstance(GenericType <IBHandler> .Class, new BHandlerImpl()); i.GetInstance <WantSomeFutureHandlers>(); }
public void TestExternalLegacyConstructor() { ICsConfigurationBuilder cb = tang.NewConfigurationBuilder(); cb.BindConstructor(GenericType <ExternalConstructorExample.Legacy> .Class, GenericType <ExternalConstructorExample.LegacyWrapper> .Class); IInjector i = tang.NewInjector(cb.Build()); i.BindVolatileInstance(GenericType <int> .Class, 42); i.BindVolatileInstance(GenericType <string> .Class, "The meaning of life is "); ExternalConstructorExample.Legacy l = i.GetInstance <ExternalConstructorExample.Legacy>(); Assert.AreEqual(42, l.X); Assert.AreEqual("The meaning of life is ", l.Y); }
public void TestObjectInjectDefault() { IInjector i = TangFactory.GetTang().NewInjector(); i.BindVolatileInstance(GenericType <Integer> .Class, new Integer(42)); i.BindVolatileInstance(GenericType <Float> .Class, new Float(42.0001f)); ISet <INumber> actual = ((Pool)i.GetInstance(typeof(Pool))).Numbers; ISet <INumber> expected = new HashSet <INumber>(); expected.Add(new Integer(42)); expected.Add(new Float(42.0001f)); Assert.True(actual.Contains(new Integer(42))); Assert.True(actual.Contains(new Float(42.0001f))); Assert.Equal(actual.Count, expected.Count); }
public void TestInjectionExtension() { IInjector i = TangFactory.GetTang().NewInjector(); i.BindVolatileInstance <Integer>(new Integer(1)); i.BindVolatileInstance <Float>(new Float(2f)); ISet <INumber> actual = (ISet <INumber>) i.GetNamedInstance <SetOfClassesDefaultClass, ISet <INumber> >(); ISet <INumber> expected = new HashSet <INumber>(); expected.Add(new Integer(1)); Assert.Equal(expected.Count, actual.Count); Assert.True(actual.Contains(new Integer(1))); }
public void TestDefaultAsClass() { IInjector i = TangFactory.GetTang().NewInjector(); i.BindVolatileInstance(GenericType <Integer> .Class, new Integer(1)); i.BindVolatileInstance(GenericType <Float> .Class, new Float(2f)); ISet <INumber> actual = (ISet <INumber>) i.GetNamedInstance <SetOfClassesDefaultClass, ISet <INumber> >(GenericType <SetOfClassesDefaultClass> .Class); ISet <INumber> expected = new HashSet <INumber>(); expected.Add(new Integer(1)); Assert.AreEqual(expected.Count, actual.Count); Assert.IsTrue(actual.Contains(new Integer(1))); }
public RootContextLauncher(string id, IConfiguration contextConfiguration, Optional<ServiceConfiguration> rootServiceConfig, Optional<IConfiguration> rootTaskConfig, IHeartBeatManager heartbeatManager) { Id = id; _rootContextConfiguration = contextConfiguration; _rootServiceInjector = InjectServices(rootServiceConfig); _rootServiceInjector.BindVolatileInstance(GenericType<IHeartBeatManager>.Class, heartbeatManager); RootTaskConfig = rootTaskConfig; }
public RootContextLauncher(string id, IConfiguration contextConfiguration, Optional <IConfiguration> rootServiceConfig, Optional <IConfiguration> rootTaskConfig, IHeartBeatManager heartbeatManager) { Id = id; _rootContextConfiguration = contextConfiguration; _rootServiceInjector = InjectServices(rootServiceConfig); _rootServiceInjector.BindVolatileInstance(GenericType <IHeartBeatManager> .Class, heartbeatManager); RootTaskConfig = rootTaskConfig; }
public void TestObjectInjectBound() { ICsConfigurationBuilder cb = TangFactory.GetTang().NewConfigurationBuilder(); cb.BindSetEntry <SetOfClasses, Integer, INumber>(GenericType <SetOfClasses> .Class, GenericType <Integer> .Class); cb.BindSetEntry <SetOfClasses, Float, INumber>(GenericType <SetOfClasses> .Class, GenericType <Float> .Class); IInjector i = TangFactory.GetTang().NewInjector(cb.Build()); i.BindVolatileInstance(GenericType <Integer> .Class, new Integer(4)); i.BindVolatileInstance(GenericType <Float> .Class, new Float(42.0001f)); ISet <INumber> actual = i.GetInstance <Pool>().Numbers; ISet <INumber> expected = new HashSet <INumber>(); expected.Add(new Integer(4)); expected.Add(new Float(42.0001f)); Assert.True(Utilities.Utilities.Equals <INumber>(actual, expected)); }
public void TestObjectInjectWithTypeType() { IList <Type> injected = new List <Type>(); injected.Add(typeof(TestSetInjection.Integer)); injected.Add(typeof(TestSetInjection.Float)); ICsConfigurationBuilder cb = TangFactory.GetTang().NewConfigurationBuilder(); cb.BindList(typeof(ListOfClasses), injected); IInjector i = TangFactory.GetTang().NewInjector(cb.Build()); i.BindVolatileInstance(GenericType <TestSetInjection.Integer> .Class, new TestSetInjection.Integer(42)); i.BindVolatileInstance(GenericType <TestSetInjection.Float> .Class, new TestSetInjection.Float(42.0001f)); IList <INumber> actual = ((PoolListClass)i.GetInstance(typeof(PoolListClass))).Numbers; Assert.True(actual.Contains(new TestSetInjection.Integer(42))); Assert.True(actual.Contains(new TestSetInjection.Float(42.0001f))); }
public void TestClassNameInjectWithNamedParameterName() { IList <string> injected = new List <string>(); injected.Add(typeof(TestSetInjection.Integer).AssemblyQualifiedName); injected.Add(typeof(TestSetInjection.Float).AssemblyQualifiedName); IConfigurationBuilder cb = TangFactory.GetTang().NewConfigurationBuilder(); cb.BindList(typeof(ListOfClasses).AssemblyQualifiedName, injected); IInjector i = TangFactory.GetTang().NewInjector(cb.Build()); i.BindVolatileInstance(GenericType <TestSetInjection.Integer> .Class, new TestSetInjection.Integer(42)); i.BindVolatileInstance(GenericType <TestSetInjection.Float> .Class, new TestSetInjection.Float(42.0001f)); IList <INumber> actual = ((PoolListClass)i.GetInstance(typeof(PoolListClass))).Numbers; Assert.True(actual.Contains(new TestSetInjection.Integer(42))); Assert.True(actual.Contains(new TestSetInjection.Float(42.0001f))); }
public void TestLegacyConstructor() { ICsConfigurationBuilder cb = tang.NewConfigurationBuilder(); IList <string> constructorArg = new List <string>(); constructorArg.Add(ReflectionUtilities.GetAssemblyQualifiedName(typeof(int))); constructorArg.Add(ReflectionUtilities.GetAssemblyQualifiedName(typeof(string))); cb.RegisterLegacyConstructor(ReflectionUtilities.GetAssemblyQualifiedName(typeof(LegacyConstructor)), constructorArg); //cb.Bind(typeof(LegacyConstructor), typeof(LegacyConstructor)); cb.BindImplementation(GenericType <LegacyConstructor> .Class, GenericType <LegacyConstructor> .Class); IInjector i = tang.NewInjector(cb.Build()); i.BindVolatileInstance(GenericType <int> .Class, 42); i.BindVolatileInstance(GenericType <string> .Class, "The meaning of life is "); LegacyConstructor l = i.GetInstance <LegacyConstructor>(); Assert.AreEqual(42, l.X); Assert.AreEqual("The meaning of life is ", l.Y); }
public void TestObjectInjectWithNames() { ICsClassHierarchy classH = TangFactory.GetTang().GetDefaultClassHierarchy(); IList <INode> injected = new List <INode>(); injected.Add(classH.GetNode(typeof(TestSetInjection.Integer))); injected.Add(classH.GetNode(typeof(TestSetInjection.Float))); IConfigurationBuilder cb = TangFactory.GetTang().NewConfigurationBuilder(); cb.BindList(typeof(ListOfClasses).AssemblyQualifiedName, injected); IInjector i = TangFactory.GetTang().NewInjector(cb.Build()); i.BindVolatileInstance(GenericType <TestSetInjection.Integer> .Class, new TestSetInjection.Integer(42)); i.BindVolatileInstance(GenericType <TestSetInjection.Float> .Class, new TestSetInjection.Float(42.0001f)); IList <INumber> actual = ((PoolListClass)i.GetInstance(typeof(PoolListClass))).Numbers; Assert.True(actual.Contains(new TestSetInjection.Integer(42))); Assert.True(actual.Contains(new TestSetInjection.Float(42.0001f))); }
public void TestExternalObject() { ITang tang = TangFactory.GetTang(); ICsConfigurationBuilder cb = tang.NewConfigurationBuilder(); IInjector injector = tang.NewInjector(cb.Build()); // bind an object to the injetor so that Tang will get this instance from cache directly instead of inject it when injecting ClassWithExternalObject injector.BindVolatileInstance(GenericType <ExternalClass> .Class, new ExternalClass()); ClassWithExternalObject o = injector.GetInstance <ClassWithExternalObject>(); Assert.IsNotNull(o.ExternalObject is ExternalClass); }
/// <summary> /// Instantiates an IInjector using the bridge configuration. /// </summary> /// <returns></returns> internal static IInjector GetBridgeInjector(IEvaluatorRequestor evaluatorRequestor) { lock (LockObject) { if (bridgeInjector == null) { bridgeInjector = TangFactory.GetTang().NewInjector(GetBridgeConfiguration()); if (evaluatorRequestor != null) { bridgeInjector.BindVolatileInstance(GenericType <IEvaluatorRequestor> .Class, evaluatorRequestor); } } return(bridgeInjector); } }
/// <summary> /// Instantiates an IInjector using the bridge configuration. /// </summary> /// <returns></returns> internal static IInjector GetBridgeInjector(IEvaluatorRequestor evaluatorRequestor) { lock (LockObject) { if (BridgeInjector == null) { BridgeInjector = TangFactory.GetTang().NewInjector(GetBridgeConfiguration()); if (evaluatorRequestor != null) { BridgeInjector.BindVolatileInstance(GenericType<IEvaluatorRequestor>.Class, evaluatorRequestor); } } return BridgeInjector; } }