public void CreatesEquivalentField( [Values] bool collection, [Values] bool key, [Values] bool hidden, [Values] bool filterable, [Values] bool facetable, [Values] bool sortable, [Values(null, "AnalyzerName")] string analyzerName, [Values(null, "SearchAnalyzerName")] string searchAnalyzerName, [Values(null, "IndexAnalyzerName")] string indexAnalyzerName, [Values(null, new[] { "synonynMapName" })] string[] synonymMapNames) { SearchableFieldAttribute sut = new SearchableFieldAttribute(collection) { IsKey = key, IsHidden = hidden, IsFilterable = filterable, IsFacetable = facetable, IsSortable = sortable, }; if (analyzerName != null) { sut.AnalyzerName = analyzerName; } if (searchAnalyzerName != null) { sut.SearchAnalyzerName = searchAnalyzerName; } if (indexAnalyzerName != null) { sut.IndexAnalyzerName = indexAnalyzerName; } if (synonymMapNames != null) { sut.SynonymMapNames = synonymMapNames; } SearchFieldDataType actualType = collection ? SearchFieldDataType.Collection(SearchFieldDataType.String) : SearchFieldDataType.String; Assert.AreEqual(actualType, sut.Type); SearchField field = ((ISearchFieldAttribute)sut).CreateField("test"); Assert.AreEqual("test", field.Name); Assert.AreEqual(actualType, field.Type); Assert.AreEqual(key, field.IsKey); Assert.AreEqual(hidden, field.IsHidden); Assert.AreEqual(filterable, field.IsFilterable); Assert.AreEqual(facetable, field.IsFacetable); Assert.AreEqual(sortable, field.IsSortable); Assert.AreEqual(analyzerName, field.AnalyzerName?.ToString()); Assert.AreEqual(searchAnalyzerName, field.SearchAnalyzerName?.ToString()); Assert.AreEqual(indexAnalyzerName, field.IndexAnalyzerName?.ToString()); Assert.AreEqual(synonymMapNames, field.SynonymMapNames); }
public void CreatesEquivalentField( [Values] bool key, [Values] bool hidden, [Values] bool filterable, [Values] bool facetable, [Values] bool sortable, [Values(null, "AnalyzerName")] string analyzerName, [Values(null, "SearchAnalyzerName")] string searchAnalyzerName, [Values(null, "IndexAnalyzerName")] string indexAnalyzerName, [Values(null, new[] { "synonynMapName" })] string[] synonymMapNames) { SearchableFieldAttribute sut = new SearchableFieldAttribute { IsKey = key, IsHidden = hidden, IsFilterable = filterable, IsFacetable = facetable, IsSortable = sortable, }; if (analyzerName != null) { sut.AnalyzerName = analyzerName; } if (searchAnalyzerName != null) { sut.SearchAnalyzerName = searchAnalyzerName; } if (indexAnalyzerName != null) { sut.IndexAnalyzerName = indexAnalyzerName; } if (synonymMapNames != null) { sut.SynonymMapNames = synonymMapNames; } SearchField field = new SearchField("test", SearchFieldDataType.String); ((ISearchFieldAttribute)sut).SetField(field); Assert.AreEqual("test", field.Name); Assert.AreEqual(SearchFieldDataType.String, field.Type); Assert.AreEqual(key, field.IsKey ?? false); Assert.AreEqual(hidden, field.IsHidden ?? false); Assert.AreEqual(filterable, field.IsFilterable ?? false); Assert.AreEqual(facetable, field.IsFacetable ?? false); Assert.IsTrue(field.IsSearchable); Assert.AreEqual(sortable, field.IsSortable ?? false); Assert.AreEqual(analyzerName, field.AnalyzerName?.ToString()); Assert.AreEqual(searchAnalyzerName, field.SearchAnalyzerName?.ToString()); Assert.AreEqual(indexAnalyzerName, field.IndexAnalyzerName?.ToString()); Assert.AreEqual(synonymMapNames ?? Array.Empty <string>(), field.SynonymMapNames); }
public void IsSearchableNotOverwritten() { SearchField field = new SearchField("test", SearchFieldDataType.String); ISearchFieldAttribute attribute = new SearchableFieldAttribute { AnalyzerName = LexicalAnalyzerName.Values.EnLucene, IsFilterable = true, IsSortable = true, }; attribute.SetField(field); Assert.AreEqual("test", field.Name); Assert.AreEqual(SearchFieldDataType.String, field.Type); Assert.IsFalse(field.IsFacetable); Assert.IsTrue(field.IsFilterable); Assert.IsFalse(field.IsHidden); Assert.IsFalse(field.IsKey); Assert.IsTrue(field.IsSearchable); Assert.IsTrue(field.IsSortable); Assert.AreEqual(LexicalAnalyzerName.EnLucene.ToString(), field.AnalyzerName?.ToString()); Assert.IsNull(field.IndexAnalyzerName); Assert.IsNull(field.SearchAnalyzerName); Assert.IsEmpty(field.SynonymMapNames); // Make sure that if a SimpleFieldAttribute were also specified, it does not overwrite IsSearchable // but does overwrite every other SimpleField property not set otherwise. attribute = new SimpleFieldAttribute { IsKey = true, }; attribute.SetField(field); Assert.AreEqual("test", field.Name); Assert.AreEqual(SearchFieldDataType.String, field.Type); Assert.IsFalse(field.IsFacetable); Assert.IsFalse(field.IsFilterable); Assert.IsFalse(field.IsHidden); Assert.IsTrue(field.IsKey); Assert.IsTrue(field.IsSearchable); Assert.IsFalse(field.IsSortable); Assert.AreEqual(LexicalAnalyzerName.EnLucene.ToString(), field.AnalyzerName?.ToString()); Assert.IsNull(field.IndexAnalyzerName); Assert.IsNull(field.SearchAnalyzerName); Assert.IsEmpty(field.SynonymMapNames); }