public void Throws_UserNotAuthorizedForEntityException_When_Creating_Milestone_And_User_Not_Admin_For_Organization() { // Setup var org = new Organization(); var user = new User { Organization = org, IsOrganizationAdmin = false }; _context.Users.Add(user); _context.SaveChanges(); var param = new SaveMilestoneParams { RequestingUserId = user.Id, OrganizationId = org.Id }; IProcess <SaveMilestoneParams, MilestoneIdViewModel> process = new MilestoneNonQueryProcesses(_context); // Act try { var result = process.Execute(param); Assert.Fail("No exception was thrown"); } // Verify catch (UserNotAuthorizedForEntityException ex) { Assert.AreEqual(typeof(Organization), ex.EntityType, "Exception's type was incorrect"); Assert.AreEqual(user.Id, ex.UserId, "Exception's user id value was incorrect"); Assert.AreEqual(org.Id, ex.IdValue, "Exception's entity id value was incorrect"); } }
public void Can_Edit_Milestone() { // Setup var org = new Organization(); var user = new User { Organization = org, IsOrganizationAdmin = true }; var ms = new MilestoneConfig(); org.MilestoneConfigurations.Add(ms); _context.Users.Add(user); _context.SaveChanges(); var param = new SaveMilestoneParams { RequestingUserId = user.Id, Id = ms.Id, Title = "Title", Instructions = "Instructions", CompletionDisplay = "Completion", JobSearchMetrics = new DomainModel.Entities.Metrics.JobSearchMetrics { NumApplyTasksCompleted = 1, NumApplyTasksCreated = 2, NumCompaniesCreated = 3, NumContactsCreated = 4, NumInPersonInterviewTasksCreated = 5, NumPhoneInterviewTasksCreated = 6 } }; IProcess <SaveMilestoneParams, MilestoneIdViewModel> process = new MilestoneNonQueryProcesses(_context); // Act var result = process.Execute(param); // Verify var milestone = _context.MilestoneConfigs.SingleOrDefault(); Assert.IsNotNull(milestone, "No milestone was created"); Assert.IsNotNull(result, "Process returned a null result"); Assert.AreEqual(milestone.Id, result.Id, "Result's id value and the milestone's id value did not match"); Assert.AreEqual(ms, milestone, "Milestone in the database was incorrect"); Assert.AreEqual(org, milestone.Organization, "Milestone's organization was incorrect"); Assert.AreEqual(param.Title, milestone.Title, "Milestone's title was incorrect"); Assert.AreEqual(param.Instructions, milestone.Instructions, "Milestone's instructions were incorrect"); Assert.AreEqual(param.CompletionDisplay, milestone.CompletionDisplay, "Milestone's completion text was incorrect"); Assert.AreEqual(param.JobSearchMetrics.NumApplyTasksCompleted, milestone.JobSearchMetrics.NumApplyTasksCompleted, "Milestones num apply tasks completed was incorrect"); Assert.AreEqual(param.JobSearchMetrics.NumApplyTasksCreated, milestone.JobSearchMetrics.NumApplyTasksCreated, "Milestones num apply tasks created was incorrect"); Assert.AreEqual(param.JobSearchMetrics.NumCompaniesCreated, milestone.JobSearchMetrics.NumCompaniesCreated, "Milestones num companies was incorrect"); Assert.AreEqual(param.JobSearchMetrics.NumContactsCreated, milestone.JobSearchMetrics.NumContactsCreated, "Milestones num contacts was incorrect"); Assert.AreEqual(param.JobSearchMetrics.NumInPersonInterviewTasksCreated, milestone.JobSearchMetrics.NumInPersonInterviewTasksCreated, "Milestones num InPersonInterview Tasks completed was incorrect"); Assert.AreEqual(param.JobSearchMetrics.NumPhoneInterviewTasksCreated, milestone.JobSearchMetrics.NumPhoneInterviewTasksCreated, "Milestones Num InPersonInterview Tasks created was incorrect"); }
public void Specifying_Previous_Milestone_Moves_Milestone_In_Between_Other_Milestones_In_Organization() { // Setup var org = new Organization(); var user = new User { Organization = org, IsOrganizationAdmin = true }; var ms4 = new MilestoneConfig { IsStartingMilestone = true, Organization = new Organization() }; var ms3 = new MilestoneConfig(); var ms2 = new MilestoneConfig { NextMilestone = ms3 }; var ms1 = new MilestoneConfig { NextMilestone = ms2, IsStartingMilestone = true }; org.MilestoneConfigurations.Add(ms1); org.MilestoneConfigurations.Add(ms2); org.MilestoneConfigurations.Add(ms3); _context.Users.Add(user); _context.MilestoneConfigs.Add(ms3); _context.SaveChanges(); var param = new SaveMilestoneParams { RequestingUserId = user.Id, Id = ms3.Id, PreviousMilestoneId = ms1.Id }; IProcess <SaveMilestoneParams, MilestoneIdViewModel> process = new MilestoneNonQueryProcesses(_context); // Act var result = process.Execute(param); // Verify Assert.IsFalse(ms3.IsStartingMilestone, "Milestone 3 was incorrectly set as the starting milestone"); Assert.AreEqual(ms2, ms3.NextMilestone, "Milestone 3's next milestone was incorrect"); Assert.IsTrue(ms1.IsStartingMilestone, "The previous starting milestone is no longer set as the starting milestone"); Assert.AreEqual(ms3, ms1.NextMilestone, "Ms1's next milestone was incorrect"); Assert.IsTrue(ms4.IsStartingMilestone, "Other organization's milestone was incorrectly set as non-starting"); }
public void Specifying_Previous_Milestone_Of_Zero_Makes_It_The_Only_Starting_Milestone_For_Organization_When_Creating_Milestone() { // Setup var org = new Organization(); var user = new User { Organization = org, IsOrganizationAdmin = true }; var ms3 = new MilestoneConfig { IsStartingMilestone = true, Organization = new Organization() }; var ms2 = new MilestoneConfig(); var ms1 = new MilestoneConfig { NextMilestone = ms2, IsStartingMilestone = true }; org.MilestoneConfigurations.Add(ms1); org.MilestoneConfigurations.Add(ms2); _context.Users.Add(user); _context.MilestoneConfigs.Add(ms3); _context.SaveChanges(); var param = new SaveMilestoneParams { RequestingUserId = user.Id, OrganizationId = org.Id, PreviousMilestoneId = 0 }; IProcess <SaveMilestoneParams, MilestoneIdViewModel> process = new MilestoneNonQueryProcesses(_context); // Act var result = process.Execute(param); // Verify var newMs = _context.MilestoneConfigs.Where(x => x.Id != ms1.Id && x.Id != ms2.Id && x.Id != ms3.Id).Single(); Assert.IsTrue(newMs.IsStartingMilestone, "New milestone was not set at the starting milestone"); Assert.AreEqual(ms1, newMs.NextMilestone, "New milestone's next milestone was incorrect"); Assert.IsFalse(ms1.IsStartingMilestone, "The previous starting milestone is still set as the starting milestone"); Assert.AreEqual(ms2, ms1.NextMilestone, "Ms1's next milestone was incorrect"); Assert.IsTrue(ms3.IsStartingMilestone, "Other organization's milestone was incorrectly set as non-starting"); }