void AddSearchElement(VisualElement root) { m_SearchElement = AddSearchElement <SystemForSearch>(root, UssClasses.DotsEditorCommon.SearchFieldContainer); m_SearchElement.RegisterSearchQueryHandler <SystemForSearch>(query => { var parseResult = SearchQueryParser.ParseSearchQuery(query); m_SystemTreeView.SetFilter(query, parseResult); }); m_SearchElement.AddSearchFilterPopupItem(Constants.SystemSchedule.k_ComponentToken.Substring(0, 1), k_FilterComponentType, k_FilterComponentTypeTooltip); m_SearchElement.AddSearchFilterPopupItem(Constants.SystemSchedule.k_SystemDependencyToken.Substring(0, 2), k_FilterSystemDependencies, k_FilterSystemDependenciesTooltip); m_SearchElement.AddSearchDataProperty(new PropertyPath(nameof(SystemForSearch.SystemName))); m_SearchElement.AddSearchFilterProperty(Constants.SystemSchedule.k_ComponentToken.Substring(0, 1), new PropertyPath(nameof(SystemForSearch.ComponentNamesInQuery))); m_SearchElement.AddSearchFilterProperty(Constants.SystemSchedule.k_SystemDependencyToken.Substring(0, 2), new PropertyPath(nameof(SystemForSearch.SystemDependency))); m_SearchElement.EnableAutoComplete(ComponentTypeAutoComplete.Instance); }
public void Search_WithSearchFilterProperties_ReturnsFilteredResults(string searchString, string searchFilterProperties, int expectedCount) { var originalData = Generate(100); var filteredData = default(TestData[]); foreach (var searchFilter in searchFilterProperties.Split(' ')) { var tokenAndPath = searchFilter.Split(':'); var token = tokenAndPath[0]; var path = tokenAndPath[1]; m_SearchElement.AddSearchFilterProperty(token, new PropertyPath(path)); } m_SearchElement.RegisterSearchQueryHandler <TestData>(search => { filteredData = search.Apply(originalData).ToArray(); }); m_SearchElement.value = searchString; Assert.That(filteredData.Length, Is.EqualTo(expectedCount)); }