public void TestReadyToReserved() { IdentityId initiatorId = new IdentityId(); IdentityId potentialOwner = new IdentityId(); IdentityId businessAdminId = new IdentityId(); IPrincipal initiator = new ClaimsPrincipal(initiatorId.GetIdentity()); _mapStorage[potentialOwner.Id] = new Account(potentialOwner, "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 = initiatorId } }); 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 }; task.PotentialOwners.Add(potentialOwner.GetIdentity()); task.PotentialOwners.Add(new IdentityId().GetIdentity()); task.BusinessAdministrators.Add(businessAdminId.GetIdentity()); IPrincipal businessAdmin = new ClaimsPrincipal(businessAdminId.GetIdentity()); Thread.CurrentPrincipal = businessAdmin; task.Activate(); Assert.AreEqual(TaskStatus.Ready, task.Status); Assert.IsNull(task.ActualOwner); IPrincipal owner = new ClaimsPrincipal(potentialOwner.GetIdentity()); Thread.CurrentPrincipal = owner; task.Claim(); Assert.AreEqual(TaskStatus.Reserved, task.Status); Assert.IsNotNull(task.ActualOwner); Assert.AreEqual(potentialOwner.GetIdentity(), task.ActualOwner); Assert.IsNotNull(task.History); Assert.AreEqual(3, 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(initiatorId, history.UserId); history = task.History.ElementAt(1); Assert.IsNotNull(history); Assert.AreEqual(TaskStatus.Created, history.OldStatus); Assert.AreEqual(TaskStatus.Ready, history.NewStatus); Assert.AreEqual(businessAdminId, history.UserId); history = task.History.ElementAt(2); Assert.IsNotNull(history); Assert.AreEqual(TaskStatus.Ready, history.OldStatus); Assert.AreEqual(TaskStatus.Reserved, history.NewStatus); Assert.AreEqual(potentialOwner, history.UserId); }
public void TestTaskReady() { TaskEntity entity = new TaskEntity { TaskId = new TaskId(), Initiator = new IdentityId().GetIdentity(), Priority = Priority.Normal, Status = TaskStatus.Created, Created = DateTime.UtcNow, Name = "Name", Subject = "Subject" }; Task task = new Task(entity) { LoggingService = new Mock<ILoggingService>().Object, Priority = Priority.High }; TaskDao dao = new TaskDao(SessionFactory); task.Accept(dao); Task loaded; using (ISession session = SessionFactory.OpenSession()) { TaskEntity te = session.Query<TaskEntity>().Where(t => t.TaskId == entity.TaskId).FirstOrDefault(); loaded=new Task(te); } Thread.GetDomain().SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); IPrincipal p = Thread.CurrentPrincipal; loaded.Start(); task.Accept(dao); loaded.Claim(); task.Accept(dao); }