/// <summary> /// Registers SolrNet's NHibernate listeners /// </summary> /// <param name="config">NHibernate configuration</param> /// <param name="autoCommit">if set to <c>true</c> [auto commit].</param> /// <param name="parameters">The add parameters to use when adding a document to the index.</param> /// <returns></returns> public Configuration Configure(Configuration config, bool autoCommit, AddParameters parameters) { foreach (var t in mapper.GetRegisteredTypes()) { var listenerType = typeof (SolrNetListener<>).MakeGenericType(t); var solrType = typeof (ISolrOperations<>).MakeGenericType(t); var solr = provider.GetService(solrType); var listener = (IListenerSettings) Activator.CreateInstance(listenerType, solr); listener.Commit = autoCommit; listener.AddParameters = parameters; NHHelper.SetListener(config, listener); } return config; }
public void Configure_with_addparameters() { var nhConfig = ConfigurationExtensions.GetNhConfig(); var mapper = new MReadOnlyMappingManager(); mapper.getRegisteredTypes += () => new[] {typeof (Entity)}; var solr = new MSolrOperations<Entity>(); var provider = new MServiceProvider(); provider.getService += MServiceLocator.Table(new Dictionary<System.Type, object> { {typeof(IReadOnlyMappingManager), mapper}, {typeof(ISolrOperations<Entity>), solr}, }); var addParameters = new AddParameters {CommitWithin = 4343}; var helper = new CfgHelper(provider); helper.Configure(nhConfig, true, addParameters); var listener = nhConfig.EventListeners.PostInsertEventListeners[0]; Assert.IsInstanceOfType<SolrNetListener<Entity>>(listener); Assert.AreEqual(addParameters, ((IListenerSettings)listener).AddParameters); }
public void Configure_with_addparameters() { var nhConfig = ConfigurationExtensions.GetNhConfig(); var provider = MockRepository.GenerateMock<IServiceProvider>(); var mapper = MockRepository.GenerateMock<IReadOnlyMappingManager>(); mapper.Expect(x => x.GetRegisteredTypes()).Return(new[] {typeof (Entity)}); var solr = MockRepository.GenerateMock<ISolrOperations<Entity>>(); provider.Expect(x => x.GetService(typeof (IReadOnlyMappingManager))).Return(mapper); provider.Expect(x => x.GetService(typeof (ISolrOperations<Entity>))).Return(solr); var addParameters = new AddParameters {CommitWithin = 4343}; var helper = new CfgHelper(provider); helper.Configure(nhConfig, true, addParameters); var listener = nhConfig.EventListeners.PostInsertEventListeners[0]; Assert.That(listener, Is.InstanceOf<SolrNetListener<Entity>>()); Assert.AreEqual(addParameters, ((IListenerSettings)listener).AddParameters); }