public void Has1ToNRelatedEntityRecords_ReturnsDataCorrectly() { var testEntity1Id = Guid.NewGuid(); var testEntity1String = "dshajdsghjk"; var testEntity2FirstId = Guid.NewGuid(); var testEntity2SecondId = Guid.NewGuid(); var testEntity2FirstInt = 3; var testEntity2SecondInt = 5; var flatData = new List <Entity>(); var first = new Entity(EntityNameAttribute.GetFromType <RetrieveMultipleTestEntity1>(), testEntity1Id); first["id"] = testEntity1Id; first["createdon"] = DateTime.Now; first["modifiedon"] = DateTime.Now; first["teststring"] = testEntity1String; first["retrievemultipletestentity2.id"] = new AliasedValue("retrievemultipletestentity2", "id", testEntity2FirstId); first["retrievemultipletestentity2.testint"] = new AliasedValue("retrievemultipletestentity2", "testint", testEntity2FirstInt); var second = new Entity(EntityNameAttribute.GetFromType <RetrieveMultipleTestEntity1>(), testEntity1Id); second["id"] = testEntity1Id; second["createdon"] = DateTime.Now; second["modifiedon"] = DateTime.Now; second["teststring"] = testEntity1String; second["retrievemultipletestentity2.id"] = new AliasedValue("retrievemultipletestentity2", "id", testEntity2SecondId); second["retrievemultipletestentity2.testint"] = new AliasedValue("retrievemultipletestentity2", "testint", testEntity2SecondInt); flatData.Add(first); flatData.Add(second); var service = A.Fake <IOrganizationService>(); A.CallTo(() => service.RetrieveMultiple(A <QueryBase> ._)) .Returns(new EntityCollection(flatData)); var crmPlusPlusEntityClient = new CrmPlusPlusEntityClient(service); var result = crmPlusPlusEntityClient.RetrieveMultiple(Query.ForEntity <RetrieveMultipleTestEntity1>()); Assert.Equal(1, result.Count()); Assert.Equal(2, result.Single().RelatedEntities.Count()); var firstEntity = result.Single(); Assert.Equal(testEntity1String, firstEntity.TestString); Assert.Contains(testEntity2FirstInt, firstEntity.RelatedEntities.Select(e => e.TestInt)); Assert.Contains(testEntity2SecondInt, firstEntity.RelatedEntities.Select(e => e.TestInt)); }
public void HasNTo1RelatedEntityRecords_ReturnsDataCorrectly() { var testEntity2Id = Guid.NewGuid(); var testEntity2Int = 2; var testEntity1Id = Guid.NewGuid(); var testEntity1String = "dshjakl"; var flatData = new List <Entity>(); var entity = new Entity(EntityNameAttribute.GetFromType <RetrieveMultipleTestEntity2>(), testEntity2Id); entity["id"] = testEntity2Id; entity["createdon"] = DateTime.Now; entity["modifiedon"] = DateTime.Now; entity["testint"] = testEntity2Int; entity["retrievemultipletestentity1.id"] = new AliasedValue("retrievemultipletestentity2", "id", testEntity1Id); entity["retrievemultipletestentity1.teststring"] = new AliasedValue("retrievemultipletestentity2", "testint", testEntity1String); flatData.Add(entity); var service = A.Fake <IOrganizationService>(); A.CallTo(() => service.RetrieveMultiple(A <QueryBase> ._)) .Returns(new EntityCollection(flatData)); var crmPlusPlusEntityClient = new CrmPlusPlusEntityClient(service); var result = crmPlusPlusEntityClient.RetrieveMultiple(Query.ForEntity <RetrieveMultipleTestEntity2>()); Assert.Equal(1, result.Count()); var singleResult = result.Single(); Assert.Equal(testEntity2Int, singleResult.TestInt); Assert.NotNull(singleResult.RetrieveMultipleTestEntity1Lookup); Assert.Equal(testEntity1Id, singleResult.RetrieveMultipleTestEntity1Lookup.Id); Assert.NotNull(singleResult.RetrieveMultipleTestEntity1Lookup.Entity); Assert.Equal(testEntity1Id, singleResult.RetrieveMultipleTestEntity1Lookup.Entity.Id); Assert.Equal(testEntity1String, singleResult.RetrieveMultipleTestEntity1Lookup.Entity.TestString); }