/// <summary> /// Provides an override for provisioning and a way to complete the saga instance in case /// the provisioning fails or times out. Works on the assumption that the resource that is /// passed to it has been created manually and exists. /// </summary> /// <param name="message">The message.</param> public void Handle(ForceProvisioningCompletionCommand message) { Data.SiteUrl = message.SiteUrl; Data.ProvisioningRequestStatus = ProvisioningRequestStatus.Provisioned.ToString(); Bus.Publish <ProvisioningStatusChanged>(m => { m.ProjectId = Data.ProjectId; m.SiteUrl = Data.SiteUrl; m.RequestId = Data.RequestId; m.ProvisioningRequestStatusId = (int)ProvisioningRequestStatus.Provisioned; }); GenerateDmp(Data.ProjectId, Data.SiteUrl); Complete(); }
public void Complete_when_force_provisioning_completion_command_is_received() { var completeCommand = new ForceProvisioningCompletionCommand { ProjectId = 1, SiteUrl = _siteUrl }; Test.Saga <ProvisioningSaga>() .ExpectPublish <ProvisioningStatusChanged>(m => m.ProjectId == 1 && m.RequestId == 1 && m.SiteUrl == _siteUrl && m.ProvisioningRequestStatusId == (int)ProvisioningRequestStatus.Provisioned) .ExpectSend <GenerateDmpCommand>(m => m.ProjectId == 1 && m.SiteUrl == _siteUrl) .When(x => { x.Data.ProjectId = 1; x.Data.SiteUrl = null; x.Data.RequestId = 1; x.Handle(completeCommand); }) .AssertSagaCompletionIs(true); }