예제 #1
0
        public void AssociateManyToManyEntity()
        {
            ManyToManyDetails details = new ManyToManyDetails
            {
                Entity1IntersectAttribute = "contactid",
                Entity2IntersectAttribute = "accountid",
                IsManyToMany = true,
                SchemaName   = "accountcontact"
            };

            MockEntityMetadataCache.Setup(a => a.GetManyToManyEntityDetails(It.IsAny <string>()))
            .Returns(details);

            testOrgService.ExecutionResponse = new AssociateResponse();

            systemUnderTest = new EntityRepositorySingle(MockOrganizationService.Object, MockRetryExecutor.Object, MockEntityMetadataCache.Object);

            var response = new UpdateResponse();

            MockOrganizationService.Setup(a => a.Execute(It.IsAny <OrganizationRequest>()))
            .Returns(response);

            FluentActions.Invoking(() => systemUnderTest.AssociateManyToManyEntity(entities))
            .Should()
            .NotThrow();

            MockOrganizationService.VerifyAll();
        }
예제 #2
0
 /// <summary>
 /// Associates Entities using AssociateRequest and ExecuteMultiple.
 /// </summary>
 /// <param name="entities">entities.</param>
 public void AssociateManyToManyEntity(List <EntityWrapper> entities)
 {
     ExecuteMultipleWithRetry(entities, wrapper =>
     {
         ManyToManyDetails details = metadataCache.GetManyToManyEntityDetails(wrapper.LogicalName);
         return(new AssociateRequest
         {
             Target = new EntityReference(details.Entity1LogicalName, wrapper.OriginalEntity.GetAttributeValue <Guid>(details.Entity1IntersectAttribute)),
             Relationship = new Relationship(details.SchemaName),
             RelatedEntities = new EntityReferenceCollection()
             {
                 new EntityReference(
                     details.Entity2LogicalName,
                     wrapper.OriginalEntity.GetAttributeValue <Guid>(details.Entity2IntersectAttribute))
             }
         });
     });
 }
        public void AssociateManyToManyEntity()
        {
            testOrgService.ExecutionResponse = new RetrieveEntityResponse();

            MockRetryExecutor.Setup(a => a.Execute(It.IsAny <Func <ExecuteMultipleResponse> >()))
            .Returns(requestResult);
            ManyToManyDetails details = new ManyToManyDetails
            {
                Entity1IntersectAttribute = "contactid",
                Entity2IntersectAttribute = "accountid",
                IsManyToMany = true,
                SchemaName   = "accountcontact"
            };

            MockEntityMetadataCache.Setup(a => a.GetManyToManyEntityDetails(It.IsAny <string>()))
            .Returns(details);

            FluentActions.Invoking(() => systemUnderTest.AssociateManyToManyEntity(entities))
            .Should()
            .NotThrow();

            MockRetryExecutor.VerifyAll();
            MockEntityMetadataCache.VerifyAll();
        }