public void Can_retrieve_related() { var relatedEntity = new Entity("xts_relatedentity") { Id = Guid.NewGuid() }; var service = Substitute.For <IOrganizationService>(); service.Retrieve(Arg.Is(relatedEntity.LogicalName), Arg.Is(relatedEntity.Id), Arg.Any <ColumnSet>()) .Returns(relatedEntity); var context = Substitute.For <ITransactionContextBase>(); context.Service.Returns(service); var entity = new Entity("xts_entity") { Id = Guid.NewGuid() }; entity["xts_attribute"] = relatedEntity.ToEntityReference();; var wrapper = new TestWrapper(entity, context); Assert.Equal(relatedEntity.ToEntityReference(), wrapper.GetRelated("xts_attribute", new ColumnSet()).ToEntityReference()); var genericWrapper = new XtsEntityWrapper(entity.ToEntity <xts_entity>(), context); Assert.Equal(relatedEntity.ToEntityReference(), genericWrapper.GetRelated("xts_attribute", new ColumnSet()).ToEntityReference()); Assert.Equal(relatedEntity.ToEntityReference(), genericWrapper.GetRelated(e => e.xts_attribute, new ColumnSet <xts_relatedentity>()).ToEntityReference()); Assert.Equal(relatedEntity.ToEntityReference(), genericWrapper.GetRelated <xts_relatedentity, XtsRelatedEntityWrapper>(e => e.xts_attribute, new ColumnSet <xts_relatedentity>()).ToEntityReference()); }
public void Can_retrieve_all_related() { var relatedEntity = new Entity("xts_relatedentity") { Id = Guid.NewGuid() }; var entity = new Entity("xts_entity") { Id = Guid.NewGuid() }; var service = Substitute.For <IOrganizationService>(); service.RetrieveMultiple(Arg.Any <QueryBase>()).Returns(ci => { var query = ci.ArgAt <QueryExpression>(0); var condition = query.Criteria.Conditions[0]; Assert.Equal("xts_relatedentity", query.EntityName); Assert.Equal("xts_relatedid", condition.AttributeName); Assert.Equal(ConditionOperator.Equal, condition.Operator); Assert.Equal(entity.Id, condition.Values[0]); return(new EntityCollection { Entities = { relatedEntity } }); }); var context = Substitute.For <ITransactionContextBase>(); context.Service.Returns(service); var wrapper = new TestWrapper(entity, context); Assert.Equal(relatedEntity.ToEntityReference(), wrapper.GetAllRelated("xts_relatedentity", "xts_relatedid", new ColumnSet()).First().ToEntityReference()); Assert.Equal(relatedEntity.ToEntityReference(), wrapper.GetAllRelated(e => e.xts_relatedid, new ColumnSet <xts_relatedentity>()).First().ToEntityReference()); Assert.Equal(relatedEntity.ToEntityReference(), wrapper.GetAllRelated <xts_relatedentity, XtsRelatedEntityWrapper>(e => e.xts_relatedid, new ColumnSet <xts_relatedentity>()).First().ToEntityReference()); var genericWrapper = new XtsEntityWrapper(entity.ToEntity <xts_entity>(), context); Assert.Equal(relatedEntity.ToEntityReference(), genericWrapper.GetAllRelated("xts_relatedentity", "xts_relatedid", new ColumnSet()).First().ToEntityReference()); Assert.Equal(relatedEntity.ToEntityReference(), genericWrapper.GetAllRelated(e => e.xts_relatedid, new ColumnSet <xts_relatedentity>()).First().ToEntityReference()); Assert.Equal(relatedEntity.ToEntityReference(), genericWrapper.GetAllRelated <xts_relatedentity, XtsRelatedEntityWrapper>(e => e.xts_relatedid, new ColumnSet <xts_relatedentity>()).First().ToEntityReference()); }