public MicroServicesDataEventAction GetEventAction(IDataEvent eventInfo) { if (eventInfo == null) { throw new ArgumentNullException("eventInfo"); } var itemAction = eventInfo.Action; var workFlowStatus = sitefinityDataEventProxy.GetPropertyValue <string>(eventInfo, Constants.ApprovalWorkflowState); var itemStatus = sitefinityDataEventProxy.GetPropertyValue <string>(eventInfo, Constants.ItemStatus); var recycleBinAction = sitefinityDataEventProxy.GetPropertyValue <RecycleBinAction>(eventInfo, Constants.RecycleBinAction); if (itemAction == Constants.ItemActionDeleted || (workFlowStatus == Constants.WorkflowStatusUnpublished && recycleBinAction != RecycleBinAction.RestoreFromRecycleBin)) { //Unpublished or deleted Check for this first return(MicroServicesDataEventAction.UnpublishedOrDeleted); } else if (workFlowStatus == Constants.WorkflowStatusPublished && itemStatus == Constants.ItemStatusLive) { //Published return(MicroServicesDataEventAction.PublishedOrUpdated); } else if (workFlowStatus == Constants.WorkflowStatusDraft && itemStatus == Constants.ItemStatusMaster) { return(MicroServicesDataEventAction.Draft); } return(MicroServicesDataEventAction.Ignored); }
public void GetEventActionTest(MicroServicesDataEventAction expectedAction, string eventAction, string workflowState, RecycleBinAction recycleBinAction) { //Setup A.CallTo(() => fakeDataEvent.Action).Returns(eventAction); A.CallTo(() => fakeSitefinityDataEventProxy.GetPropertyValue <string>(fakeDataEvent, Constants.ApprovalWorkflowState)).Returns(workflowState); A.CallTo(() => fakeSitefinityDataEventProxy.GetPropertyValue <RecycleBinAction>(fakeDataEvent, Constants.RecycleBinAction)).Returns(recycleBinAction); A.CallTo(() => fakeSitefinityDataEventProxy.GetPropertyValue <string>(fakeDataEvent, Constants.ItemStatus)).Returns(Constants.ItemStatusLive); //Act var dataEventHandler = new DataEventActions(fakeSitefinityDataEventProxy); var result = dataEventHandler.GetEventAction(fakeDataEvent); //Asserts result.Should().Be(expectedAction); }