public void TestNestedFiltersWithEarlyBoundEntities() { XrmFakedContext context = new XrmFakedContext(); IOrganizationService service = context.GetOrganizationService(); Crm.Account account = new Crm.Account() { Id = Guid.NewGuid() }; account.Name = "test"; Crm.Contact contact = new Crm.Contact() { Id = Guid.NewGuid() }; contact["accountid"] = account.ToEntityReference(); contact.BirthDate = null; contact.TerritoryCode = null; context.Initialize(new List <Entity> { account, contact }); var query = new QueryExpression("account"); query.ColumnSet = new ColumnSet("name"); query.Criteria.AddCondition(new ConditionExpression("name", ConditionOperator.Like, "test")); var linkEntity = query.AddLink("contact", "accountid", "accountid", JoinOperator.Inner); linkEntity.LinkCriteria.AddFilter(new FilterExpression(LogicalOperator.Or) { Filters = { new FilterExpression(LogicalOperator.And) { Conditions = { new ConditionExpression("birthdate", ConditionOperator.Null), new ConditionExpression("territorycode", ConditionOperator.Null) } }, new FilterExpression(LogicalOperator.And) { Conditions = { new ConditionExpression("birthdate", ConditionOperator.NotNull), new ConditionExpression("territorycode", ConditionOperator.NotNull) } } } }); var results = service.RetrieveMultiple(query).Entities.Cast <Crm.Account>().ToList(); Assert.Single(results); }
public void TheCorrectResultIsReturnedWhenUsingConditionOperatorInWithGuid() { var context = new XrmFakedContext(); var contact = new Crm.Contact() { Id = Guid.NewGuid() }; context.Initialize(contact); var Ids = new string[] { Guid.NewGuid().ToString(), contact.Id.ToString() }; var query = new QueryExpression("contact"); query.Criteria.AddCondition("contactid", ConditionOperator.In, Ids); var result = context.GetOrganizationService().RetrieveMultiple(query).Entities; Assert.True(result.Any()); Assert.Equal(contact.Id, result[0].Id); }