public void When_can_execute_is_called_with_an_invalid_request_result_is_false() { var executor = new PickFromQueueRequestExecutor(); var anotherRequest = new RetrieveMultipleRequest(); Assert.False(executor.CanExecute(anotherRequest)); }
public void When_a_request_is_for_non_existing_queueitem_an_exception_is_thrown() { var context = new XrmFakedContext(); var service = context.GetOrganizationService(); var user = new Entity { LogicalName = Crm.SystemUser.EntityLogicalName, Id = Guid.NewGuid(), }; context.Initialize(new[] { user }); var executor = new PickFromQueueRequestExecutor(); var req = new PickFromQueueRequest { QueueItemId = Guid.NewGuid(), WorkerId = user.Id, }; Assert.Throws <FaultException <OrganizationServiceFault> >(() => executor.Execute(req, context)); }
public void When_a_request_is_called_worker_is_set() { var context = new XrmFakedContext(); var service = context.GetOrganizationService(); var email = new Entity { LogicalName = Crm.Email.EntityLogicalName, Id = Guid.NewGuid(), }; var queue = new Entity { LogicalName = Crm.Queue.EntityLogicalName, Id = Guid.NewGuid(), }; var user = new Entity { LogicalName = Crm.SystemUser.EntityLogicalName, Id = Guid.NewGuid(), }; var queueItem = new Entity { LogicalName = Crm.QueueItem.EntityLogicalName, Id = Guid.NewGuid(), Attributes = { { "queueid", queue.ToEntityReference() }, { "objectid", email.ToEntityReference() } } }; context.Initialize(new[] { queue, email, user, queueItem }); var executor = new PickFromQueueRequestExecutor(); var req = new PickFromQueueRequest { QueueItemId = queueItem.Id, WorkerId = user.Id, }; var before = DateTime.Now.Ticks; executor.Execute(req, context); var after = DateTime.Now.Ticks; var queueItemUpdated = service.Retrieve(Crm.QueueItem.EntityLogicalName, queueItem.Id, new ColumnSet(true)); Assert.Equal(user.ToEntityReference(), queueItemUpdated.GetAttributeValue <EntityReference>("workerid")); Assert.True(before <= queueItemUpdated.GetAttributeValue <DateTime>("workeridmodifiedon").Ticks); Assert.True(after >= queueItemUpdated.GetAttributeValue <DateTime>("workeridmodifiedon").Ticks); }
public void When_a_request_is_called_with_removal_queueitem_is_deleted() { var context = new XrmFakedContext(); var service = context.GetOrganizationService(); var email = new Entity { LogicalName = Crm.Email.EntityLogicalName, Id = Guid.NewGuid(), }; var queue = new Entity { LogicalName = Crm.Queue.EntityLogicalName, Id = Guid.NewGuid(), }; var user = new Entity { LogicalName = Crm.SystemUser.EntityLogicalName, Id = Guid.NewGuid(), }; var queueItem = new Entity { LogicalName = Crm.QueueItem.EntityLogicalName, Id = Guid.NewGuid(), Attributes = { { "queueid", queue.ToEntityReference() }, { "objectid", email.ToEntityReference() } } }; context.Initialize(new[] { queue, email, user, queueItem }); var executor = new PickFromQueueRequestExecutor(); var req = new PickFromQueueRequest { QueueItemId = queueItem.Id, WorkerId = user.Id, RemoveQueueItem = true }; executor.Execute(req, context); Assert.Empty(context.Data[Crm.QueueItem.EntityLogicalName]); }
public void When_a_request_is_for_non_existing_woker_an_exception_is_thrown() { var context = new XrmFakedContext(); var service = context.GetOrganizationService(); var queue = new Entity { LogicalName = Crm.Queue.EntityLogicalName, Id = Guid.NewGuid(), }; var queueItem = new Entity { LogicalName = Crm.QueueItem.EntityLogicalName, Id = Guid.NewGuid(), Attributes = { { "queueid", queue.ToEntityReference() }, { "objectid", Guid.NewGuid() } } }; context.Initialize(new[] { queue, queueItem }); var executor = new PickFromQueueRequestExecutor(); var req = new PickFromQueueRequest { QueueItemId = queueItem.Id, WorkerId = Guid.NewGuid(), }; Assert.Throws <FaultException <OrganizationServiceFault> >(() => executor.Execute(req, context)); }