Пример #1
0
 public void Cache()
 {
     var conn      = new SolrConnection(solrURL);
     var response1 = conn.Get("/select/", new Dictionary <string, string> {
         { "q", "*:*" },
     });
     var response2 = conn.Get("/select/", new Dictionary <string, string> {
         { "q", "*:*" },
     });
 }
Пример #2
0
        public void UndefinedFieldQueryError_ShouldThrow()
        {
            var mocks      = new MockRepository();
            var reqFactory = mocks.StrictMock <IHttpWebRequestFactory>();
            var request    = mocks.DynamicMock <IHttpWebRequest>();

            With.Mocks(mocks).Expecting(delegate {
                Expect.Call(reqFactory.Create(new UriBuilder().Uri))
                .IgnoreArguments()
                .Repeat.Once()
                .Return(request);
                Expect.Call(request.Headers)
                .Repeat.Any()
                .Return(new WebHeaderCollection());
                var r = new WebResponseStub {
                    StatusCode = HttpStatusCode.BadRequest
                };
                Expect.Call(request.GetResponse())
                .Repeat.Once()
                .Throw(new WebException("(400) Bad Request", new ApplicationException(), WebExceptionStatus.ProtocolError, r));
            }).Verify(delegate {
                var conn = new SolrConnection("https://pepe")
                {
                    HttpWebRequestFactory = reqFactory
                };
                conn.Get("", new Dictionary <string, string>());
            });
        }
Пример #3
0
        public void InvalidHostGet_ShouldThrowException()
        {
            var mocks      = new MockRepository();
            var reqFactory = mocks.StrictMock <IHttpWebRequestFactory>();
            var request    = mocks.DynamicMock <IHttpWebRequest>();

            With.Mocks(mocks).Expecting(delegate {
                Expect.Call(reqFactory.Create(new UriBuilder().Uri))
                .IgnoreArguments()
                .Repeat.Once()
                .Return(request);
                Expect.Call(request.Headers)
                .Repeat.Any()
                .Return(new WebHeaderCollection());
                Expect.Call(request.GetResponse())
                .Repeat.Once()
                .Throw(new WebException());
            }).Verify(delegate {
                var conn = new SolrConnection("http://lalala:12345")
                {
                    HttpWebRequestFactory = reqFactory
                };
                conn.Get("", new Dictionary <string, string>());
            });
        }
Пример #4
0
        public void Get()
        {
            var mocks      = new MockRepository();
            var reqFactory = mocks.StrictMock <IHttpWebRequestFactory>();
            var request    = mocks.DynamicMock <IHttpWebRequest>();
            var response   = mocks.DynamicMock <IHttpWebResponse>();

            With.Mocks(mocks).Expecting(delegate {
                Expect.Call(reqFactory.Create(new UriBuilder().Uri))
                .IgnoreArguments()
                .Repeat.Once()
                .Return(request);
                Expect.Call(request.Headers)
                .Repeat.Any()
                .Return(new WebHeaderCollection());
                Expect.Call(response.ContentEncoding)
                .Repeat.Any()
                .Return(string.Empty);
                Expect.Call(response.Headers)
                .Repeat.Any()
                .Return(new WebHeaderCollection());
                Expect.Call(request.GetResponse())
                .Repeat.Once()
                .Return(response);
                Expect.Call(response.GetResponseStream())
                .Repeat.Once()
                .Return(new MemoryStream());
            }).Verify(delegate {
                var conn = new SolrConnection("https://pepe")
                {
                    HttpWebRequestFactory = reqFactory
                };
                conn.Get("", new Dictionary <string, string>());
            });
        }
Пример #5
0
        public void Get_Compressed_Deflate()
        {
            var mocks      = new MockRepository();
            var reqFactory = mocks.StrictMock <IHttpWebRequestFactory>();
            var request    = mocks.DynamicMock <IHttpWebRequest>();
            var response   = mocks.DynamicMock <IHttpWebResponse>();

            With.Mocks(mocks).Expecting(delegate {
                Expect.Call(reqFactory.Create(new UriBuilder().Uri))
                .IgnoreArguments()
                .Repeat.Once()
                .Return(request);
                Expect.Call(request.Headers)
                .Repeat.Any()
                .Return(new WebHeaderCollection());
                Expect.Call(response.ContentEncoding)
                .Repeat.Any()
                .Return("deflate");
                Expect.Call(response.Headers)
                .Repeat.Any()
                .Return(new WebHeaderCollection());
                Expect.Call(request.GetResponse())
                .Repeat.Once()
                .Return(response);
                Expect.Call(response.GetResponseStream())
                .Repeat.Once()
                .Return(CompressionUtils.DeflateCompressStream("Testing compression"));
            }).Verify(delegate {
                var conn = new SolrConnection("http://localhost")
                {
                    HttpWebRequestFactory = reqFactory
                };
                Assert.AreEqual("Testing compression", conn.Get("", new Dictionary <string, string>()));
            });
        }
Пример #6
0
        public void Cache_mocked()
        {
            var conn  = new SolrConnection(solrURL);
            var cache = MockRepository.GenerateMock <ISolrCache>();

            cache.Expect(x => x["http://localhost:8983/solr/select/?q=*:*"])
            .Repeat.Once()
            .Return(null);
            cache.Expect(x => x.Add(null)).Repeat.Once();
            conn.Cache = cache;
            var response1 = conn.Get("/select/", new Dictionary <string, string> {
                { "q", "*:*" },
            });
            var response2 = conn.Get("/select/", new Dictionary <string, string> {
                { "q", "*:*" },
            });
        }
        public void Cache_mocked()
        {
            var cache = new Mocks.MSolrCache();

            cache.get += url => {
                Assert.Equal("http://localhost:8983/solr/select/?q=*:*&version=2.2", url);
                return(new SolrCacheEntity(url, "", ""));
            };
            cache.add &= x => x.Stub();

            var response = new Mocks.HttpWebResponse {
                dispose = () => {},
                headers = () => new WebHeaderCollection {
                    { HttpResponseHeader.ETag, "123" },
                },
                getResponseStream = () => new MemoryStream(),
            };
            var getResponseCalls = 0;
            var conn             = new SolrConnection(solrURL)
            {
                Cache = cache,
                HttpWebRequestFactory = new Mocks.HttpWebRequestFactory {
                    create = _ => new Mocks.HttpWebRequest {
                        getResponse = () => {
                            getResponseCalls++;
                            if (getResponseCalls == 1)
                            {
                                return(response);
                            }
                            throw new Exception();
                        },
                        Headers = new WebHeaderCollection(),
                    },
                }
            };

            conn.Get("/select/", new Dictionary <string, string> {
                { "q", "*:*" },
            });

            conn.Get("/select/", new Dictionary <string, string> {
                { "q", "*:*" },
            });
        }
Пример #8
0
        public void ActualInvalidFieldException()
        {
            var conn = new SolrConnection(solrURL);
            var p    = new Dictionary <string, string>();

            p["version"] = "2.1";
            p["indent"]  = "on";
            p["q"]       = "idq:123";
            Console.WriteLine(conn.Get("/select/", p));
        }
        public void SolrConnection001()
        {
            // Arrange
            var options = new SecurityOptions
            {
                AuthenticationType = AuthenticationType.Basic
            };
            var connection = new SolrConnection();

            // Act / Assert
            Assert.Throws <UnsupportedSecuritySystemException>(() => connection.Get(options, string.Empty, string.Empty));
        }
        public void ActualConnection()
        {
            var conn = new SolrConnection(solrURL)
            {
                HttpWebRequestFactory = new HttpWebRequestFactory()
            };
            var p = new Dictionary <string, string>();

            p["version"] = "2.1";
            p["indent"]  = "on";
            p["q"]       = "+video +price:[* TO 400]";
            Console.WriteLine(conn.Get("/select/", p));
        }
        public void InvalidHostGet_ShouldThrowException()
        {
            var reqFactory = new Mocks.HttpWebRequestFactory {
                create = _ => new Mocks.HttpWebRequest {
                    getResponse = () => { throw new WebException(); }
                }
            };
            var conn = new SolrConnection("http://lalala:12345")
            {
                HttpWebRequestFactory = reqFactory
            };

            Assert.Throws <SolrConnectionException>(() => conn.Get("", new Dictionary <string, string>()));
        }
Пример #12
0
        //增量数据导入
        public static void DeltaDataImport()
        {
            var    conn        = new SolrConnection("http://139.198.13.12:7000/solr/PolicyCore");
            string relativeUrl = "/dataimport";
            var    parameters  = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("command", "delta-import"),
                new KeyValuePair <string, string>("clean", "false"),
                new KeyValuePair <string, string>("commit", "true")
            };

            string result = conn.Get(relativeUrl, parameters);

            Console.WriteLine("结果:{0}", result);
        }
        public void ActualConnectionWithException()
        {
            var conn = new SolrConnection(solrURL);
            var p    = new Dictionary <string, string>();

            p["version"] = "2.1";
            p["indent"]  = "on";
            p["q"]       = "idq:123";
            try {
                conn.Get("/select/", p);
                Assert.True(false, "Should have thrown");
            } catch (SolrConnectionException e) {
                Console.WriteLine(e);
                Console.WriteLine(e.Url);
            }
        }
Пример #14
0
        public static void FullImport(string core)
        {
            string command     = "full-import";
            string clean       = "true";
            string commit      = "true";
            var    conn        = new SolrConnection(ConfigurationManager.AppSettings["SolrConnString"] + core);
            var    relativeUrl = "/dataimport";
            var    parameters  = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("command", command),
                new KeyValuePair <string, string>("clean", clean),
                new KeyValuePair <string, string>("commit", commit)
            };

            conn.Get(relativeUrl, parameters);
        }
Пример #15
0
        public void WithWtJson_Get()
        {
            var expected = "https://pepe/?wt=json&version=2.2";

            var cache = new Mocks.MSolrCache();

            cache.get += url => new SolrCacheEntity(url, "", "");
            cache.add &= x => x.Stub();

            var headers = new WebHeaderCollection
            {
                { HttpResponseHeader.ETag, "etag" }, { HttpResponseHeader.CacheControl, "cache" }
            };
            var response = new Mocks.HttpWebResponse
            {
                dispose           = () => { },
                headers           = () => headers,
                getResponseStream = () => new MemoryStream(Encoding.UTF8.GetBytes("hello json world")),
            };

            var request = new Mocks.HttpWebRequest
            {
                getResponse = () => response,
                Headers     = new WebHeaderCollection()
            };

            var reqFactory = new Mocks.HttpWebRequestFactory
            {
                create = _ => request
            };
            var conn = new SolrConnection("https://pepe")
            {
                HttpWebRequestFactory = reqFactory,
                Cache = cache
            };

            var r = conn.Get("", new Dictionary <string, string> {
                { "wt", "json" }
            });
            var actual = conn.Cache[expected];

            Assert.Equal("hello json world", r);
            Assert.Equal(actual.Url, expected);
        }
        public void Get()
        {
            var response = new Mocks.HttpWebResponse {
                dispose           = () => {},
                headers           = () => new WebHeaderCollection(),
                getResponseStream = () => new MemoryStream(Encoding.UTF8.GetBytes("hello world")),
            };
            var request = new Mocks.HttpWebRequest {
                getResponse = () => response
            };
            var reqFactory = new Mocks.HttpWebRequestFactory {
                create = _ => request
            };
            var conn = new SolrConnection("https://pepe")
            {
                HttpWebRequestFactory = reqFactory,
            };
            var r = conn.Get("", new Dictionary <string, string>());

            Assert.Equal("hello world", r);
        }
Пример #17
0
        public JsonResult Suggestions(string searchText)
        {
            var solr       = new SolrConnection(SolrConfig.VehicleInformationIndex);
            var parameters = new Dictionary <string, string>
            {
                { "spellcheck.q", searchText },
                { "wt", "json" }
            };

            var response = solr.Get("/suggest", parameters);

            var suggestion = JsonConvert.DeserializeObject <SuggestionModel>(response);

            if (suggestion.Spellcheck == null)
            {
                return(null);
            }

            var details = JsonConvert.DeserializeObject <SuggestionDetailModel>(suggestion.Spellcheck.Suggestions.ToList()[1].ToString());

            details.SearchText = searchText;

            return(Json(details));
        }