public void SolrFieldTypeParsing() { var schemaParser = new SolrSchemaParser(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.solrSchemaBasic.xml"); SolrSchema schemaDoc = schemaParser.Parse(xml); Assert.AreEqual(2, schemaDoc.SolrFieldTypes.Count); Assert.AreEqual("string", schemaDoc.SolrFieldTypes[0].Name); Assert.AreEqual("solr.StrField", schemaDoc.SolrFieldTypes[0].Type); }
public void SolrCopyFieldParsing() { var schemaParser = new SolrSchemaParser(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.solrSchemaBasic.xml"); SolrSchema schemaDoc = schemaParser.Parse(xml); Assert.AreEqual(1, schemaDoc.SolrCopyFields.Count); Assert.AreEqual("name", schemaDoc.SolrCopyFields[0].Source); Assert.AreEqual("nameSort", schemaDoc.SolrCopyFields[0].Destination); }
public void PropertyWithoutSetter() { var parser = GetDocumentParser <TestDocWithoutSetter>(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.response.xml"); var docNode = xml.XPathSelectElement("response/result/doc"); var doc = parser.ParseDocument(docNode); Assert.IsNotNull(doc); Assert.AreEqual(0, doc.Id); }
private static SolrQueryResults <T> ParseFromResource <T>(string xmlResource) { var docParser = GetDocumentParser <T>(); var parser = new ResultsResponseParser <T>(docParser); var r = new SolrQueryResults <T>(); var xml = EmbeddedResource.GetEmbeddedXml(typeof(SolrQueryResultsParserTests), xmlResource); parser.Parse(xml, r); return(r); }
public void Parse() { var mapper = new AttributesMappingManager(); var parser = new CollapseExpandResponseParser <Doc>(new SolrDocumentResponseParser <Doc>(mapper, new DefaultDocumentVisitor(mapper, new DefaultFieldParser()), new SolrDocumentActivator <Doc>())); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.collapseWithoutExpandResponse.xml"); var results = new SolrQueryResults <Doc>(); parser.Parse(xml, results); Assert.IsNull(results.CollapseExpand); }
public void ParseDocument() { var parser = GetDocumentParser <TestDocument>(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.response.xml"); var docNode = xml.XPathSelectElement("response/result/doc"); var doc = parser.ParseDocument(docNode); Assert.NotNull(doc); Assert.Equal(123456, doc.Id); }
public void ReplicationStatusError() { var parser = new ReplicationStatusResponseParser <string>(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.responseReplicationStatusError.xml"); var results = parser.Parse(xml); Assert.IsNotNull(results.responseHeader); Assert.AreEqual("ERROR", results.status); Assert.IsNotNull(results.message); Assert.AreEqual("No slave configured or no 'masterUrl' Specified", results.message); }
public void ParseSpellChecking() { var parser = new SpellCheckResponseParser <Product>(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.responseWithSpellChecking.xml"); var docNode = xml.XPathSelectElement("response/lst[@name='spellcheck']"); var spellChecking = parser.ParseSpellChecking(docNode); Assert.IsNotNull(spellChecking); Assert.AreEqual("dell ultrasharp", spellChecking.Collation); Assert.AreEqual(2, spellChecking.Count); }
public void PropertyWithoutSetter() { var mapper = new AttributesMappingManager(); var parser = new SolrDocumentResponseParser <TestDocWithoutSetter>(mapper, new DefaultDocumentVisitor(mapper, new DefaultFieldParser()), new SolrDocumentActivator <TestDocWithoutSetter>()); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.response.xml"); var docNode = xml.XPathSelectElement("response/result/doc"); var doc = parser.ParseDocument(docNode, mapper.GetFields(typeof(TestDocument))); Assert.IsNotNull(doc); Assert.AreEqual(0, doc.Id); }
public void ParseResponseWithLocation() { var mapper = new AttributesMappingManager(); var parser = new DefaultResponseParser <Doc>(new SolrDocumentResponseParser <Doc>(mapper, new DefaultDocumentVisitor(mapper, new DefaultFieldParser()), new SolrDocumentActivator <Doc>())); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.response.xml"); var results = new SolrQueryResults <Doc>(); parser.Parse(xml, results); Assert.AreEqual(1, results.Count); Assert.AreEqual(new Location(51.5171, -0.1062), results[0].Loc); }
public void Parse_If_Both_Result_And_Groups_Are_Present() { var mapper = new AttributesMappingManager(); var parser = new DefaultResponseParser <TestDoc>(new SolrDocumentResponseParser <TestDoc>(mapper, new DefaultDocumentVisitor(mapper, new DefaultFieldParser()), new SolrDocumentActivator <TestDoc>())); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.responseWithResultAndGroup.xml"); var results = new SolrQueryResults <TestDoc>(); parser.Parse(xml, results); Assert.AreEqual(1, results.Count); Assert.AreEqual(1, results.Grouping["titleId"].Ngroups); }
public void SetPropertyNullableDouble() { var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.responseWithArrays.xml"); var fieldNode = xml.XPathSelectElement("response/result/doc/float[@name='price']"); var mapper = new AttributesMappingManager(); var visitor = new DefaultDocumentVisitor(mapper, new DefaultFieldParser()); var doc = new TestDocumentWithNullableDouble(); visitor.Visit(doc, "price", fieldNode); Assert.AreEqual(92d, doc.Price); }
public void ParseSpellChecking(string fileTest) { var parser = new SpellCheckResponseParser <Product>(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), fileTest); var docNode = xml.XPathSelectElement("response/lst[@name='spellcheck']"); var spellChecking = parser.ParseSpellChecking(docNode); Assert.IsNotNull(spellChecking); Assert.That(spellChecking.Collations, Is.TypeOf <List <string> >()); Assert.AreEqual("dell ultrasharp", spellChecking.Collations.First()); Assert.AreEqual(2, spellChecking.Count); }
public void EmptyEnumThrows() { var mapper = new MappingManager(); mapper.Add(typeof(TestDocWithEnum).GetProperty("En"), "basicview"); var docParser = GetDocumentParser <TestDocWithEnum>(mapper); var parser = new ResultsResponseParser <TestDocWithEnum>(docParser); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.response.xml"); var results = new SolrQueryResults <TestDocWithEnum>(); parser.Parse(xml, results); }
public void ParseResultsWithGroups() { var mapper = new AttributesMappingManager(); var parser = new GroupingResponseParser <Product>(new SolrDocumentResponseParser <Product>(mapper, new DefaultDocumentVisitor(mapper, new DefaultFieldParser()), new SolrDocumentActivator <Product>())); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.responseWithGroupingOnInstock.xml"); var results = new SolrQueryResults <Product>(); parser.Parse(xml, results); Assert.AreEqual(1, results.Grouping.Count); Assert.AreEqual(2, results.Grouping["inStock"].Groups.Count()); Assert.AreEqual(13, results.Grouping["inStock"].Groups.First().NumFound); }
public void ParseSpellCheckingCollateTrueInCollations() { //Collations node now separates from collation nodes from suggestions var parser = new SpellCheckResponseParser <Product>(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.responseWithSpellCheckingCollationInCollations.xml"); var docNode = xml.XPathSelectElement("response/lst[@name='spellcheck']"); var spellChecking = parser.ParseSpellChecking(docNode); Assert.NotNull(spellChecking); Assert.Equal("dell ultrasharp", spellChecking.Collations.First().CollationQuery); Assert.Equal(2, spellChecking.Count); Assert.Equal(1, spellChecking.Collations.Count); }
public void ParseResponseWithSimpleDebugExplanation() { var parser = new DebugResponseParser <object>(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.responseWithSimpleDebugDetails.xml"); var results = new SolrQueryResults <object>(); parser.Parse(xml, results); Assert.Equal(0, results.Count); Assert.True(results.Debug is DebugResults.PlainDebugResults); Assert.NotNull(results.Debug.Explanation); Assert.Equal(2, results.Debug.Explanation.Count); }
public void ParseResponseHeader() { var parser = new HeaderResponseParser <TestDocument>(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.response.xml"); var docNode = xml.XPathSelectElement("response/lst[@name='responseHeader']"); var header = parser.ParseHeader(docNode); Assert.AreEqual(1, header.Status); Assert.AreEqual(15, header.QTime); Assert.AreEqual(2, header.Params.Count); Assert.AreEqual("id:123456", header.Params["q"]); Assert.AreEqual("2.2", header.Params["version"]); }
public void Parse() { var mapper = new AttributesMappingManager(); var fieldParser = new DefaultFieldParser(); var docVisitor = new DefaultDocumentVisitor(mapper, fieldParser); var docParser = new SolrDocumentResponseParser <Product>(mapper, docVisitor, new SolrDocumentActivator <Product>()); var p = new MoreLikeThisHandlerMatchResponseParser <Product>(docParser); var mltResults = new SolrMoreLikeThisHandlerResults <Product>(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.responseWithMLTHandlerMatch.xml"); p.Parse(xml, mltResults); Assert.IsNotNull(mltResults.Match); }
public void ParseSpellCheckingCollateTrueInSuggestions() { // Multiple collation nodes are included in suggestions in Solr 4.x, included for backward compatibility var parser = new SpellCheckResponseParser <Product>(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.responseWithSpellCheckingCollationInSuggestions.xml"); var docNode = xml.XPathSelectElement("response/lst[@name='spellcheck']"); var spellChecking = parser.ParseSpellChecking(docNode); Assert.NotNull(spellChecking); Assert.Equal("audit", spellChecking.Collation); Assert.Equal(2, spellChecking.Count); Assert.Equal(2, spellChecking.Collations.Count); }
public void ParseDocumentWithMappingManager() { var mapper = new MappingManager(); mapper.Add(typeof(TestDocumentWithoutAttributes).GetProperty("Id"), "id"); var parser = GetDocumentParser <TestDocumentWithoutAttributes>(mapper); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.response.xml"); var docNode = xml.XPathSelectElement("response/result/doc"); var doc = parser.ParseDocument(docNode).ToList(); Assert.IsNotNull(doc); Assert.AreEqual(123456, doc[0].Id); }
public void SolrFieldParsing() { var schemaParser = new SolrSchemaParser(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.solrSchemaBasic.xml"); SolrSchema schemaDoc = schemaParser.Parse(xml); Assert.AreEqual(4, schemaDoc.SolrFields.Count); Assert.AreEqual("id", schemaDoc.SolrFields[0].Name); Assert.IsTrue(schemaDoc.SolrFields[0].IsRequired); Assert.IsFalse(schemaDoc.SolrFields[2].IsRequired); Assert.IsTrue(schemaDoc.SolrFields[3].IsMultiValued); Assert.IsFalse(schemaDoc.SolrFields[0].IsMultiValued); Assert.AreEqual("string", schemaDoc.SolrFields[0].Type.Name); }
public void ParseTermVector2() { var parser = new TermVectorResultsParser <Product>(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.responseWithTermVector2.xml"); var docNode = xml.XPathSelectElement("response/lst[@name='termVectors']"); var docs = parser.ParseDocuments(docNode).ToList(); Assert.IsNotNull(docs); Assert.AreEqual(1, docs.Count); Assert.AreEqual("20", docs[0].UniqueKey); var vectors = docs[0].TermVector.ToList(); Assert.AreEqual(15, vectors.Count); }
public void ParseClustering() { var parser = new ClusterResponseParser <Product>(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.responseWithClustering.xml"); var docNode = xml.XPathSelectElement("response/arr[@name='clusters']"); var clustering = parser.ParseClusterNode(docNode); Assert.IsNotNull(clustering); Assert.AreEqual(89, clustering.Clusters.Count()); Assert.AreEqual("International", clustering.Clusters.First().Label); Assert.AreEqual(33.729704170097, clustering.Clusters.First().Score); Assert.AreEqual(8, clustering.Clusters.First().Documents.Count()); Assert.AreEqual("19622040", clustering.Clusters.First().Documents.First()); }
public void ParseDebugResponse() { var parser = new DebugResponseParser <object>(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.responseWithSimpleDebugDetails.xml"); var results = new SolrQueryResults <object>(); parser.Parse(xml, results); Assert.Equal(0, results.Count); Assert.True(results.Debug is DebugResults.PlainDebugResults); Assert.NotNull(results.Debug.Timing); Assert.Equal(15, results.Debug.Timing.TotalTime); Assert.Equal(7, results.Debug.Timing.Prepare.Count); Assert.Equal(7, results.Debug.Timing.Process.Count); }
public void StringMappedToStringShouldNotReturnError() { var mappingTypesCompatibleRule = new MappingTypesAreCompatibleWithSolrTypesRule(new[] { new StringSolrFieldTypeChecker() }); var mgr = new MappingManager(); var schemaManager = new MappingValidator(mgr, new[] { mappingTypesCompatibleRule }); var schemaXmlDocument = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.solrSchemaMappingTypes.xml"); var solrSchemaParser = new SolrSchemaParser(); var schema = solrSchemaParser.Parse(schemaXmlDocument); var validationResults = schemaManager.EnumerateValidationResults(typeof(SchemaMappingTestDocument), schema).ToList(); Assert.Equal(0, validationResults.Count); }
public void SetPropertyWithArrayOfStrings() { var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.responseWithArrays.xml"); var fieldNode = xml.XPathSelectElement("response/result/doc/arr[@name='cat']"); var mapper = new AttributesMappingManager(); var visitor = new DefaultDocumentVisitor(mapper, new DefaultFieldParser()); var doc = new TestDocumentWithArrays(); visitor.Visit(doc, "cat", fieldNode); Assert.AreEqual(2, doc.Cat.Count); var cats = new List <string>(doc.Cat); Assert.AreEqual("electronics", cats[0]); Assert.AreEqual("hard drive", cats[1]); }
public void SetPropertyWithArrayOfIntsToIntArray() { var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.responseWithArrays.xml"); var fieldNode = xml.XPathSelectElement("response/result/doc/arr[@name='numbers']"); var mapper = new AttributesMappingManager(); var visitor = new DefaultDocumentVisitor(mapper, new DefaultFieldParser()); var doc = new TestDocumentWithArrays2(); visitor.Visit(doc, "numbers", fieldNode); Assert.AreEqual(2, doc.Numbers.Length); var numbers = new List <int>(doc.Numbers); Assert.AreEqual(1, numbers[0]); Assert.AreEqual(2, numbers[1]); }
public void ParseResultsWithFacetPivot() { var parser = new FacetsResponseParser <Product>(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.responseWithFacetPivoting.xml"); var r = new SolrQueryResults <Product>(); parser.Parse(xml, r); Assert.IsNotNull(r.FacetPivots); //Console.WriteLine(r.FacetPivots.Count); Assert.IsTrue(r.FacetPivots.ContainsKey("inStock,manu")); Assert.AreEqual(2, r.FacetPivots["inStock,manu"].Count); Assert.AreEqual("inStock", r.FacetPivots["inStock,manu"][0].Field); Assert.AreEqual(10, r.FacetPivots["inStock,manu"][0].ChildPivots.Count); }
public void Parse2() { var parser = new CollapseResponseParser <TestDoc>(); var xml = EmbeddedResource.GetEmbeddedXml(GetType(), "Resources.collapseResponse2.xml"); var results = new SolrQueryResults <TestDoc>(); parser.Parse(xml, results); Assert.IsNotNull(results.Collapsing); Assert.AreEqual("manu_exact", results.Collapsing.Field); Assert.AreEqual(3, results.Collapsing.CollapsedDocuments.Count); var firstCollapse = results.Collapsing.CollapsedDocuments.ElementAt(0); Assert.AreEqual("F8V7067-APL-KIT", firstCollapse.Id); Assert.AreEqual(1, firstCollapse.CollapseCount); Assert.AreEqual("Belkin", firstCollapse.FieldValue); }