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.IsType <SolrNetListener <Entity> >(listener); Assert.Equal(addParameters, ((IListenerSettings)listener).AddParameters); }
public void Configure_from_serviceprovider() { var nhConfig = ConfigurationExtensions.GetNhConfig(); var provider = new MServiceProvider(); var mapper = new MReadOnlyMappingManager(); mapper.getRegisteredTypes += () => new[] { typeof(Entity) }; var solr = new MSolrOperations <Entity>(); provider.getService += MServiceLocator.Table(new Dictionary <System.Type, object> { { typeof(IReadOnlyMappingManager), mapper }, { typeof(ISolrOperations <Entity>), solr }, }); var helper = new CfgHelper(provider); helper.Configure(nhConfig, true); Assert.True(nhConfig.EventListeners.PostInsertEventListeners.Length > 0); Assert.True(nhConfig.EventListeners.PostUpdateEventListeners.Length > 0); Assert.True(nhConfig.EventListeners.PostDeleteEventListeners.Length > 0); var listener = nhConfig.EventListeners.PostInsertEventListeners[0]; Assert.IsType <SolrNetListener <Entity> >(listener); }
public void Configure_from_servicelocator() { var mapper = new MReadOnlyMappingManager(); mapper.getRegisteredTypes += () => new[] { typeof(Entity) }; var serviceLocator = new MServiceLocator(); serviceLocator.getInstance += MServiceLocator.One <IReadOnlyMappingManager>(mapper); var solr = new MSolrOperations <Entity>(); serviceLocator.getService += MServiceLocator.One <ISolrOperations <Entity> >(solr); ServiceLocator.SetLocatorProvider(() => serviceLocator); var nhConfig = ConfigurationExtensions.GetNhConfig(); var helper = new CfgHelper(); helper.Configure(nhConfig, true); Assert.True(nhConfig.EventListeners.PostInsertEventListeners.Length > 0); Assert.True(nhConfig.EventListeners.PostUpdateEventListeners.Length > 0); Assert.True(nhConfig.EventListeners.PostDeleteEventListeners.Length > 0); var listener = nhConfig.EventListeners.PostInsertEventListeners[0]; Assert.IsType <SolrNetListener <Entity> >(listener); }
public void Does_not_override_existing_listeners() { var nhConfig = ConfigurationExtensions.GetNhConfig(); var mockListener = new MPostInsertEventListener(); nhConfig.SetListener(ListenerType.PostInsert, mockListener); 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 helper = new CfgHelper(provider); helper.Configure(nhConfig, true); Assert.Equal(2, nhConfig.EventListeners.PostInsertEventListeners.Length); }
public void InvalidCastReportsFieldName() { var mapper = new MReadOnlyMappingManager(); mapper.getFields += type => { Assert.AreEqual(typeof(Entity), type); var model = new SolrFieldModel( fieldName: "id", property: typeof(Entity).GetProperty("Id")); return(new Dictionary <string, SolrFieldModel> { { "Id", model } }); }; mapper.getFields &= x => x.Expect(1); var parser = new MSolrFieldParser { canHandleSolrType = _ => true, canHandleType = _ => true, parse = (a, b) => "something", }; var v = new RegularDocumentVisitor(parser, mapper); var doc = new Entity(); var field = new XElement("tag"); try { v.Visit(doc, "Id", field); Assert.Fail("Should have failed with invalid cast"); } catch (ArgumentException e) { Assert.True(e.Message.Contains("property 'Id'")); Console.WriteLine(e.Message); } mapper.getFields.Verify(); }
public void GetRegistered() { var innerMapper = new MReadOnlyMappingManager(); innerMapper.getRegisteredTypes += () => new[] { typeof(TestDocument) }; var mapper = new MemoizingMappingManager(innerMapper); var types = mapper.GetRegisteredTypes(); Assert.AreEqual(1, types.Count); Assert.AreEqual(typeof(TestDocument), types.First()); mapper.GetRegisteredTypes(); }
public void DeleteDocumentWithoutUniqueKey_ShouldThrow() { Assert.Throws <SolrNetException>(() => { var mapper = new MReadOnlyMappingManager(); mapper.getUniqueKey += t => { Assert.AreEqual(typeof(TestDocumentWithoutUniqueKey), t); return(null); }; var ops = new SolrServer <TestDocumentWithoutUniqueKey>(null, mapper, null); ops.Delete(new TestDocumentWithoutUniqueKey()); Assert.AreEqual(1, mapper.getUniqueKey.Calls); }); }
public void ReplaceMapper() { var builder = new ContainerBuilder(); var mapper = new MReadOnlyMappingManager(); builder.RegisterModule(new SolrNetModule("http://localhost:8983/solr") { Mapper = mapper }); var container = builder.Build(); var m = container.Resolve <IReadOnlyMappingManager>(); Assert.AreSame(mapper, m); }
public void ReplacingMapper() { var mapper = new MReadOnlyMappingManager(); var solrFacility = new SolrNetFacility("http://localhost:8983/solr") { Mapper = mapper }; var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var m = container.Resolve <IReadOnlyMappingManager>(); Assert.Same(m, mapper); }
public void GetUniqueKeyIsMemoized() { var innerMapper = new MReadOnlyMappingManager(); innerMapper.getUniqueKey += t => { Assert.AreEqual(typeof(TestDocument), t); return(new SolrFieldModel(property: typeof(TestDocument).GetProperty("Id"), fieldName: "id")); }; var mapper = new MemoizingMappingManager(innerMapper); mapper.GetUniqueKey(typeof(TestDocument)); mapper.GetUniqueKey(typeof(TestDocument)); Assert.AreEqual(1, innerMapper.getUniqueKey.Calls); }
public void CallsInnerJustOnce() { var innerMapper = new MReadOnlyMappingManager(); innerMapper.getFields += t => { Assert.AreEqual(typeof(TestDocument), t); return(new Dictionary <string, SolrFieldModel> { { "id", new SolrFieldModel(property: typeof(TestDocument).GetProperty("Id"), fieldName: "id") }, }); }; var mapper = new MemoizingMappingManager(innerMapper); mapper.GetFields(typeof(TestDocument)); mapper.GetFields(typeof(TestDocument)); Assert.AreEqual(1, innerMapper.getFields.Calls); }
public void DeleteDocumentWithUniqueKey() { var mapper = new MReadOnlyMappingManager(); mapper.getUniqueKey += t => { Assert.AreEqual(typeof(TestDocumentWithUniqueKey), t); return(new SolrFieldModel( property: typeof(TestDocumentWithUniqueKey).GetProperty("id"), fieldName: "id")); }; var basicServer = new MSolrBasicOperations <TestDocumentWithUniqueKey>(); basicServer.delete &= x => x.Stub(); var ops = new SolrServer <TestDocumentWithUniqueKey>(basicServer, mapper, null); ops.Delete(new TestDocumentWithUniqueKey()); Assert.AreEqual(1, mapper.getUniqueKey.Calls); }
public void FixtureSetup() { var nhConfig = ConfigurationExtensions.GetNhConfig(); mockSolr = new MSolrOperations <Entity>(); var mapper = new MReadOnlyMappingManager(); var provider = new MServiceProvider(); provider.getService += t => { if (t == typeof(IReadOnlyMappingManager)) { return(mapper); } throw new ArgumentException("Unexpected"); }; NHHelper.SetListener(nhConfig, GetSolrNetListener(mockSolr)); new SchemaExport(nhConfig).Execute(false, true, false); sessionFactory = nhConfig.BuildSessionFactory(); }
public void AddWithBoost_single_doc_calls_operations_with_null_add_parameters() { var basicServer = new MSolrBasicOperations <TestDocument>(); basicServer.addWithBoost += (a, b) => { Assert.Null(b); return(null); }; var mapper = new MReadOnlyMappingManager(); var validationManager = new MMappingValidator(); var s = new SolrServer <TestDocument>(basicServer, mapper, validationManager); var t = new TestDocument(); s.AddWithBoost(t, 2.1); Assert.Equal(1, basicServer.addWithBoost.Calls); }
public void Add_single_doc_calls_operations_with_null_add_parameters() { var basicServer = new MSolrBasicOperations <TestDocument>(); basicServer.addWithBoost += (docs, param) => { Assert.Null(param); return(null); }; basicServer.addWithBoost &= x => x.Expect(1); var mapper = new MReadOnlyMappingManager(); var validationManager = new MMappingValidator(); var s = new SolrServer <TestDocument>(basicServer, mapper, validationManager); var t = new TestDocument(); s.Add(t); basicServer.addWithBoost.Verify(); }
public void Add_single_doc_with_add_parameters_calls_operations_with_same_add_parameters() { var parameters = new AddParameters { CommitWithin = 4343 }; var basicServer = new MSolrBasicOperations <TestDocument>(); basicServer.addWithBoost += (_, p) => { Assert.Equal(parameters, p); return(null); }; var mapper = new MReadOnlyMappingManager(); var validationManager = new MMappingValidator(); var s = new SolrServer <TestDocument>(basicServer, mapper, validationManager); var t = new TestDocument(); s.Add(t, parameters); Assert.Equal(1, basicServer.addWithBoost.Calls); }