示例#1
0
        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);
        }
示例#2
0
        public void QueryAll_with_pagination()
        {
            var querySerializer = new MSolrQuerySerializer();

            querySerializer.serialize += _ => "id:123456";

            var serviceLocator = new MServiceLocator();

            serviceLocator.getService = MServiceLocator.Table(new Dictionary <System.Type, object> {
                { typeof(ISolrReadOnlyOperations <Entity>), mockSolr },
                { typeof(ISolrQuerySerializer), querySerializer },
            });

            ServiceLocator.SetLocatorProvider(() => serviceLocator);

            mockSolr.queryStringOptions += (s, o) => {
                Assert.Equal("id:123456", s);
                Assert.Equal(5, o.Rows);
                Assert.Equal(3, o.Start);
                Assert.Equal(1, o.OrderBy.Count);
                Assert.Equal("pepe asc", o.OrderBy.First().ToString());
                return(new SolrQueryResults <Entity>());
            };
            mockSolr.queryStringOptions &= x => x.Expect(1);

            using (var session = new SolrSession(sessionFactory.OpenSession())) {
                var entities = session.CreateSolrQuery(new SolrQueryByField("id", "123456"))
                               .SetMaxResults(5)
                               .SetFirstResult(3)
                               .SetSort(Order.Asc("pepe"))
                               .List <Entity>();
            }
        }
示例#3
0
        public void QueryAll_with_pagination() {

            var querySerializer = new MSolrQuerySerializer();
            querySerializer.serialize += _ => "id:123456";

            var serviceLocator = new MServiceLocator();
            serviceLocator.getService = MServiceLocator.Table(new Dictionary<System.Type, object> {
                {typeof (ISolrReadOnlyOperations<Entity>), mockSolr},
                {typeof (ISolrQuerySerializer), querySerializer},
            });

            ServiceLocator.SetLocatorProvider(() => serviceLocator);

            mockSolr.queryStringOptions += (s, o) => {
                Assert.AreEqual("id:123456", s);
                Assert.AreEqual(5, o.Rows);
                Assert.AreEqual(3, o.Start);
                Assert.AreEqual(1, o.OrderBy.Count);
                Assert.AreEqual("pepe asc", o.OrderBy.First().ToString());
                return new SolrQueryResults<Entity>();
            };
            mockSolr.queryStringOptions &= x => x.Expect(1);

            using (var session = new SolrSession(sessionFactory.OpenSession())) {
                var entities = session.CreateSolrQuery(new SolrQueryByField("id", "123456"))
                    .SetMaxResults(5)
                    .SetFirstResult(3)
                    .SetSort(Order.Asc("pepe"))
                    .List<Entity>();
            }
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }
示例#6
0
        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);
        }
示例#7
0
 public void QueryAll() {
     var serviceLocator = new MServiceLocator();
     serviceLocator.getService += t => {
         if (t == typeof (ISolrReadOnlyOperations<Entity>))
             return mockSolr;
         throw new Exception("unexpected type");
     };
     ServiceLocator.SetLocatorProvider(() => serviceLocator);
     mockSolr.queryStringOptions += (q, opt) => {
         Assert.AreEqual("*:*", q);
         return new SolrQueryResults<Entity>();
     };
     mockSolr.queryStringOptions &= x => x.Expect(1);
     using (var session = new SolrSession(sessionFactory.OpenSession())) {
         var entities = session.CreateSolrQuery("*:*").List<Entity>();
     }
 }
示例#8
0
        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.GreaterThan(nhConfig.EventListeners.PostInsertEventListeners.Length, 0);
            Assert.GreaterThan(nhConfig.EventListeners.PostUpdateEventListeners.Length, 0);
            Assert.GreaterThan(nhConfig.EventListeners.PostDeleteEventListeners.Length, 0);
            var listener = nhConfig.EventListeners.PostInsertEventListeners[0];
            Assert.IsInstanceOfType<SolrNetListener<Entity>>(listener);
        }
示例#9
0
        public void QueryAll()
        {
            var serviceLocator = new MServiceLocator();

            serviceLocator.getService += t => {
                if (t == typeof(ISolrReadOnlyOperations <Entity>))
                {
                    return(mockSolr);
                }
                throw new Exception("unexpected type");
            };
            ServiceLocator.SetLocatorProvider(() => serviceLocator);
            mockSolr.queryStringOptions += (q, opt) => {
                Assert.Equal("*:*", q);
                return(new SolrQueryResults <Entity>());
            };
            mockSolr.queryStringOptions &= x => x.Expect(1);
            using (var session = new SolrSession(sessionFactory.OpenSession())) {
                var entities = session.CreateSolrQuery("*:*").List <Entity>();
            }
        }