public void BuildSearch_WithSingleTagElement_BuildsExpectedSpec() { // Arrange var builder = MakeSearch <Employee> .WithTags(emp => { string tag = "average"; if (emp.Age < 18) { tag = "young"; } else if (emp.Age >= 60) { tag = "old"; } return(new List <string> { tag }); }); var employee = new Employee { Name = "Magnus Carlsen", Age = 28 }; // Act var spec = builder.BuildSearch(employee); // Assert Assert.NotNull(spec); Assert.Single(spec.Elements); Assert.True(spec.Elements.First() is TagSearchSpecElement); }
private static SearchBuilder <Employee> GetSearchBuilder() { return(MakeSearch <Employee> .WithComponentTypeAndFields( emp => "Country", emp => { var ageGroup = "old"; if (emp.Age <= 12) { ageGroup = "child"; } else if (emp.Age <= 18) { ageGroup = "teenager"; } else if (emp.Age <= 60) { ageGroup = "adult"; } return new Dictionary <string, object> { ["age_group"] = ageGroup }; })); }
public void BuildSearch_WithComponentType_BuildsExpectedSpec() { // Arrange var builder = MakeSearch <Employee> .WithComponentType(e => "Employee"); var employee = new Employee { Name = "Magnus Carlsen", Age = 28 }; // Act var spec = builder.BuildSearch(employee); // Assert Assert.NotNull(spec); Assert.Single(spec.Elements); Assert.True(spec.Elements.First() is ComponentTypeAndFieldSearchSpecElement); }
public void BuildSearch_WithFieldGetters_BuildsExpectedSpec() { // Arrange var builder = MakeSearch <Employee> .WithFields(e => new Dictionary <string, object> { ["profession"] = "chess", ["nationality"] = "NOR" }); var employee = new Employee { Name = "Magnus Carlsen", Age = 28 }; // Act var spec = builder.BuildSearch(employee); // Assert Assert.NotNull(spec); Assert.Single(spec.Elements); Assert.True(spec.Elements.First() is ComponentTypeAndFieldSearchSpecElement); }