예제 #1
0
 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);
 }
예제 #2
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);
 }
예제 #3
0
        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.AreEqual(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.AreEqual(1, basicServer.addWithBoost.Calls);
        }
예제 #4
0
        public void AddWithBoost_single_doc_with_add_parameters_calls_operations_with_same_add_parameters()
        {
            var basicServer = new MSolrBasicOperations<TestDocument>();
            var parameters = new AddParameters { CommitWithin = 4343 };
            var t = new TestDocument();
            basicServer.addWithBoost += (docs, p) => {
                Assert.AreSame(parameters, p);
                var ldocs = docs.ToList();
                Assert.AreEqual(1, ldocs.Count);
                var doc = ldocs[0];
                Assert.AreEqual(2.1, doc.Value);
                Assert.AreSame(t, doc.Key);
                return null;
            };

            var s = new SolrServer<TestDocument>(basicServer, null, null);
            s.AddWithBoost(t, 2.1, parameters);
            Assert.AreEqual(1, basicServer.addWithBoost.Calls);
        }
예제 #5
0
 public void AddWithBoost_single_doc_with_add_parameters_calls_operations_with_same_add_parameters()
 {
     var mocks = new MockRepository();
     var basicServer = mocks.StrictMock<ISolrBasicOperations<TestDocument>>();
     var mapper = mocks.StrictMock<IReadOnlyMappingManager>();
     var validationManager = mocks.StrictMock<IMappingValidator>();
     var parameters = new AddParameters { CommitWithin = 4343 };
     With.Mocks(mocks)
         .Expecting(() =>
             Expect.Call(
                 basicServer.AddWithBoost(Arg<IEnumerable<KeyValuePair<TestDocument, double?>>>.Is.Anything, Arg<AddParameters>.Is.Equal(parameters)))
             .Repeat.Once())
         .Verify(() =>
         {
             var s = new SolrServer<TestDocument>(basicServer, mapper, validationManager);
             var t = new TestDocument();
             s.AddWithBoost(t, 2.1, parameters);
         });
 }
예제 #6
0
 public void DocumentAddParametersOverwriteSpecifiedFalse()
 {
     var mocks = new MockRepository();
     var conn = mocks.StrictMock<ISolrConnection>();
     var docSerializer = new SolrDocumentSerializer<TestDocWithString>(new AttributesMappingManager(), new DefaultFieldSerializer());
     With.Mocks(mocks).Expecting(() => {
         conn.Post("/update",
                   "<add overwrite=\"false\"><doc boost=\"2.1\" /></add>");
         LastCall.On(conn).Repeat.Once().Do(new Writer(delegate(string ignored, string s) {
             Console.WriteLine(s);
             return null;
         }));
     }).Verify(() => {
         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);
     });
 }
예제 #7
0
 public Task <ResponseHeader> AddRangeAsync(IEnumerable <T> docs, AddParameters parameters)
 {
     SetLastOperation();
     return(Task.FromResult <ResponseHeader>(null));
 }
예제 #8
0
 public ResponseHeader AddWithBoost(T doc, double boost, AddParameters parameters)
 {
     SetLastOperation();
     return(null);
 }
예제 #9
0
 public Task <ResponseHeader> AddWithBoostAsync(T doc, double boost, AddParameters parameters)
 => PerformOperation(operations => operations.AddWithBoostAsync(doc, boost, parameters));
예제 #10
0
 public ResponseHeader AddWithBoost(IEnumerable <KeyValuePair <T, double?> > docs, AddParameters parameters)
 {
     return(PerformBasicOperation(operations => operations.AddWithBoost(docs, parameters)));
 }
예제 #11
0
 public async Task <ResponseHeader> Add(T doc, AddParameters parameters)
 {
     return(await AddRange(new[] { doc }, parameters));
 }
예제 #12
0
 public async Task <ResponseHeader> AddRange(IEnumerable <T> docs, AddParameters parameters)
 {
     return(await basicServer.AddWithBoost(docs.Select(d => new KeyValuePair <T, double?>(d, null)), parameters));
 }
예제 #13
0
 public Task <ResponseHeader> AddRangeWithBoostAsync(IEnumerable <KeyValuePair <T, double?> > docs, AddParameters parameters)
 {
     SetLastOperation();
     return(Task.FromResult <ResponseHeader>(null));
 }
예제 #14
0
 public ResponseHeader Add(IEnumerable <T> docs, AddParameters parameters)
 {
     return(basicServer.AddWithBoost(docs.Select(d => new KeyValuePair <T, double?>(d, null)), parameters));
 }
예제 #15
0
        public async Task <ResponseHeader> AddWithBoost(IEnumerable <KeyValuePair <T, double?> > docs, AddParameters parameters)
        {
            var cmd = new AddCommand <T>(docs, parameters);

            return(await SendAndParseHeader(cmd));
        }
예제 #16
0
 public Task <ResponseHeader> AddWithBoostAsync(T doc, double boost, AddParameters parameters)
 {
     throw new NotImplementedException();
 }
예제 #17
0
 public Task <ResponseHeader> AddAsync(T doc, AddParameters parameters)
 {
     throw new NotImplementedException();
 }
예제 #18
0
 public Task <ResponseHeader> AddRangeAsync(IEnumerable <T> docs, AddParameters parameters)
 => PerformOperation(operations => operations.AddRangeAsync(docs, parameters));
예제 #19
0
 public ResponseHeader AddRange(IEnumerable <T> docs, AddParameters parameters)
 {
     return(PerformOperation(operations => operations.AddRange(docs, parameters), true));
 }
예제 #20
0
 ResponseHeader ISolrOperations <T> .AddWithBoost(IEnumerable <KeyValuePair <T, double?> > docs, AddParameters parameters)
 {
     return(basicServer.AddWithBoost(docs, parameters));
 }
예제 #21
0
 public ResponseHeader Add(T doc, AddParameters parameters)
 {
     return(PerformOperation(operations => operations.Add(doc, parameters), true));
 }
예제 #22
0
 public ResponseHeader Add(T doc, AddParameters parameters)
 {
     return(AddRange(new[] { doc }, parameters));
 }
예제 #23
0
 public async Task <ResponseHeader> AddWithBoost(T doc, double boost, AddParameters parameters)
 {
     return(await((ISolrOperations <T>) this).AddRangeWithBoost(new[] { new KeyValuePair <T, double?>(doc, boost) }, parameters));
 }
예제 #24
0
 public ResponseHeader AddRange(IEnumerable <T> docs, AddParameters parameters)
 {
     throw new NotImplementedException();
 }
예제 #25
0
 public async Task <ResponseHeader> AddRangeWithBoost(IEnumerable <KeyValuePair <T, double?> > docs, AddParameters parameters)
 {
     return(await basicServer.AddWithBoost(docs, parameters));
 }
예제 #26
0
        public ResponseHeader AddWithBoost(IEnumerable <KeyValuePair <T, double?> > docs, AddParameters parameters)
        {
            var cmd = new AddCommand <T>(docs, documentSerializer, parameters);

            return(SendAndParseHeader(cmd));
        }
예제 #27
0
 public Task <ResponseHeader> AddWithBoostAsync(IEnumerable <KeyValuePair <T, double?> > docs, AddParameters parameters)
 => PerformBasicOperation(operations => operations.AddWithBoostAsync(docs, parameters));
예제 #28
0
 public void Add_enumerable_with_add_parameters_calls_operations_with_same_add_parameters() {
     var parameters = new AddParameters { CommitWithin = 4343 };
     var basicServer = new MSolrBasicOperations<TestDocument>();
     basicServer.addWithBoost += (docs, p) => {
         Assert.AreSame(parameters, p);
         return null;
     };
     var s = new SolrServer<TestDocument>(basicServer, null, null);
     var t = new[] { new TestDocument(), new TestDocument() };
     s.AddRange(t, parameters);
 }
예제 #29
0
 public ResponseHeader AddRangeWithBoost(IEnumerable <KeyValuePair <T, double?> > docs, AddParameters parameters)
 {
     throw new NotImplementedException();
 }
예제 #30
0
 public Task <ResponseHeader> AddAsync(T doc, AddParameters parameters)
 => PerformOperation(operations => operations.AddAsync(doc, parameters));
예제 #31
0
 public Task <ResponseHeader> AddWithBoostAsync(IEnumerable <KeyValuePair <T, double?> > docs, AddParameters parameters)
 {
     throw new NotImplementedException();
 }
예제 #32
0
 public AddCommand(IEnumerable <KeyValuePair <T, double?> > documents, ISolrDocumentSerializer <T> serializer, AddParameters parameters)
 {
     this.documents     = documents;
     documentSerializer = serializer;
     this.parameters    = parameters;
 }
예제 #33
0
 public ResponseHeader Add(T doc, AddParameters parameters)
 {
     return(addDocParams.Invoke(doc, parameters));
 }
예제 #34
0
 public ResponseHeader Add(T doc, AddParameters parameters)
 {
     SetLastOperation();
     return(null);
 }
예제 #35
0
 public ResponseHeader AddWithBoost(IEnumerable <KeyValuePair <T, double?> > docs, AddParameters parameters)
 {
     return(addWithBoost.Invoke(docs, parameters));
 }
예제 #36
0
 public ResponseHeader AddWithBoost(T doc, double boost, AddParameters parameters)
 {
     throw new NotImplementedException();
 }
예제 #37
0
 public void AddWithParameters()
 {
     var mocks = new MockRepository();
     var connection = mocks.StrictMock<ISolrConnection>();
     var executer = mocks.StrictMock<ISolrQueryExecuter<TestDocumentWithoutUniqueKey>>();
     var headerParser = mocks.StrictMock<ISolrHeaderResponseParser>();
     var docSerializer = new SolrDocumentSerializer<TestDocumentWithoutUniqueKey>(new AttributesMappingManager(), new DefaultFieldSerializer());
     With.Mocks(mocks)
         .Expecting(() => {
             Expect.On(connection)
                 .Call(connection.Post("/update", "<add commitWithin=\"4343\" overwrite=\"false\"><doc /></add>"))
                 .Repeat.Once()
                 .Return(EmbeddedResource.GetEmbeddedString(GetType(), "Resources.response.xml"));
             Expect.On(headerParser)
                 .Call(headerParser.Parse(null))
                 .IgnoreArguments()
                 .Return(new ResponseHeader());
         })
         .Verify(() => {
             var ops = new SolrBasicServer<TestDocumentWithoutUniqueKey>(connection, executer, 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);
         });
 }
예제 #38
0
 public ResponseHeader AddWithBoost(T doc, double boost, AddParameters parameters)
 {
     return(PerformOperation(operations => operations.AddWithBoost(doc, boost, parameters), true));
 }