public void TestInProgressToFailedActualOwner()
 {
     IdentityId actualId = new IdentityId();
     ILoggingService loggingService = SetupLoggerMock(new List<TaskHistoryEvent>());
     Task task = new Task(
                  new TaskId(), TaskStatus.InProgress, 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.Fail(new Fault());
     Assert.AreEqual(TaskStatus.Failed, task.Status);
     Assert.AreEqual(actualId.GetIdentity(), task.ActualOwner);
     Assert.IsNotNull(task.History);
     Assert.AreEqual(1, task.History.Count());
     TaskHistoryEvent history = task.History.ElementAt(0);
     Assert.IsNotNull(history);
     Assert.AreEqual(TaskStatus.InProgress, history.OldStatus);
     Assert.AreEqual(TaskStatus.Failed, history.NewStatus);
     Assert.AreEqual(actualId, history.UserId);
 }