public void AtomicUpdate() { var xml = EmbeddedResource.GetEmbeddedString(GetType(), "Resources.response.xml"); var connection = new MSolrConnection(); connection.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\",\"animal\":{\"set\":\"squirrel\"},\"food\":{\"add\":[\"nuts\",\"seeds\"]},\"count\":{\"inc\":3},\"colour\":{\"remove\":\"pink\"},\"habitat\":{\"removeregex\":[\"tree.*\",\"river.+\"]}}]", text); return(xml); }); var headerParser = new MSolrHeaderResponseParser(); headerParser.parse += _ => null; var basic = new SolrBasicServer <TestDocumentWithUniqueKey>(connection, null, null, null, headerParser, null, null, null); var ops = new SolrServer <TestDocumentWithUniqueKey>(basic, new AttributesMappingManager(), null); var parameters = new AtomicUpdateParameters { CommitWithin = 4343 }; var updateSpecs = new AtomicUpdateSpec[] { new AtomicUpdateSpec("animal", AtomicUpdateType.Set, "squirrel"), new AtomicUpdateSpec("food", AtomicUpdateType.Add, new string[] { "nuts", "seeds" }), new AtomicUpdateSpec("count", AtomicUpdateType.Inc, 3), new AtomicUpdateSpec("colour", AtomicUpdateType.Remove, "pink"), new AtomicUpdateSpec("habitat", AtomicUpdateType.RemoveRegex, new string[] { "tree.*", "river.+" }) }; ops.AtomicUpdate(new TestDocumentWithUniqueKey(), updateSpecs, parameters); Assert.Equal(1, connection.postStream.Calls); }
public void Commit() { var connection = new MSolrConnection(); connection.post &= x => x.Args("/update", "<commit />") .Return(EmbeddedResource.GetEmbeddedString(GetType(), "Resources.response.xml")) .Expect(1); var headerParser = new MSolrHeaderResponseParser(); headerParser.parse = headerParser.parse.Return(null); var ops = new SolrBasicServer <TestDocumentWithoutUniqueKey>(connection, null, null, null, headerParser, null, null, null); ops.Commit(null); connection.post.Verify(); }
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); }
public void Optimize() { var connection = new MSolrConnection(); connection.post += (url, content) => { Assert.AreEqual("/update", url); Assert.AreEqual("<optimize />", content); return(EmbeddedResource.GetEmbeddedString(GetType(), "Resources.response.xml")); }; var headerParser = new MSolrHeaderResponseParser(); headerParser.parse += _ => null; var ops = new SolrBasicServer <TestDocumentWithoutUniqueKey>(connection, null, null, null, headerParser, null, null, null); ops.Optimize(null); Assert.AreEqual(1, connection.post.Calls); }
public void CommitWithOptions2_WaitSearcher_WaitFlush() { var connection = new MSolrConnection(); connection.post += (url, content) => { Assert.AreEqual("/update", url); Assert.AreEqual("<commit waitSearcher=\"true\" waitFlush=\"true\" />", content); return(EmbeddedResource.GetEmbeddedString(GetType(), "Resources.response.xml")); }; var headerParser = new MSolrHeaderResponseParser(); headerParser.parse &= x => x.Stub(); var ops = new SolrBasicServer <TestDocumentWithoutUniqueKey>(connection, null, null, null, headerParser, null, null, null); ops.Commit(new CommitOptions { WaitSearcher = true, WaitFlush = true }); Assert.AreEqual(1, connection.post.Calls); }
public void DeleteByQuery() { var connection = new MSolrConnection(); connection.post += (url, content) => { Assert.AreEqual("/update", url); Assert.AreEqual("<delete><query>id:123</query></delete>", content); return(EmbeddedResource.GetEmbeddedString(GetType(), "Resources.response.xml")); }; var headerParser = new MSolrHeaderResponseParser(); headerParser.parse += _ => null; var querySerializer = new MSolrQuerySerializer(); querySerializer.serialize += _ => "id:123"; var ops = new SolrBasicServer <TestDocumentWithUniqueKey>(connection, null, null, null, headerParser, querySerializer, null, null); ops.Delete(null, new SolrQuery("id:123")); Assert.AreEqual(1, connection.post.Calls); }
public void CommitWithOptions() { var connection = new MSolrConnection(); connection.post += (url, content) => { Assert.AreEqual("/update", url); Assert.AreEqual("<commit />", content); return(EmbeddedResource.GetEmbeddedString(GetType(), "Resources.response.xml")); }; connection.post &= x => x.Expect(1); var headerParser = new MSolrHeaderResponseParser(); headerParser.parse += _ => null; var ops = new SolrBasicServer <TestDocumentWithoutUniqueKey>(connection, null, null, null, headerParser, null, null, null); ops.Commit(new CommitOptions()); connection.post.Verify(); }
public void OptimizeWithWaitOptions() { var connection = new MSolrConnection(); connection.post += (url, content) => { Assert.Equal("/update", url); Assert.Equal("<optimize waitSearcher=\"true\" waitFlush=\"true\" />", content); return(EmbeddedResource.GetEmbeddedString(GetType(), "Resources.response.xml")); }; var headerParser = new MSolrHeaderResponseParser(); headerParser.parse += _ => null; var ops = new SolrBasicServer <TestDocumentWithoutUniqueKey>(connection, null, null, null, headerParser, null, null, null); ops.Optimize(new CommitOptions { WaitFlush = true, WaitSearcher = true }); }
public void DeleteByMultipleId() { var connection = new MSolrConnection(); connection.post += (url, content) => { Assert.AreEqual("/update", url); Assert.AreEqual("<delete><id>0</id><id>0</id></delete>", content); return(EmbeddedResource.GetEmbeddedString(GetType(), "Resources.response.xml")); }; var headerParser = new MSolrHeaderResponseParser(); headerParser.parse += _ => null; var basic = new SolrBasicServer <TestDocumentWithUniqueKey>(connection, null, null, null, headerParser, null, null, null); var ops = new SolrServer <TestDocumentWithUniqueKey>(basic, new AttributesMappingManager(), null); ops.Delete(new[] { new TestDocumentWithUniqueKey(), new TestDocumentWithUniqueKey(), }); Assert.AreEqual(1, connection.post.Calls); }
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); }
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(); }