Я пытаюсь создать тест для ситуации, когда запрос на обновление выдает исключение. Можно ли это сделать с помощью FakeXRMEasy? Я пытался использовать AddFakeMessageExecutor, но на данный момент он не работает:
Мой класс исполнителя поддельных сообщений:
public class UpdateExecutor : IFakeMessageExecutor
{
public bool CanExecute(OrganizationRequest request)
{
return request is UpdateRequest;
}
public OrganizationResponse Execute(
OrganizationRequest request,
XrmFakedContext ctx)
{
throw new Exception();
}
public Type GetResponsibleRequestType()
{
return typeof(UpdateRequest);
}
}
Использование в тесте:
fakeContext.Initialize(new Entity[] { agreement });
fakeContext.AddFakeMessageExecutor<UpdateRequest>(new UpdateExecutor());
fakeContext.ExecuteCodeActivity<AgreementConfirmationWorkflow>(fakeContext.GetDefaultWorkflowContext());
А в рабочем процессе запрос на обновление называется:
var workflowContext = executionContext.GetExtension<IWorkflowContext>();
var serviceFactory = executionContext.GetExtension<IOrganizationServiceFactory>();
IOrganizationService service = serviceFactory.CreateOrganizationService(workflowContext.UserId);
/// some code to retrieve entity and change attributes ///
service.Update(entity);
Я хотел, чтобы это выдало исключение, но в данный момент запрос на обновление завершается успешно. Как я могу сделать эту работу?