public void TestCreateToReadyMultiplePotentialOwners() { IdentityId initiatorId = new IdentityId(); IdentityId potentialOwnerOne = new IdentityId(); IdentityId potentialOwnerTwo = new IdentityId(); IdentityId businessAdminId = new IdentityId(); IPrincipal initiator = new ClaimsPrincipal(initiatorId.GetIdentity()); _mapStorage[potentialOwnerOne.Id] = new Account(potentialOwnerOne, "s-1-2-3-4-5", "auth", AccountType.User); _mapStorage[potentialOwnerTwo.Id] = new Account(potentialOwnerTwo, "s-1-2-3-4-5", "auth", AccountType.User); _mapStorage[businessAdminId.Id] = new Account(businessAdminId, "s-55-2-3-4-5", "auth", AccountType.User); ILoggingService loggingService = SetupLoggerMock(new List<TaskHistoryEvent> { new TaskHistoryEvent{ Event = "Create", OldStatus = TaskStatus.None, NewStatus = TaskStatus.Created, OldPriority = Priority.Normal, NewPriority = Priority.Normal, Comment = "", TimeStamp = DateTime.UtcNow, UserId = initiator.Identity.GetMappedId()} }); Thread.CurrentPrincipal = initiator; Task task = new Task(new TaskId(), TaskStatus.Created, string.Empty, string.Empty, Priority.Normal, false, DateTime.UtcNow, initiator.Identity, null, null, null) { LoggingService = loggingService }; Assert.AreEqual(TaskStatus.Created, task.Status); task.PotentialOwners.Add(potentialOwnerOne.GetIdentity()); task.PotentialOwners.Add(potentialOwnerTwo.GetIdentity()); task.BusinessAdministrators.Add(businessAdminId.GetIdentity()); Assert.IsNotNull(task); Assert.AreEqual(TaskStatus.Created, task.Status); IPrincipal businessAdmin = new ClaimsPrincipal(businessAdminId.GetIdentity()); Thread.CurrentPrincipal = businessAdmin; task.Activate(); Assert.AreEqual(TaskStatus.Ready, task.Status); Assert.IsNull(task.ActualOwner); Assert.IsNotNull(task.History); Assert.AreEqual(2, task.History.Count()); TaskHistoryEvent history = task.History.ElementAt(0); Assert.IsNotNull(history); Assert.AreEqual(TaskStatus.None, history.OldStatus); Assert.AreEqual(TaskStatus.Created, history.NewStatus); Assert.AreEqual(initiator.Identity.GetMappedId(), history.UserId); history = task.History.ElementAt(1); Assert.IsNotNull(history); }
public void TestCreateState() { IdentityId initiatorId = new IdentityId(); IPrincipal initiator = new ClaimsPrincipal(initiatorId.GetIdentity()); Task task = new Task(new TaskId(), TaskStatus.Created, string.Empty, string.Empty, Priority.Normal, false, DateTime.UtcNow, initiator.Identity, null, null, null); Thread.CurrentPrincipal = initiator; Assert.IsNotNull(task); Assert.AreEqual(TaskStatus.Created, task.Status); Assert.IsNull(task.ActualOwner); Assert.IsNotNull(task.Initiator); Assert.AreEqual(initiator.Identity, task.Initiator); Assert.AreEqual(Priority.Normal, task.Priority); Assert.AreEqual(TaskStatus.Created, task.Status); }
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); }
public void TestReservedForwardActualOwner() { IdentityId potentialOwner = new IdentityId(); IdentityId actualId = new IdentityId(); _mapStorage[potentialOwner.Id] = new Account(potentialOwner, "s-1-2-3-4-5", "auth", AccountType.User); 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.Forward(potentialOwner.GetIdentity()); Assert.AreEqual(TaskStatus.Ready, task.Status); Assert.IsNotNull(task.ActualOwner); Assert.AreEqual(potentialOwner, task.ActualOwner.GetMappedId()); Assert.IsNotNull(task.History); Assert.AreEqual(1, task.History.Count()); TaskHistoryEvent history = task.History.ElementAt(0); Assert.IsNotNull(history); Assert.AreEqual(TaskStatus.Reserved, history.OldStatus); Assert.AreEqual(TaskStatus.Ready, history.NewStatus); Assert.AreEqual(actualId, history.UserId); Assert.AreEqual(actualId, history.StartOwner); Assert.AreEqual(potentialOwner, history.EndOwner); }
public void TestNominateIndividual() { IdentityId potentialOwner = new IdentityId(); IdentityId businessAdministrator = new IdentityId(); _mapStorage[potentialOwner.Id] = new Account(potentialOwner, "s-1-2-3-4-5", "auth", AccountType.User); ILoggingService loggingService = SetupLoggerMock(new List<TaskHistoryEvent>()); Task task = new Task( new TaskId(), TaskStatus.Created, string.Empty, string.Empty, Priority.Normal, false, DateTime.UtcNow, new IdentityId().GetIdentity(), DateTime.UtcNow, null, null) { LoggingService = loggingService }; IPrincipal actualOwner = new ClaimsPrincipal(businessAdministrator.GetIdentity()); Thread.CurrentPrincipal = actualOwner; task.BusinessAdministrators.Add(businessAdministrator.GetIdentity()); task.Nominate(potentialOwner.GetIdentity()); Assert.AreEqual(TaskStatus.Reserved, task.Status); Assert.IsNotNull(task.ActualOwner); Assert.AreEqual(potentialOwner, task.ActualOwner.GetMappedId()); Assert.IsTrue(task.PotentialOwners.Contains(potentialOwner.GetIdentity())); Assert.IsNotNull(task.History); Assert.AreEqual(1, task.History.Count()); TaskHistoryEvent history = task.History.ElementAt(0); Assert.IsNotNull(history); Assert.AreEqual(TaskStatus.Created, history.OldStatus); Assert.AreEqual(TaskStatus.Reserved, history.NewStatus); Assert.AreEqual(businessAdministrator, history.UserId); Assert.AreEqual(null,history.StartOwner); Assert.AreEqual(potentialOwner, history.EndOwner); }