Skip to content

Commit

Permalink
query and facetquery serializers. still broken.
Browse files Browse the repository at this point in the history
  • Loading branch information
mausch committed May 23, 2010
1 parent b477a1d commit 5810222
Show file tree
Hide file tree
Showing 28 changed files with 669 additions and 93 deletions.
18 changes: 10 additions & 8 deletions SolrNet.DSL/Impl/DSLRun.cs
Expand Up @@ -45,11 +45,16 @@ public class DSLRun<T> : IDSLRun<T> {
this.highlight = highlight;
}

public ISolrQueryResults<T> Run() {
var exe = new SolrQueryExecuter<T>(
private ISolrQueryExecuter<T> NewQueryExecuter() {
return new SolrQueryExecuter<T>(
ServiceLocator.Current.GetInstance<ISolrQueryResultParser<T>>(),
connection,
ServiceLocator.Current.GetInstance<ISolrQuerySerializer>());
connection,
ServiceLocator.Current.GetInstance<ISolrQuerySerializer>(),
ServiceLocator.Current.GetInstance<ISolrFacetQuerySerializer>());
}

public ISolrQueryResults<T> Run() {
var exe = NewQueryExecuter();
return exe.Execute(query, new QueryOptions {
OrderBy = order,
Facet = new FacetParameters {
Expand All @@ -60,10 +65,7 @@ public class DSLRun<T> : IDSLRun<T> {
}

public ISolrQueryResults<T> Run(int start, int rows) {
var exe = new SolrQueryExecuter<T>(
ServiceLocator.Current.GetInstance<ISolrQueryResultParser<T>>(),
connection,
ServiceLocator.Current.GetInstance<ISolrQuerySerializer>());
var exe = NewQueryExecuter();
return exe.Execute(query, new QueryOptions {
OrderBy = order,
Facet = new FacetParameters {
Expand Down
3 changes: 2 additions & 1 deletion SolrNet.DSL/Solr.cs
Expand Up @@ -68,7 +68,8 @@ public static class Solr {
return new SolrQueryExecuter<T>(
ServiceLocator.Current.GetInstance<ISolrQueryResultParser<T>>(),
Connection,
ServiceLocator.Current.GetInstance<ISolrQuerySerializer>());
ServiceLocator.Current.GetInstance<ISolrQuerySerializer>(),
ServiceLocator.Current.GetInstance<ISolrFacetQuerySerializer>());
}

/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion SolrNet.Tests/MockConnection.cs
Expand Up @@ -56,7 +56,7 @@ public class MockConnection : ISolrConnection {
public virtual string Get(string relativeUrl, IEnumerable<KeyValuePair<string, string>> parameters) {
var param = new List<KeyValuePair<string, string>>(parameters);
Assert.AreEqual(expectations.Count, param.Count, "Expected {0} parameters but found {1}.\nActual parameters:\n {2}", expectations.Count, param.Count, DumpParams(param));
foreach (var p in parameters)
foreach (var p in param)
Assert.IsTrue(expectations.Contains(p), "Parameter {0}={1}, not found in expectations.\nCurrent expectations are:\n {2}", p.Key, p.Value, DumpParams(expectations));
return response;
}
Expand Down
25 changes: 17 additions & 8 deletions SolrNet.Tests/SolrFacetFieldQueryTests.cs
Expand Up @@ -15,16 +15,25 @@
#endregion

using System;
using System.Collections.Generic;
using System.Linq;
using MbUnit.Framework;
using SolrNet.Impl.FacetQuerySerializers;
using SolrNet.Impl.FieldSerializers;
using SolrNet.Impl.QuerySerializers;

namespace SolrNet.Tests {
[TestFixture]
public class SolrFacetFieldQueryTests {
public IList<KeyValuePair<string, string>> Serialize(object o) {
var serializer = new DefaultFacetQuerySerializer(new DefaultQuerySerializer(), new DefaultFieldSerializer());
return serializer.Serialize(o).ToList();
}

[Test]
public void FieldOnly() {
var fq = new SolrFacetFieldQuery("pepe");
var q = fq.Query.ToList();
var q = Serialize(fq);
Assert.AreEqual(1, q.Count);
Console.WriteLine(q[0]);
Assert.AreEqual("facet.field", q[0].Key);
Expand All @@ -34,7 +43,7 @@ public class SolrFacetFieldQueryTests {
[Test]
public void Prefix() {
var fq = new SolrFacetFieldQuery("pepe") {Prefix = "pre"};
var q = fq.Query.ToList();
var q = Serialize(fq);
Assert.AreEqual(2, q.Count);
Assert.AreEqual("facet.field", q[0].Key);
Assert.AreEqual("pepe", q[0].Value);
Expand All @@ -45,7 +54,7 @@ public class SolrFacetFieldQueryTests {
[Test]
public void Sort() {
var fq = new SolrFacetFieldQuery("pepe") {Sort = true};
var q = fq.Query.ToList();
var q = Serialize(fq);
Assert.AreEqual(2, q.Count);
Assert.AreEqual("facet.field", q[0].Key);
Assert.AreEqual("pepe", q[0].Value);
Expand All @@ -56,7 +65,7 @@ public class SolrFacetFieldQueryTests {
[Test]
public void Limit() {
var fq = new SolrFacetFieldQuery("pepe") {Limit = 5};
var q = fq.Query.ToList();
var q = Serialize(fq);
Assert.AreEqual(2, q.Count);
Assert.AreEqual("facet.field", q[0].Key);
Assert.AreEqual("pepe", q[0].Value);
Expand All @@ -67,7 +76,7 @@ public class SolrFacetFieldQueryTests {
[Test]
public void Offset() {
var fq = new SolrFacetFieldQuery("pepe") {Offset = 5};
var q = fq.Query.ToList();
var q = Serialize(fq);
Assert.AreEqual(2, q.Count);
Assert.AreEqual("facet.field", q[0].Key);
Assert.AreEqual("pepe", q[0].Value);
Expand All @@ -78,7 +87,7 @@ public class SolrFacetFieldQueryTests {
[Test]
public void Mincount() {
var fq = new SolrFacetFieldQuery("pepe") {MinCount = 5};
var q = fq.Query.ToList();
var q = Serialize(fq);
Assert.AreEqual(2, q.Count);
Assert.AreEqual("facet.field", q[0].Key);
Assert.AreEqual("pepe", q[0].Value);
Expand All @@ -89,7 +98,7 @@ public class SolrFacetFieldQueryTests {
[Test]
public void Missing() {
var fq = new SolrFacetFieldQuery("pepe") {Missing = true};
var q = fq.Query.ToList();
var q = Serialize(fq);
Assert.AreEqual(2, q.Count);
Assert.AreEqual("facet.field", q[0].Key);
Assert.AreEqual("pepe", q[0].Value);
Expand All @@ -100,7 +109,7 @@ public class SolrFacetFieldQueryTests {
[Test]
public void EnumCacheDF() {
var fq = new SolrFacetFieldQuery("pepe") {EnumCacheMinDf = 5};
var q = fq.Query.ToList();
var q = Serialize(fq);
Assert.AreEqual(2, q.Count);
Assert.AreEqual("facet.field", q[0].Key);
Assert.AreEqual("pepe", q[0].Value);
Expand Down
32 changes: 23 additions & 9 deletions SolrNet.Tests/SolrOperationsTests.cs
Expand Up @@ -23,7 +23,9 @@
using SolrNet.Commands.Parameters;
using SolrNet.Exceptions;
using SolrNet.Impl;
using SolrNet.Impl.FacetQuerySerializers;
using SolrNet.Impl.FieldSerializers;
using SolrNet.Impl.QuerySerializers;
using SolrNet.Mapping;
using SolrNet.Mapping.Validation;
using SolrNet.Tests.Utils;
Expand Down Expand Up @@ -360,7 +362,7 @@ public class TestDocWithNullable {
.IgnoreArguments()
.Return(new SolrQueryResults<TestDocumentWithUniqueKey>());
}).Verify(() => {
var executer = new SolrQueryExecuter<TestDocumentWithUniqueKey>(parser, connection, null);
var executer = new SolrQueryExecuter<TestDocumentWithUniqueKey>(parser, connection, null, null);
var solr = new SolrBasicServer<TestDocumentWithUniqueKey>(connection, executer, docSerializer, null, null);
var r = solr.Query(new SolrQuery(qstring), new QueryOptions {Start = start, Rows = rows});
});
Expand All @@ -383,7 +385,7 @@ public class TestDocWithNullable {
.IgnoreArguments()
.Return(new SolrQueryResults<TestDocumentWithUniqueKey>());
}).Verify(() => {
var executer = new SolrQueryExecuter<TestDocumentWithUniqueKey>(parser, connection, null);
var executer = new SolrQueryExecuter<TestDocumentWithUniqueKey>(parser, connection, null, null);
var solr = new SolrBasicServer<TestDocumentWithUniqueKey>(connection, executer, docSerializer, null, null);
var r = solr.Query(new SolrQuery(qstring),
new QueryOptions {
Expand Down Expand Up @@ -415,7 +417,7 @@ public class TestDocWithNullable {
.IgnoreArguments()
.Return(new SolrQueryResults<TestDocumentWithUniqueKey>());
}).Verify(() => {
var executer = new SolrQueryExecuter<TestDocumentWithUniqueKey>(parser, connection, null);
var executer = new SolrQueryExecuter<TestDocumentWithUniqueKey>(parser, connection, null, null);
var solr = new SolrBasicServer<TestDocumentWithUniqueKey>(connection, executer, docSerializer, null, null);
var r = solr.Query(new SolrQuery(qstring), new QueryOptions {
Start = start,
Expand All @@ -439,12 +441,15 @@ public class TestDocWithNullable {
var connection = new MockConnection(query);
var parser = mocks.StrictMock<ISolrQueryResultParser<TestDocumentWithUniqueKey>>();
var docSerializer = mocks.StrictMock<ISolrDocumentSerializer<TestDocumentWithUniqueKey>>();
var querySerializer = new DefaultQuerySerializer();
var facetQuerySerializer = new DefaultFacetQuerySerializer(querySerializer, new DefaultFieldSerializer());
With.Mocks(mocks).Expecting(() => {
Expect.On(parser).Call(parser.Parse(null))
Expect.On(parser)
.Call(parser.Parse(null))
.IgnoreArguments()
.Return(new SolrQueryResults<TestDocumentWithUniqueKey>());
}).Verify(() => {
var executer = new SolrQueryExecuter<TestDocumentWithUniqueKey>(parser, connection, null);
var executer = new SolrQueryExecuter<TestDocumentWithUniqueKey>(parser, connection, querySerializer, facetQuerySerializer);
var solr = new SolrBasicServer<TestDocumentWithUniqueKey>(connection, executer, docSerializer, null, null);
var r = solr.Query(new SolrQuery(""), new QueryOptions {
Facet = new FacetParameters {
Expand All @@ -468,12 +473,19 @@ public class TestDocWithNullable {
var connection = new MockConnection(query);
var parser = mocks.StrictMock<ISolrQueryResultParser<TestDocumentWithUniqueKey>>();
var docSerializer = mocks.StrictMock<ISolrDocumentSerializer<TestDocumentWithUniqueKey>>();
var querySerializer = mocks.DynamicMock<ISolrQuerySerializer>();
var facetQuerySerializer = new DefaultFacetQuerySerializer(querySerializer, new DefaultFieldSerializer());
With.Mocks(mocks).Expecting(() => {
Expect.On(parser).Call(parser.Parse(null))
Expect.On(querySerializer)
.Call(querySerializer.Serialize(null))
.IgnoreArguments()
.Return("");
Expect.On(parser)
.Call(parser.Parse(null))
.IgnoreArguments()
.Return(new SolrQueryResults<TestDocumentWithUniqueKey>());
}).Verify(() => {
var executer = new SolrQueryExecuter<TestDocumentWithUniqueKey>(parser, connection, null);
var executer = new SolrQueryExecuter<TestDocumentWithUniqueKey>(parser, connection, querySerializer, facetQuerySerializer);
var solr = new SolrBasicServer<TestDocumentWithUniqueKey>(connection, executer, docSerializer, null, null);
var r = solr.Query(new SolrQuery(""), new QueryOptions {
Facet = new FacetParameters {
Expand Down Expand Up @@ -513,7 +525,9 @@ public class TestDocWithNullable {
}
});
}).Verify(() => {
var queryExecuter = new SolrQueryExecuter<TestDocumentWithUniqueKey>(resultParser, connection, null);
var querySerializer = new DefaultQuerySerializer();
var facetQuerySerializer = new DefaultFacetQuerySerializer(querySerializer, new DefaultFieldSerializer());
var queryExecuter = new SolrQueryExecuter<TestDocumentWithUniqueKey>(resultParser, connection, querySerializer, facetQuerySerializer);
var basicSolr = new SolrBasicServer<TestDocumentWithUniqueKey>(connection, queryExecuter, docSerializer, null, null);
var solr = new SolrServer<TestDocumentWithUniqueKey>(basicSolr, mapper, validationManager);
var r = solr.FacetFieldQuery(new SolrFacetFieldQuery("cat"));
Expand All @@ -537,7 +551,7 @@ public class TestDocWithNullable {
var connection = mocks.StrictMock<ISolrConnection>();
var responseParser = mocks.DynamicMock<ISolrHeaderResponseParser>();
var resultParser = mocks.StrictMock<ISolrQueryResultParser<TestDocWithNullable>>();
var queryExecuter = new SolrQueryExecuter<TestDocWithNullable>(resultParser, connection, null);
var queryExecuter = new SolrQueryExecuter<TestDocWithNullable>(resultParser, connection, null, null);
var mapper = new AttributesMappingManager();
var docSerializer = new SolrDocumentSerializer<TestDocWithNullable>(mapper, new DefaultFieldSerializer());
var validationManager = mocks.StrictMock<IMappingValidator>();
Expand Down

0 comments on commit 5810222

Please sign in to comment.