public void TestSuspendedToReversedActualOwner() { IdentityId actualId = new IdentityId(); ILoggingService loggingService = SetupLoggerMock(new List<TaskHistoryEvent>()); Task task = new Task( new TaskId(), TaskStatus.Reserved, string.Empty, string.Empty, Priority.Normal, false, DateTime.UtcNow, new IdentityId().GetIdentity(), DateTime.UtcNow, null, actualId.GetIdentity()) { LoggingService = loggingService }; IPrincipal actualOwner = new ClaimsPrincipal(actualId.GetIdentity()); Thread.CurrentPrincipal = actualOwner; task.Suspend(); Assert.AreEqual(TaskStatus.Suspended, task.Status); Assert.AreEqual(actualId.GetIdentity(), task.ActualOwner); task.Resume(); Assert.AreEqual(TaskStatus.Reserved, task.Status); Assert.AreEqual(actualId.GetIdentity(), task.ActualOwner); Assert.IsNotNull(task.History); Assert.AreEqual(2, task.History.Count()); TaskHistoryEvent history = task.History.ElementAt(0); Assert.IsNotNull(history); Assert.AreEqual(TaskStatus.Reserved, history.OldStatus); Assert.AreEqual(TaskStatus.Suspended, history.NewStatus); Assert.AreEqual(actualId, history.UserId); history = task.History.ElementAt(1); Assert.IsNotNull(history); Assert.AreEqual(TaskStatus.Suspended, history.OldStatus); Assert.AreEqual(TaskStatus.Reserved, history.NewStatus); Assert.AreEqual(actualId, history.UserId); }