Esempio n. 1
0
 public void CommitWithParams() {
     var conn = new MSolrConnection();
     conn.post &= x => x.Args("/update", "<commit waitSearcher=\"true\" waitFlush=\"true\" />").Expect(1);
     Solr.Connection = conn;
     Solr.Commit(true, true);
     conn.post.Verify();
 }
Esempio n. 2
0
 public void Commit() {
     var conn = new MSolrConnection();
     conn.post &= x => x.Args("/update", "<commit />").Expect(1);
     Solr.Connection = conn;
     Solr.Commit();
     conn.post.Verify();
 }
Esempio n. 3
0
 public void Add() {
     var conn = new MSolrConnection();
     conn.post &= x => x.Args("/update", "<add><doc /></add>").Expect(1);
     Solr.Connection = conn;
     Solr.Add(new TestDocument());
     conn.post.Verify();
 }
Esempio n. 4
0
 public void DeleteByMultipleId() {
     var ids = new[] {"123", "456"};
     var conn = new Mocks.MSolrConnection();
     var xml = string.Format("<delete><id>{0}</id><id>{1}</id></delete>", ids[0], ids[1]);
     conn.post = conn.post.Args("/update", xml);
     var cmd = new DeleteCommand(new DeleteByIdAndOrQueryParam(ids, null, null), null);
     cmd.Execute(conn);
     Assert.AreEqual(1, conn.post.Calls);
 }
Esempio n. 5
0
		public void DeleteById() {
			const string id = "123123";
		    var conn = new Mocks.MSolrConnection();
		    conn.post = conn.post
		        .Args("/update", string.Format("<delete><id>{0}</id></delete>", id));
            var cmd = new DeleteCommand(new DeleteByIdAndOrQueryParam(new[] { id }, null, null), null);
            cmd.Execute(conn);
            Assert.AreEqual(1, conn.post.Calls);
        }
 public void DocumentAddParametersOverwriteSpecifiedTrue()
 {
     var docSerializer = new SolrDocumentSerializer<TestDocWithString>(new AttributesMappingManager(), new DefaultFieldSerializer());
     var conn = new Mocks.MSolrConnection();
     conn.post = conn.post
         .Args("/update", "<add overwrite=\"true\"><doc boost=\"2.1\" /></add>");
     var docs = new[] { new KeyValuePair<TestDocWithString, double?>(new TestDocWithString(), 2.1) };
     var parameters = new AddParameters { Overwrite = true };
     var cmd = new AddCommand<TestDocWithString>(docs, docSerializer, parameters);
     cmd.Execute(conn);
     Assert.AreEqual(1, conn.post.Calls);
 }
Esempio n. 7
0
        public void DeleteById()
        {
            const string id   = "123123";
            var          conn = new Mocks.MSolrConnection();

            conn.post = conn.post
                        .Args("/update", string.Format("<delete><id>{0}</id></delete>", id));
            var cmd = new DeleteCommand(new DeleteByIdAndOrQueryParam(new[] { id }, null, null), null);

            cmd.Execute(conn);
            Assert.AreEqual(1, conn.post.Calls);
        }
Esempio n. 8
0
        public void DeleteByMultipleId()
        {
            var ids  = new[] { "123", "456" };
            var conn = new Mocks.MSolrConnection();
            var xml  = string.Format("<delete><id>{0}</id><id>{1}</id></delete>", ids[0], ids[1]);

            conn.post = conn.post.Args("/update", xml);
            var cmd = new DeleteCommand(new DeleteByIdAndOrQueryParam(ids, null, null), null);

            cmd.Execute(conn);
            Assert.AreEqual(1, conn.post.Calls);
        }
Esempio n. 9
0
 public void ExecuteWithBasicOptions() {
     var conn = new Mocks.MSolrConnection();
     conn.post += (url, content) => {
         Assert.AreEqual("/update", url);
         Assert.AreEqual("<commit waitSearcher=\"true\" waitFlush=\"true\" />", content);
         Console.WriteLine(content);
         return null;
     };
     var cmd = new CommitCommand { WaitFlush = true, WaitSearcher = true };
     cmd.Execute(conn);
     Assert.AreEqual(1, conn.post.Calls);
 }
Esempio n. 10
0
 public void ExecuteBasic() {
     var conn = new Mocks.MSolrConnection();
     conn.post += (url, content) => {
         Assert.AreEqual("/update", url);
         Assert.AreEqual("<commit />", content);
         Console.WriteLine(content);
         return null;
     };
     var cmd = new CommitCommand();
     cmd.Execute(conn);
     Assert.AreEqual(1, conn.post.Calls);
 }
Esempio n. 11
0
        public void FieldBoost()
        {
            var docSerializer = new SolrDocumentSerializer <TestDocWithFieldBoost>(new AttributesMappingManager(), new DefaultFieldSerializer());
            var conn          = new Mocks.MSolrConnection();

            conn.post = conn.post
                        .Args("/update", "<add><doc><field name=\"SimpleBoost\" boost=\"20\">simple</field><field name=\"nameandboost\" boost=\"20\">boost</field></doc></add>");
            var docs = new[] { new KeyValuePair <TestDocWithFieldBoost, double?>(new TestDocWithFieldBoost(), null) };
            var cmd  = new AddCommand <TestDocWithFieldBoost>(docs, docSerializer, null);

            cmd.Execute(conn);
            Assert.AreEqual(1, conn.post.Calls);
        }
Esempio n. 12
0
        public void ExecuteBasic()
        {
            var conn = new Mocks.MSolrConnection();

            conn.post += (url, content) => {
                Assert.AreEqual("/update", url);
                Assert.AreEqual("<commit />", content);
                Console.WriteLine(content);
                return(null);
            };
            var cmd = new CommitCommand();

            cmd.Execute(conn);
            Assert.AreEqual(1, conn.post.Calls);
        }
Esempio n. 13
0
        public void SupportsDocumentWithStringCollection()
        {
            var docSerializer = new SolrDocumentSerializer <TestDocWithCollections>(new AttributesMappingManager(), new DefaultFieldSerializer());
            var conn          = new Mocks.MSolrConnection();

            conn.post = conn.post
                        .Args("/update", "<add><doc><field name=\"coll\">one</field><field name=\"coll\">two</field></doc></add>");
            var docs = new[] {
                new KeyValuePair <TestDocWithCollections, double?>(new TestDocWithCollections(), null),
            };
            var cmd = new AddCommand <TestDocWithCollections>(docs, docSerializer, null);

            cmd.Execute(conn);
            Assert.AreEqual(1, conn.post.Calls);
        }
Esempio n. 14
0
        public void GetSchemaCommand()
        {
            var conn = new Mocks.MSolrConnection();

            conn.get += (url, kvs) => {
                Assert.AreEqual("/admin/file", url);
                var expectedKVs = new[] { KV.Create("file", "schema.xml") };
                Assert.AreElementsEqualIgnoringOrder(expectedKVs, kvs);
                return("");
            };
            var cmd = new GetSchemaCommand();

            cmd.Execute(conn);
            Assert.AreEqual(1, conn.get.Calls);
        }
        public void ExecuteWithAllParameters()
        {
            var parameters = new ExtractParameters(null, "1", "text.doc");
            var conn = new MSolrConnection();
            conn.postStream += (url, type, stream, kvs) => {
                Assert.AreEqual("/update/extract", url);
                Assert.AreEqual("application/word-document", type);

                var p = new[] {
                    KV.Create("literal.id", parameters.Id),
                    KV.Create("resource.name", parameters.ResourceName),
                    KV.Create("literal.field1", "value1"),
                    KV.Create("literal.field2", "value2"),
                    KV.Create("stream.type", "application/word-document"),
                    KV.Create("commit", "true"),
                    KV.Create("uprefix", "pref"),
                    KV.Create("defaultField", "field1"),
                    KV.Create("extractOnly", "true"),
                    KV.Create("extractFormat", "text"),
                    KV.Create("capture", "html"),
                    KV.Create("captureAttr", "true"),
                    KV.Create("xpath", "body"),
                    KV.Create("lowernames", "true")
                };

                CollectionAssert.AreEquivalent(p, kvs);
                return "";
            };

            var cmd = new ExtractCommand(new ExtractParameters(null, "1", "text.doc") {
                AutoCommit = true,
                Capture = "html",
                CaptureAttributes = true,
                DefaultField = "field1",
                ExtractOnly = true,
                ExtractFormat = ExtractFormat.Text,
                Fields = new[] {
                    new ExtractField("field1", "value1"),
                    new ExtractField("field2", "value2")
                },
                LowerNames = true,
                XPath = "body",
                Prefix = "pref",
                StreamType = "application/word-document"
            });
            cmd.Execute(conn);
            Assert.AreEqual(1, conn.postStream.Calls);
        }
Esempio n. 16
0
 public void AddWithParameters() {
     var xml = EmbeddedResource.GetEmbeddedString(GetType(), "Resources.response.xml");
     var connection = new MSolrConnection();
     connection.post += (url, content) => {
         Assert.AreEqual("/update", url);
         Assert.AreEqual("<add commitWithin=\"4343\" overwrite=\"false\"><doc /></add>", content);
         return xml;
     };
     var docSerializer = new SolrDocumentSerializer<TestDocumentWithoutUniqueKey>(new AttributesMappingManager(), new DefaultFieldSerializer());
     var headerParser = new MSolrHeaderResponseParser();
     headerParser.parse = headerParser.parse.Return(null);
     var ops = new SolrBasicServer<TestDocumentWithoutUniqueKey>(connection, null, docSerializer, null, headerParser, null, null, null);
     var parameters = new AddParameters { CommitWithin = 4343, Overwrite = false };
     ops.AddWithBoost(new[] { new KeyValuePair<TestDocumentWithoutUniqueKey, double?>(new TestDocumentWithoutUniqueKey(), null), }, parameters);
     Assert.AreEqual(1, connection.post.Calls);
 }
Esempio n. 17
0
        public void DocumentAddParametersOverwriteSpecifiedFalse()
        {
            var docSerializer = new SolrDocumentSerializer <TestDocWithString>(new AttributesMappingManager(), new DefaultFieldSerializer());
            var conn          = new Mocks.MSolrConnection();

            conn.post = conn.post
                        .Args("/update", "<add overwrite=\"false\"><doc boost=\"2.1\" /></add>");
            var docs       = new[] { new KeyValuePair <TestDocWithString, double?>(new TestDocWithString(), 2.1) };
            var parameters = new AddParameters {
                Overwrite = false
            };
            var cmd = new AddCommand <TestDocWithString>(docs, docSerializer, parameters);

            cmd.Execute(conn);
            Assert.AreEqual(1, conn.post.Calls);
        }
Esempio n. 18
0
		public void DeleteByQuery() {
            const string queryString = "someQuery";
		    var q = new SolrQuery(queryString);
            var xml = string.Format("<delete><query>{0}</query></delete>", queryString);

		    var conn = new Mocks.MSolrConnection();
		    conn.post = conn.post.Args("/update", xml);

		    var querySerializer = new Mocks.MSolrQuerySerializer();
		    querySerializer.serialize += _ => queryString;

            var cmd = new DeleteCommand(new DeleteByIdAndOrQueryParam(null, q, querySerializer), null);
            cmd.Execute(conn);

            Assert.AreEqual(1, conn.post.Calls);
		}
Esempio n. 19
0
 public void Execute() {
     var parameters = new ExtractParameters(null, "1", "text.doc");
     var conn = new MSolrConnection();
     conn.postStream += (url, b, stream, kvs) => {
         Assert.AreEqual("/update/extract", url);
         var p = new[] {
             KV.Create("literal.id", parameters.Id),
             KV.Create("resource.name", parameters.ResourceName),
         };
         Assert.AreElementsEqualIgnoringOrder(p, kvs);
         return "";
     };
     var cmd = new ExtractCommand(parameters);
     cmd.Execute(conn);
     Assert.AreEqual(1, conn.postStream.Calls);
 }
Esempio n. 20
0
		public void Execute() {
		    var conn = new Mocks.MSolrConnection();
		    conn.post += (url, content) => {
		        Assert.AreEqual("/update", url);
		        Assert.AreEqual("<add><doc><field name=\"Id\">id</field><field name=\"Flower\">23.5</field></doc></add>", content);
		        Console.WriteLine(content);
		        return null;
		    };
		    var docSerializer = new SolrDocumentSerializer<SampleDoc>(new AttributesMappingManager(), new DefaultFieldSerializer());
            var docs = new[] {
                new KeyValuePair<SampleDoc, double?>(new SampleDoc(), null), 
			};
            var cmd = new AddCommand<SampleDoc>(docs, docSerializer, null);
            cmd.Execute(conn);
            Assert.AreEqual(1, conn.post.Calls);
        }
Esempio n. 21
0
        public void AddWithBoost()
        {
            var connection = new MSolrConnection();
            connection.post += (url, content) => {
                Assert.AreEqual("/update", url);
                Assert.AreEqual("<add><doc boost=\"2.1\" /></add>", content);
                return EmbeddedResource.GetEmbeddedString(GetType(), "Resources.response.xml");
            };
            var docSerializer = new SolrDocumentSerializer<TestDocumentWithoutUniqueKey>(new AttributesMappingManager(), new DefaultFieldSerializer());
            var headerParser = new MSolrHeaderResponseParser();
            headerParser.parse = headerParser.parse.Return(null);
            var ops = new SolrBasicServer<TestDocumentWithoutUniqueKey>(connection, null, docSerializer, null, headerParser, null, null, null);
            ops.AddWithBoost(new[] { new KeyValuePair<TestDocumentWithoutUniqueKey, double?>(new TestDocumentWithoutUniqueKey(), 2.1), }, null);

            Assert.AreEqual(1, connection.post.Calls);
        }
Esempio n. 22
0
        public void DeleteByIdAndQuery()
        {
            var ids = new[] { "123", "456" };
            const string queryString = "someQuery";
            var xml = string.Format("<delete><id>{0}</id><id>{1}</id><query>{2}</query></delete>", ids[0], ids[1], queryString);
            var conn = new Mocks.MSolrConnection();
            conn.post = conn.post.Args("/update", xml);

            var q = new SolrQuery(queryString);
            var querySerializer = new Mocks.MSolrQuerySerializer();
            querySerializer.serialize += _ => queryString;

            var cmd = new DeleteCommand(new DeleteByIdAndOrQueryParam(ids, q, querySerializer));
            cmd.Execute(conn);

            Assert.AreEqual(1, conn.post.Calls);
        }
        public void AtomicUpdateSetEmptyArray()
        {
            var conn = new Mocks.MSolrConnection();

            conn.postStream += new MFunc <string, string, Stream, IEnumerable <KeyValuePair <string, string> >, string>((url, contentType, content, param) => {
                string text = new StreamReader(content, Encoding.UTF8).ReadToEnd();
                Assert.Equal("/update", url);
                Assert.Equal("[{\"id\":\"0\",\"animal\":{\"set\":[]}}]", text);
                Console.WriteLine(text);
                return(null);
            });
            var updateSpecs = new AtomicUpdateSpec[] { new AtomicUpdateSpec("animal", AtomicUpdateType.Set, new string[] {}) };
            var cmd         = new AtomicUpdateCommand("id", "0", updateSpecs, null);

            cmd.Execute(conn);
            Assert.Equal(1, conn.postStream.Calls);
        }
        public void AtomicUpdateRemoveRegexArray()
        {
            var conn = new Mocks.MSolrConnection();

            conn.postStream += new MFunc <string, string, Stream, IEnumerable <KeyValuePair <string, string> >, string>((url, contentType, content, param) => {
                string text = new StreamReader(content, Encoding.UTF8).ReadToEnd();
                Assert.Equal("/update", url);
                Assert.Equal("[{\"id\":\"0\",\"food\":{\"removeregex\":[\"nu.*\",\"seeds\",\"berr.+\"]}}]", text);
                Console.WriteLine(text);
                return(null);
            });
            var updateSpecs = new AtomicUpdateSpec[] { new AtomicUpdateSpec("food", AtomicUpdateType.RemoveRegex, new string[] { "nu.*", "seeds", "berr.+" }) };
            var cmd         = new AtomicUpdateCommand("id", "0", updateSpecs, null);

            cmd.Execute(conn);
            Assert.Equal(1, conn.postStream.Calls);
        }
Esempio n. 25
0
        public void ExecuteWithBasicOptions()
        {
            var conn = new Mocks.MSolrConnection();

            conn.post += (url, content) => {
                Assert.AreEqual("/update", url);
                Assert.AreEqual("<commit waitSearcher=\"true\" waitFlush=\"true\" />", content);
                Console.WriteLine(content);
                return(null);
            };
            var cmd = new CommitCommand {
                WaitFlush = true, WaitSearcher = true
            };

            cmd.Execute(conn);
            Assert.AreEqual(1, conn.post.Calls);
        }
Esempio n. 26
0
        public void DocumentBoost()
        {
            var conn = new Mocks.MSolrConnection();

            conn.post += (url, content) => {
                Assert.AreEqual("/update", url);
                Assert.AreEqual("<add><doc boost=\"2.1\" /></add>", content);
                Console.WriteLine(content);
                return(null);
            };
            var docSerializer = new SolrDocumentSerializer <TestDocWithString>(new AttributesMappingManager(), new DefaultFieldSerializer());
            var docs          = new[] { new KeyValuePair <TestDocWithString, double?>(new TestDocWithString(), 2.1) };
            var cmd           = new AddCommand <TestDocWithString>(docs, docSerializer, null);

            cmd.Execute(conn);
            Assert.AreEqual(1, conn.post.Calls);
        }
        public void AtomicUpdateCommandNameInvariantCulture()
        {
            var conn = new Mocks.MSolrConnection();

            conn.postStream += new MFunc <string, string, Stream, IEnumerable <KeyValuePair <string, string> >, string>((url, contentType, content, param) => {
                string text = new StreamReader(content, Encoding.UTF8).ReadToEnd();
                Assert.Equal("/update", url);
                Assert.Equal("[{\"id\":\"0\",\"count\":{\"inc\":1}}]", text);
                Console.WriteLine(text);
                return(null);
            });
            var updateSpecs = new AtomicUpdateSpec[] { new AtomicUpdateSpec("count", AtomicUpdateType.Inc, 1) };
            var cmd         = new AtomicUpdateCommand("id", "0", updateSpecs, null);

            cmd.Execute(conn);
            Assert.Equal(1, conn.postStream.Calls);
        }
Esempio n. 28
0
        public void AtomicUpdateAdd()
        {
            var conn = new Mocks.MSolrConnection();

            conn.postStream += new MFunc <string, string, Stream, IEnumerable <KeyValuePair <string, string> >, string>((url, contentType, content, param) => {
                string text = new StreamReader(content, Encoding.UTF8).ReadToEnd();
                Assert.Equal("/update", url);
                Assert.Equal("[{\"id\":\"0\",\"food\":{\"add\":\"nuts\"}}]", text);
                testOutputHelper.WriteLine(text);
                return(null);
            });
            var updateSpecs = new AtomicUpdateSpec[] { new AtomicUpdateSpec("food", AtomicUpdateType.Add, "nuts") };
            var cmd         = new AtomicUpdateCommand("id", "0", updateSpecs, null);

            cmd.Execute(conn);
            Assert.Equal(1, conn.postStream.Calls);
        }
Esempio n. 29
0
        public void ExecuteWithAllOptions() {
            var conn = new MSolrConnection();
            conn.post += (url, content) => {
                Assert.AreEqual("/update", url);
                Assert.AreEqual("<optimize waitSearcher=\"true\" waitFlush=\"true\" expungeDeletes=\"true\" maxSegments=\"2\" />", content);
                Console.WriteLine(content);
                return null;
            };
            var cmd = new OptimizeCommand {
                MaxSegments = 2,
                ExpungeDeletes = true,
                WaitFlush = true,
                WaitSearcher = true
            };
            cmd.Execute(conn);

            Assert.AreEqual(1, conn.post.Calls);
        }
Esempio n. 30
0
        public void Add() {
            var xml = EmbeddedResource.GetEmbeddedString(GetType(), "Resources.response.xml");
            var connection = new MSolrConnection();
            connection.post = connection.post
                .Expect(1)
                .Args("/update", "<add><doc /></add>")
                .Return(xml);

            var headerParser = new MSolrHeaderResponseParser();
            headerParser.parse = headerParser.parse.Return(null);

            var docSerializer = new SolrDocumentSerializer<TestDocumentWithoutUniqueKey>(new AttributesMappingManager(), new DefaultFieldSerializer());
            var ops = new SolrBasicServer<TestDocumentWithoutUniqueKey>(connection, null, docSerializer, null, headerParser, null, null, null);
            ops.AddWithBoost(new[] {
                new KeyValuePair<TestDocumentWithoutUniqueKey, double?>(new TestDocumentWithoutUniqueKey(), null),
            }, null);
            connection.post.Verify();
        }
        public void DeleteFromPending()
        {
            const string id = "123123";

            var conn = new Mocks.MSolrConnection();
            var xml  = string.Format("<delete fromPending=\"true\"><id>{0}</id></delete>", id);

            conn.post = conn.post.Args("/update", xml);

            var cmd = new DeleteCommand(new DeleteByIdAndOrQueryParam(new[] { id }, null, null), null)
            {
                FromPending = true
            };

            cmd.Execute(conn);

            Assert.Equal(1, conn.post.Calls);
        }
Esempio n. 32
0
        public void Execute()
        {
            var conn = new Mocks.MSolrConnection();

            conn.post += (url, content) => {
                Assert.AreEqual("/update", url);
                Assert.AreEqual("<add><doc><field name=\"Id\">id</field><field name=\"Flower\">23.5</field></doc></add>", content);
                Console.WriteLine(content);
                return(null);
            };
            var docSerializer = new SolrDocumentSerializer <SampleDoc>(new AttributesMappingManager(), new DefaultFieldSerializer());
            var docs          = new[] {
                new KeyValuePair <SampleDoc, double?>(new SampleDoc(), null),
            };
            var cmd = new AddCommand <SampleDoc>(docs, docSerializer, null);

            cmd.Execute(conn);
            Assert.AreEqual(1, conn.post.Calls);
        }
Esempio n. 33
0
        public void DeleteByQuery()
        {
            const string queryString = "someQuery";
            var          q           = new SolrQuery(queryString);
            var          xml         = string.Format("<delete><query>{0}</query></delete>", queryString);

            var conn = new Mocks.MSolrConnection();

            conn.post = conn.post.Args("/update", xml);

            var querySerializer = new Mocks.MSolrQuerySerializer();

            querySerializer.serialize += _ => queryString;

            var cmd = new DeleteCommand(new DeleteByIdAndOrQueryParam(null, q, querySerializer));

            cmd.Execute(conn);

            Assert.AreEqual(1, conn.post.Calls);
        }
Esempio n. 34
0
        public void DeleteByIdAndQuery()
        {
            var          ids         = new[] { "123", "456" };
            const string queryString = "someQuery";
            var          xml         = string.Format("<delete><id>{0}</id><id>{1}</id><query>{2}</query></delete>", ids[0], ids[1], queryString);
            var          conn        = new Mocks.MSolrConnection();

            conn.post = conn.post.Args("/update", xml);

            var q = new SolrQuery(queryString);
            var querySerializer = new Mocks.MSolrQuerySerializer();

            querySerializer.serialize += _ => queryString;

            var cmd = new DeleteCommand(new DeleteByIdAndOrQueryParam(ids, q, querySerializer), null);

            cmd.Execute(conn);

            Assert.AreEqual(1, conn.post.Calls);
        }
Esempio n. 35
0
        public void ExecuteWithAllOptions()
        {
            var conn = new Mocks.MSolrConnection();

            conn.post += (url, content) => {
                Assert.Equal("/update", url);
                Assert.Equal("<commit waitSearcher=\"true\" waitFlush=\"true\" expungeDeletes=\"true\" maxSegments=\"2\" />", content);
                testOutputHelper.WriteLine(content);
                return(null);
            };

            var cmd = new CommitCommand {
                MaxSegments    = 2,
                ExpungeDeletes = true,
                WaitFlush      = true,
                WaitSearcher   = true
            };

            cmd.Execute(conn);
            Assert.Equal(1, conn.post.Calls);
        }
Esempio n. 36
0
        public void AtomicUpdateWithParameter()
        {
            var conn = new Mocks.MSolrConnection();

            conn.postStream += new MFunc <string, string, Stream, IEnumerable <KeyValuePair <string, string> >, string>((url, contentType, content, param) => {
                string text = new StreamReader(content, Encoding.UTF8).ReadToEnd();
                Assert.Equal("/update", url);
                Assert.Equal("commitwithin", ((KeyValuePair <string, string>[])param)[0].Key);
                Assert.Equal("4343", ((KeyValuePair <string, string>[])param)[0].Value);
                Assert.Equal("[{\"id\":\"0\",\"count\":{\"inc\":3}}]", text);
                testOutputHelper.WriteLine(text);
                return(null);
            });
            var parameters = new AtomicUpdateParameters {
                CommitWithin = 4343
            };
            var updateSpecs = new AtomicUpdateSpec[] { new AtomicUpdateSpec("count", AtomicUpdateType.Inc, 3) };
            var cmd         = new AtomicUpdateCommand("id", "0", updateSpecs, parameters);

            cmd.Execute(conn);
            Assert.Equal(1, conn.postStream.Calls);
        }
Esempio n. 37
0
        public void AtomicUpdateSerialization()
        {
            var conn = new Mocks.MSolrConnection();

            conn.postStream += new MFunc <string, string, Stream, IEnumerable <KeyValuePair <string, string> >, string>((url, contentType, content, param) => {
                string text = new StreamReader(content, Encoding.UTF8).ReadToEnd();
                Assert.Equal("/update", url);
                Assert.Equal("[{"
                             + "\"id\":\"0\","
                             + "\"quote\":{\"set\":\"\\\"quoted\\\"\"},"
                             + "\"backslashInText\":{\"set\":\"y\\\\n\"},"
                             + "\"newLineInText\":{\"set\":\"line1\\nline2\"}"
                             + "}]",
                             text);
                testOutputHelper.WriteLine(text);
                return(null);
            });

            /* This document is equivalent to:
             * {
             *   id = 0;
             *   quote = "quoted";
             *   backslashInText = y\n;
             *   newLineInText = line1
             *   line2;
             * }
             */
            var updateSpecs = new AtomicUpdateSpec[] {
                new AtomicUpdateSpec("quote", AtomicUpdateType.Set, "\"quoted\""),
                new AtomicUpdateSpec("backslashInText", AtomicUpdateType.Set, "y\\n"),
                new AtomicUpdateSpec("newLineInText", AtomicUpdateType.Set, "line1\nline2")
            };
            var cmd = new AtomicUpdateCommand("id", "0", updateSpecs, null);

            cmd.Execute(conn);
            Assert.Equal(1, conn.postStream.Calls);
        }
Esempio n. 38
0
 public void DeleteByQueryString()
 {
     const string q = "id:123456";
     var conn = new MSolrConnection();
     conn.post &= x => x.Args("/update", string.Format("<delete><query>{0}</query></delete>", q))
                           .Expect(1);
     Solr.Connection = conn;
     Solr.Delete.ByQuery(q);
     conn.post.Verify();
 }
Esempio n. 39
0
 public void FacetField_options()
 {
     var conn = new MSolrConnection();
     conn.get &= x => x.Return(response);
     Solr.Connection = conn;
     var r = Solr.Query<TestDocument>().By("makedesc").Is("bmw")
         .WithFacetField("modeldesc")
         .LimitTo(100)
         .DontSortByCount()
         .WithPrefix("xx")
         .WithMinCount(10)
         .StartingAt(20)
         .IncludeMissing()
         .Run();
 }
Esempio n. 40
0
        public void MultiCore_Rebind_IConnection()
        {
            var solrServers = new SolrServers {
                new SolrServerElement {
                    Id = "core-0",
                    Url = "http://*****:*****@"<?xml version=""1.0"" encoding=""UTF-8""?>
<response>
<lst name=""responseHeader""><int name=""status"">0</int><int name=""QTime"">0</int><lst name=""params""><str name=""q"">id:123456</str><str name=""?""/><str name=""version"">2.2</str></lst></lst><result name=""response"" numFound=""1"" start=""0""><doc></doc></result>
</response>
";

            var solr1 = kernel.Get<ISolrOperations<Entity>>("core-0");
            Assert.IsNotNull(solr1);

            Assert.Throws<SolrConnectionException>(() => solr1.Query("SomeField:Value"));

            MSolrConnection conn = new MSolrConnection();
            conn.get &= x => x.Return(Response);
            kernel.Rebind<ISolrConnection>().ToConstant(conn).WithMetadata("CoreId", "core-0");
            kernel.Rebind<ISolrConnection>().ToConstant(conn).WithMetadata("CoreId", "core-1");

            var solr2 = kernel.Get<ISolrOperations<Entity>>("core-1");
            Assert.IsNotNull(solr2);

            var r = solr2.Query("SomeField:Value");
            Assert.AreEqual(1, r.NumFound);
        }
Esempio n. 41
0
        public void DeleteFromCommittedAndFromPending()
        {
            const string id = "123123";

            var conn = new Mocks.MSolrConnection();
            var xml = string.Format("<delete fromPending=\"false\" fromCommitted=\"false\"><id>{0}</id></delete>", id);
            conn.post = conn.post.Args("/update", xml);

            var cmd = new DeleteCommand(new DeleteByIdAndOrQueryParam(new[] { id }, null, null), null)
            {
                FromCommitted = false,
                FromPending = false
            };
            cmd.Execute(conn);

            Assert.AreEqual(1, conn.post.Calls);
        }
Esempio n. 42
0
 public void FieldBoost()
 {
     var docSerializer = new SolrDocumentSerializer<TestDocWithFieldBoost>(new AttributesMappingManager(), new DefaultFieldSerializer());
     var conn = new Mocks.MSolrConnection();
     conn.post = conn.post
         .Args("/update", "<add><doc><field name=\"SimpleBoost\" boost=\"20\">simple</field><field name=\"nameandboost\" boost=\"20\">boost</field></doc></add>");
     var docs = new[] { new KeyValuePair<TestDocWithFieldBoost, double?>(new TestDocWithFieldBoost(), null) };
     var cmd = new AddCommand<TestDocWithFieldBoost>(docs, docSerializer, null);
     cmd.Execute(conn);
     Assert.AreEqual(1, conn.post.Calls);
 }
Esempio n. 43
0
 public void FacetQuery_string()
 {
     var conn = new MSolrConnection();
     conn.get &= x => x.Return(response);
     Solr.Connection = conn;
     var r = Solr.Query<TestDocument>().By("makedesc").Is("bmw").WithFacetQuery("").Run();
 }
Esempio n. 44
0
 public void Optimize()
 {
     var conn = new MSolrConnection();
     conn.post &= x => x.Args("/update", "<optimize />");
     Solr.Connection = conn;
     Solr.Optimize();
     Assert.AreEqual(1, conn.post.Calls);
 }
Esempio n. 45
0
 public void QueryWithPagination()
 {
     var conn = new MSolrConnection();
     conn.get &= x => x.Return(response);
     Solr.Connection = conn;
     var r = Solr.Query<TestDocument>("", 10, 20);
     Assert.AreEqual(1, r.NumFound);
 }
Esempio n. 46
0
 public void Query_InvalidField_ShouldNOTThrow()
 {
     const string response =
         @"<?xml version=""1.0"" encoding=""UTF-8""?>
     <response>
     <lst name=""responseHeader""><int name=""status"">0</int><int name=""QTime"">0</int><lst name=""params""><str name=""q"">id:123456</str><str name=""?""/><str name=""version"">2.2</str></lst></lst><result name=""response"" numFound=""1"" start=""0""><doc><str name=""advancedview""/><str name=""basicview""/><int name=""id"">123456</int></doc></result>
     </response>";
     var conn = new MSolrConnection();
     conn.get &= x => x.Return(response);
     Solr.Connection = conn;
     Solr.Query<TestDocument>("");
 }
Esempio n. 47
0
 public void OptimizeWithParams()
 {
     var conn = new MSolrConnection();
     conn.post &= x => x.Args("/update", "<optimize waitSearcher=\"true\" waitFlush=\"true\" />");
     Solr.Connection = conn;
     Solr.Optimize(true, true);
     Assert.AreEqual(1, conn.post.Calls);
 }
Esempio n. 48
0
 public void DocumentBoost()
 {
     var conn = new Mocks.MSolrConnection();
     conn.post += (url, content) => {
         Assert.AreEqual("/update", url);
         Assert.AreEqual("<add><doc boost=\"2.1\" /></add>", content);
         Console.WriteLine(content);
         return null;
     };
     var docSerializer = new SolrDocumentSerializer<TestDocWithString>(new AttributesMappingManager(), new DefaultFieldSerializer());
     var docs = new[] { new KeyValuePair<TestDocWithString, double?>(new TestDocWithString(), 2.1) };
     var cmd = new AddCommand<TestDocWithString>(docs, docSerializer, null);
     cmd.Execute(conn);
     Assert.AreEqual(1, conn.post.Calls);
 }
Esempio n. 49
0
 public void SupportsDocumentWithStringCollection()
 {
     var docSerializer = new SolrDocumentSerializer<TestDocWithCollections>(new AttributesMappingManager(), new DefaultFieldSerializer());
     var conn = new Mocks.MSolrConnection();
     conn.post = conn.post
         .Args("/update", "<add><doc><field name=\"coll\">one</field><field name=\"coll\">two</field></doc></add>");
     var docs = new[] {
         new KeyValuePair<TestDocWithCollections, double?>(new TestDocWithCollections(), null),
     };
     var cmd = new AddCommand<TestDocWithCollections>(docs, docSerializer, null);
     cmd.Execute(conn);
     Assert.AreEqual(1, conn.post.Calls);
 }
Esempio n. 50
0
 public void DeleteById()
 {
     const string id = "123456";
     var conn = new MSolrConnection();
     conn.post &= x => x.Args("/update", string.Format("<delete><id>{0}</id></delete>", id));
     conn.post &= x => x.Expect(1);
     Solr.Connection = conn;
     Solr.Delete.ById(id);
     conn.post.Verify();
 }