public void DictionaryWithDifferentValueTypes() { var config = new MutableConfiguration("dictionary"); config.CreateChild("entry") .Attribute("key", "intentry") .Attribute("valueType", "System.Int32, mscorlib") .Value = "123"; config.CreateChild("entry") .Attribute("key", "values") .Attribute("valueType", "System.Int32[], mscorlib") .CreateChild("array") .Attribute("type", "System.Int32, mscorlib") .CreateChild("item", "400"); var dict = (IDictionary)converter.PerformConversion(config, typeof(IDictionary)); Assert.IsNotNull(dict); Assert.AreEqual(123, dict["intentry"]); var values = (int[])dict["values"]; Assert.IsNotNull(values); Assert.AreEqual(1, values.Length); Assert.AreEqual(400, values[0]); }
public IConfiguration ToIConfiguration() { var config = new MutableConfiguration("rhino.esb"); var busConfig = config.CreateChild("bus") .Attribute("endpoint", Endpoint) .Attribute("threadCount", ThreadCount.ToString()) .Attribute("numberOfRetries", NumberOfRetries.ToString()); if (string.IsNullOrEmpty(Name) == false) { busConfig.Attribute("name", Name); } if (string.IsNullOrEmpty(LoadBalancerEndpoint) == false) { busConfig.Attribute("loadBalancerEndpoint", LoadBalancerEndpoint); } if (string.IsNullOrEmpty(LogEndpoint) == false) { busConfig.Attribute("logEndpoint", LogEndpoint); } var messagesConfig = config.CreateChild("messages"); foreach (var message in Messages) { messagesConfig.CreateChild("add") .Attribute("name", message.Key) .Attribute("endpoint", message.Value); } return(config); }
public void TriggerListeners() { using (var c = new WindsorContainer()) { var config = new MutableConfiguration("facility"); config.CreateChild("quartz").CreateChild("item", "qwe").Attribute("key", "qq"); var listenerConfig = config.CreateChild("triggerListeners"); listenerConfig .CreateChild("job") .Attribute("name", "someJob") .CreateChild("listener", "${trigli}"); c.Kernel.ConfigurationStore.AddFacilityConfiguration("quartz", config); c.Register(Component.For <ITriggerListener>().ImplementedBy <SomeTriggerListener>().Named("trigli")); c.AddFacility("quartz", new QuartzFacility()); var scheduler = (QuartzNetScheduler)c.Resolve <IScheduler>(); foreach (var l in scheduler.ListenerManager.GetTriggerListeners()) { Console.WriteLine(l); } var trigli = scheduler.ListenerManager.GetTriggerListener(typeof(SomeTriggerListener).AssemblyQualifiedName); Assert.IsNotNull(trigli); } }
public void GlobalJobListeners_with_no_registration_throws() { using (var c = new WindsorContainer()) { var config = new MutableConfiguration("facility"); config.CreateChild("quartz").CreateChild("item", "qwe").Attribute("key", "qq"); config.CreateChild("globalJobListeners").CreateChild("item", "${jobli}"); c.Kernel.ConfigurationStore.AddFacilityConfiguration("quartz", config); c.AddFacility("quartz", new QuartzFacility()); c.Resolve <IScheduler>(); } }
public void DisposableJobIsDisposed() { using (var c = new WindsorContainer()) { c.Register(Component.For <DisposableJob>().LifeStyle.Transient); var config = new MutableConfiguration("facility"); config.CreateChild("quartz"); c.Kernel.ConfigurationStore.AddFacilityConfiguration("quartz", config); c.AddFacility("quartz", new QuartzFacility()); var scheduler = c.Resolve <IScheduler>(); var jobDetail = JobBuilder.Create <DisposableJob>().WithIdentity("somejob").Build(); var trigger = TriggerBuilder.Create().WithIdentity("sometrigger").WithSimpleSchedule(s => s.WithIntervalInSeconds(1)).Build(); var task = scheduler.ScheduleJob(jobDetail, trigger); task.Wait(); var dateTimeOffset = task.Result; Assert.IsFalse(DisposableJob.Disposed); scheduler.Start(); Thread.Sleep(1000); Assert.IsTrue(DisposableJob.Disposed); } }
public void GlobalJobListeners() { using (var c = new WindsorContainer()) { var config = new MutableConfiguration("facility"); config.CreateChild("quartz").CreateChild("item", "qwe").Attribute("key", "qq"); config.CreateChild("globalJobListeners").CreateChild("item", "${jobli}"); c.Kernel.ConfigurationStore.AddFacilityConfiguration("quartz", config); c.Register(Component.For <IJobListener>().ImplementedBy <SomeJobListener>().Named("jobli")); c.AddFacility("quartz", new QuartzFacility()); var scheduler = (QuartzNetScheduler)c.Resolve <IScheduler>(); foreach (IJobListener l in scheduler.ListenerManager.GetJobListeners()) { Console.WriteLine(l.Name); } Assert.AreEqual(2, scheduler.ListenerManager.GetJobListeners().Count); } }
/// <summary> /// Adds a database configuration item to the store. /// </summary> /// <example> /// <code> /// <database> /// <provider name="SQLite3"/> /// <dataSource name="ibatisnet.sqlmap" connectionString="Data Source=ibatisnet.sqlite;Version=3;"/> /// </database> /// </code> /// </example> public void AddDatabase(IDbProvider dbProvider, string dataSourceConnectionString) { // hack: serialize the object to IConfiguration so it can eventually be converted back to IDbProvider configurationStore.AddProviderConfiguration(ProviderSerializer.Serialize(dbProvider)); MutableConfiguration database = new MutableConfiguration(ConfigConstants.ELEMENT_DATABASE); MutableConfiguration provider = database.CreateChild("provider"); provider.CreateAttribute(ConfigConstants.ATTRIBUTE_NAME, dbProvider.Id); MutableConfiguration dataSource = database.CreateChild("dataSource"); dataSource.CreateAttribute(ConfigConstants.ATTRIBUTE_NAME, "defaultDataSource"); dataSource.CreateAttribute("connectionString", dataSourceConnectionString); configurationStore.AddDatabaseConfiguration(database); }
internal IConfiguration BuildConfig(IConfiguration config) { if (config == null) { throw new FacilityException("Please define the configuration for Quartz.Net facility"); } var quartzNet = config.Children["quartz"]; if (quartzNet == null) { throw new FacilityException("Please define the Quartz.Net properties"); } var componentConfig = new MutableConfiguration(typeof(QuartzNetScheduler).AssemblyQualifiedName); var parameters = componentConfig.CreateChild("parameters"); BuildProps(quartzNet, parameters.CreateChild("props")); var globalJobListeners = config.Children["globalJobListeners"]; if (globalJobListeners != null) { BuildServiceArray <IJobListener>(globalJobListeners, parameters.CreateChild("SetGlobalJobListeners")); } var globalTriggerListeners = config.Children["globalTriggerListeners"]; if (globalTriggerListeners != null) { BuildServiceArray <ITriggerListener>(globalTriggerListeners, parameters.CreateChild("SetGlobalTriggerListeners")); } var jobListeners = config.Children["jobListeners"]; if (jobListeners != null) { BuildServiceDictionary <string, IJobListener[]>(jobListeners, parameters.CreateChild("jobListeners")); } var triggerListeners = config.Children["triggerListeners"]; if (triggerListeners != null) { BuildServiceDictionary <string, ITriggerListener[]>(triggerListeners, parameters.CreateChild("triggerListeners")); } var schedulerListeners = config.Children["schedulerListeners"]; if (schedulerListeners != null) { BuildServiceArray <ISchedulerListener>(schedulerListeners, parameters.CreateChild("SetSchedulerListeners")); } return(componentConfig); }
public void InvalidProtocol_throws() { var configStore = new DefaultConfigurationStore(); var configuration = new MutableConfiguration("facility"); configuration.Attribute("type", typeof(SolrNetFacility).AssemblyQualifiedName); configuration.CreateChild("solrURL", "ftp://localhost"); configStore.AddFacilityConfiguration(typeof(SolrNetFacility).FullName, configuration); Assert.Throws <FacilityException>(() => new WindsorContainer(configStore)); }
private static IConfiguration CreateModuleConfigurationNode(IEnumerable <Type> messageModules) { var config = new MutableConfiguration("array"); foreach (Type type in messageModules) { config.CreateChild("item", "${" + type.FullName + "}"); } return(config); }
public void Can_satisfy_nullable_ctor_dependency() { var container = new WindsorContainer(); var configuration = new MutableConfiguration("parameters"); configuration.CreateChild("foo", "5"); container.Register(Component.For <HasNullableDoubleConstructor>().Configuration(configuration)); container.Resolve <HasNullableDoubleConstructor>(); }
public void InvalidUrl_throws() { var configStore = new DefaultConfigurationStore(); var configuration = new MutableConfiguration("facility"); configuration.Attributes.Add("type", typeof(SolrNetFacility).FullName); configuration.CreateChild("solrURL", "123"); configStore.AddFacilityConfiguration(typeof(SolrNetFacility).FullName, configuration); new WindsorContainer(configStore); }
internal void BuildProps(IConfiguration config, MutableConfiguration props) { var dict = props.CreateChild("dictionary"); foreach (var c in config.Children) { dict.CreateChild("item", c.Value) .Attribute("key", c.Attributes["key"]); } }
public void ShouldBeAbleToSupplyValueForNullableParamViaCtor_FromConfig() { var container = new WindsorContainer(); var configuration = new MutableConfiguration("parameters"); configuration.CreateChild("foo", "5"); container.Register(Component.For <ClassTakingNullableViaCtor>().Configuration(configuration)); container.Resolve <ClassTakingNullableViaCtor>(); }
public IConfiguration ToIConfiguration() { var config = new MutableConfiguration("rhino.esb"); var busConfig = config.CreateChild("bus"); PopulateBusConfiguration(busConfig); var messagesConfig = config.CreateChild("messages"); foreach (var message in Messages) { messagesConfig.CreateChild("add") .Attribute("name", message.Key) .Attribute("endpoint", message.Value); } return(config); }
internal void BuildServiceList <T>(IConfiguration config, MutableConfiguration parameters) { var array = parameters.CreateChild("list"); array.Attribute("type", typeof(T).AssemblyQualifiedName); foreach (var c in config.Children) { array.CreateChild("item", c.Value); } }
public void InvalidProtocol_throws() { var configStore = new DefaultConfigurationStore(); var configuration = new MutableConfiguration("facility"); configuration.CreateChild("solrURL", "ftp://localhost"); configStore.AddFacilityConfiguration("solr", configuration); var container = new WindsorContainer(configStore); container.AddFacility <SolrNetFacility>("solr"); }
public void Basic() { using (var c = new WindsorContainer()) { var config = new MutableConfiguration("facility"); config.CreateChild("quartz").CreateChild("item", "qwe").Attribute("key", "qq"); c.Kernel.ConfigurationStore.AddFacilityConfiguration("quartz", config); c.AddFacility("quartz", new QuartzFacility()); c.Resolve <IJobScheduler>(); c.Resolve <IScheduler>(); } }
public void ShouldBeAbleToSupplyValueForNullableParam_FromConfig() { var container = new WindsorContainer(); var configuration = new MutableConfiguration("parameters"); configuration.CreateChild("SomeVal", "5"); container.Register(Component.For <ClassTakingNullable>().Configuration(configuration)); var s = container.Resolve <ClassTakingNullable>(); Assert.IsNotNull(s.SomeVal); }
public void ParseEndpoints_reflects_entries() { var config = new MutableConfiguration("entries"); config.CreateChild("item").Attribute("assembly", "asm1").Attribute("endpoint", "end"); var reg = new RemoteEndpointRegistry(); reg.ParseEndpoints(config); Assert.AreEqual(1, reg.EntriesCount); }
public void Can_satisfy_nullable_property_dependency() { var container = new WindsorContainer(); var configuration = new MutableConfiguration("parameters"); configuration.CreateChild("SomeVal", "5"); container.Register(Component.For <HasNullableIntProperty>().Configuration(configuration)); var s = container.Resolve <HasNullableIntProperty>(); Assert.IsNotNull(s.SomeVal); }
public void FacilityRegistersReleasingJobListener() { using (var c = new WindsorContainer()) { var config = new MutableConfiguration("facility"); config.CreateChild("quartz"); c.Kernel.ConfigurationStore.AddFacilityConfiguration("quartz", config); c.AddFacility("quartz", new QuartzFacility()); var scheduler = c.Resolve <IScheduler>(); //Assert.IsNotNull(scheduler.GlobalJobListeners); //Assert.AreEqual(2, scheduler.GlobalJobListeners.Count); Assert.IsAssignableFrom(typeof(ReleasingJobListener), scheduler.ListenerManager.GetJobListeners()[0]); } }
internal void BuildServiceDictionary <TKey, TValue>(IConfiguration config, MutableConfiguration parameters) { var dict = parameters.CreateChild("dictionary"); dict.Attribute("keyType", typeof(TKey).AssemblyQualifiedName); dict.Attribute("valueType", typeof(TValue).AssemblyQualifiedName); foreach (var c in config.Children) { var job = dict.CreateChild("entry") .Attribute("key", c.Attributes["name"]); BuildServiceArray <TValue>(c, job); } }
public void Ping_Query() { var configStore = new DefaultConfigurationStore(); var configuration = new MutableConfiguration("facility"); configuration.Attribute("type", typeof(SolrNetFacility).AssemblyQualifiedName); configuration.CreateChild("solrURL", "http://localhost:8983/solr"); configStore.AddFacilityConfiguration(typeof(SolrNetFacility).FullName, configuration); var container = new WindsorContainer(configStore); var solr = container.Resolve <ISolrOperations <CastleFixture.Document> >(); solr.Ping(); Console.WriteLine(solr.Query(SolrQuery.All).Count); }
public void Ping_Query() { var configStore = new DefaultConfigurationStore(); var configuration = new MutableConfiguration("facility"); configuration.CreateChild("solrURL", "http://localhost:8983/solr"); configStore.AddFacilityConfiguration("solr", configuration); var container = new WindsorContainer(configStore); container.AddFacility <SolrNetFacility>("solr"); var solr = container.Resolve <ISolrOperations <Document> >(); solr.Ping(); Console.WriteLine(solr.Query(SolrQuery.All).Count); }
public static ComponentRegistration <S> WireProperties <S>(this ComponentRegistration <S> reg, Action <WirePropertiesOptions <S> > optionCreation) { var opt = new WirePropertiesOptions <S>(); optionCreation(opt); if (opt.WireComponentProperties.IsNull()) { return(reg); } var c = new MutableConfiguration("wire-properties") .Attribute("value", opt.WireComponentProperties.Value.ToString()); opt.ExceptedPropertyNames.ForEach(p => c.CreateChild("except").Attribute("propertyName", p)); return(reg.Configuration(c)); }
private static IConfiguration BuildConfig <T>(string name, IDictionary <string, object> configs) { var componentConfig = new MutableConfiguration(typeof(T).AssemblyQualifiedName); var parameters = componentConfig.CreateChild("parameters"); //构建构造器参数集合依赖 var props = parameters.CreateChild(name); //创建dictionary对象 var dict = props.CreateChild("dictionary"); if (configs != null) { foreach (var c in configs) { dict.CreateChild("item", (c.Value ?? "").ToString()).Attribute("key", c.Key); } } return(componentConfig); }
public void Wiring_WhenPublisherHasAProxy_ListenerShouldStillGetTheEvents() { var config = new MutableConfiguration("component"); config. CreateChild("subscribers"). CreateChild("subscriber"). Attribute("id", "listener"). Attribute("event", "Event"). Attribute("handler", "OnPublish"); store.AddComponentConfiguration("publisher", config); container.AddFacility(new EventWiringFacility()); // Registers interceptor as component container.Register(Component.For <CountingInterceptor>().Named("my.interceptor")); container.Register(Component.For <SimpleListener>().Named("listener")); // Publisher has a reference to interceptor container.Register( Component.For <SimplePublisher>(). Named("publisher"). Interceptors(new InterceptorReference("my.interceptor")).First); // Triggers events var publisher = container.Resolve <SimplePublisher>(); publisher.Trigger(); var interceptor = container.Resolve <CountingInterceptor>(); Assert.AreEqual(1, interceptor.InterceptedCallsCount); // Assert that event was caught var listener = container.Resolve <SimpleListener>(); Assert.IsTrue(listener.Listened); Assert.AreSame(publisher, listener.Sender); }
private void AddFactory(MutableConfiguration config, String alias) { config.CreateChild("factory").Attribute("id", String.Format("nhibernate-factory.{0}", alias)).Attribute("alias", alias); }
private void AddDefaultFactory(MutableConfiguration config) { config.CreateChild("factory").Attribute("id", "nhibernate-factory.default"); }