public void ImmutablilityTest() { // builder methods return copies; the original module is immutable ConfigurationModule builder1 = MyConfigurationModule.Conf .Set(MyConfigurationModule.TheFoo, GenericType <FooImpl> .Class); Assert.IsFalse(builder1 == MyConfigurationModule.Conf); IConfiguration config1 = builder1.Build(); // reusable IConfiguration config2 = MyConfigurationModule.Conf .Set(MyConfigurationModule.TheFoo, GenericType <FooAltImpl> .Class) .Build(); // instantiation of each just to be sure everything is fine in this situation IInjector i1 = TangFactory.GetTang().NewInjector(config1); IInjector i2 = TangFactory.GetTang().NewInjector(config2); Assert.AreEqual(42, ((IFoo)i1.GetInstance(typeof(IFoo))).getFooness()); Assert.AreEqual(7, ((IFoo)i2.GetInstance(typeof(IFoo))).getFooness()); }
public void OnNext(IAllocatedEvaluator eval) { try { _taskId = _failTaskName + "_" + eval.Id; Log.Log(Level.Info, "Submit task: {0}", _taskId); IConfiguration contextConfig = ContextConfiguration.ConfigurationModule.Set(ContextConfiguration.Identifier, _taskId).Build(); ConfigurationModule taskConfig = TaskConfiguration.ConfigurationModule.Set(TaskConfiguration.Identifier, _taskId); switch (_failTaskName) { case "FailTask": taskConfig = taskConfig.Set(TaskConfiguration.Task, GenericType <FailTask> .Class); break; case "FailTaskCall": taskConfig = taskConfig.Set(TaskConfiguration.Task, GenericType <FailTaskCall> .Class); break; case "FailTaskMsg": taskConfig = taskConfig .Set(TaskConfiguration.Task, GenericType <FailTaskMsg> .Class) .Set(TaskConfiguration.OnMessage, GenericType <FailTaskMsg> .Class); break; case "FailTaskSuspend": taskConfig = taskConfig .Set(TaskConfiguration.Task, GenericType <FailTaskSuspend> .Class) .Set(TaskConfiguration.OnSuspend, GenericType <FailTaskSuspend> .Class); break; case "FailTaskStart": taskConfig = taskConfig .Set(TaskConfiguration.Task, GenericType <FailTaskStart> .Class) .Set(TaskConfiguration.OnTaskStart, GenericType <FailTaskStart> .Class); break; case "FailTaskStop": taskConfig = taskConfig .Set(TaskConfiguration.Task, GenericType <FailTaskStop> .Class) .Set(TaskConfiguration.OnTaskStop, GenericType <FailTaskStop> .Class) .Set(TaskConfiguration.OnClose, GenericType <FailTaskStop> .Class); break; case "FailTaskClose": taskConfig = taskConfig .Set(TaskConfiguration.Task, GenericType <FailTaskClose> .Class) .Set(TaskConfiguration.OnClose, GenericType <FailTaskClose> .Class); break; default: break; } eval.SubmitContextAndTask(contextConfig, taskConfig.Build()); } catch (BindException ex) { Log.Log(Level.Warning, "Configuration error", ex); throw new DriverSideFailure("Configuration error", ex); } }