public void ManagerHandlingTask() { //Arrange var config = new TechServiceConfig { TimeRange = new TimeRange(TimeSpan.FromSeconds(2)), Tm = TimeSpan.FromSeconds(0), }; var service = new TechService(config); //Act service.CreateTask("Запрос в службу поддержки №1"); service.CreateTask("Запрос в службу поддержки №2 (для менеджера)"); Employee operator1 = service.CreateOperator("Оператор"); Employee manager = service.CreateManager("Менеджер"); //Assert var task = Task.Run(async() => { //Ждем выполнения всех заявок while (!service.TaskManager.AllDone) { await Task.Delay(500); } Assert.AreEqual(0, service.TaskManager.InQueue.Count()); Assert.AreEqual(0, service.TaskManager.InWork.Count()); Assert.AreEqual(2, service.TaskManager.Done.Count()); Assert.AreEqual(operator1, service.TaskManager.Done.First(t => t.Description == "Запрос в службу поддержки №1").Handler); Assert.AreEqual(manager, service.TaskManager.Done.First(t => t.Description == "Запрос в службу поддержки №2 (для менеджера)").Handler); }); task.Wait(); }
public void CreateTasks() { //Arrange var service = new TechService(); //Act service.CreateTask("Запрос в службу поддержки №1"); service.CreateTask("Запрос в службу поддержки №2"); service.CreateTask("Запрос в службу поддержки №3"); //Assert Assert.AreEqual(3, service.TaskManager.InQueue.Count()); Assert.AreEqual(0, service.TaskManager.InWork.Count()); Assert.AreEqual(0, service.TaskManager.Done.Count()); }
public void DeleteEmployee() { //Arrange var service = new TechService(); //Act service.CreateTask("Запрос в службу поддержки №1"); var operator1 = service.CreateEmployee("Operator", "Оператор"); //Assert var task = Task.Run(async() => { //Ждем пока оператор не получит задачу while (service.TaskManager.InWork.Count() != 1) { await Task.Delay(500); } service.DeleteEmployee(operator1); //Ждем пока оператор не вернет задачу while (service.TaskManager.InQueue.Count() != 1) { Assert.AreEqual(0, service.TaskManager.Done.Count()); await Task.Delay(500); } Assert.AreEqual(0, service.TaskManager.InWork.Count()); }); task.Wait(); }
public void OperatorHandlingTask() { //Arrange var config = new TechServiceConfig { TimeRange = new TimeRange(TimeSpan.FromSeconds(1)) }; var service = new TechService(config); //Act service.CreateTask("Запрос в службу поддержки"); Employee operator1 = service.CreateOperator("Оператор"); //Assert var task = Task.Run(async() => { //Ждем выполнения всех заявок while (!service.TaskManager.AllDone) { await Task.Delay(500); } Assert.AreEqual(0, service.TaskManager.InQueue.Count()); Assert.AreEqual(0, service.TaskManager.InWork.Count()); Assert.AreEqual(1, service.TaskManager.Done.Count()); Assert.AreEqual(operator1, service.TaskManager.Done.First().Handler); Assert.AreEqual(TechTaskStatus.Done, service.TaskManager.Done.First().Status); Assert.IsFalse(operator1.IsBusy); }); task.Wait(); }
public void DeleteTask() { //Arrange var service = new TechService(); //Act TechTask task = service.CreateTask("Запрос в службу поддержки №1"); service.DeleteTask(task); //Assert Assert.AreEqual(TechTaskStatus.Canceled, task.Status); }
public void ChangeTimeRange() { //Arrange var config = new TechServiceConfig { TimeRange = new TimeRange(TimeSpan.FromSeconds(0)) }; var service = new TechService(config); //Act service.CreateTask("Запрос в службу поддержки №1"); service.CreateOperator("Оператор"); service.MinTime = TimeSpan.FromSeconds(3); service.MaxTime = TimeSpan.FromSeconds(3); service.CreateTask("Запрос в службу поддержки №2"); //Assert var task = Task.Run(async() => { //Ждем выполнения всех заявок while (!service.TaskManager.AllDone) { await Task.Delay(500); } var firstTask = service.TaskManager.Done.First(); var secondTask = service.TaskManager.Done.Skip(1).First(); var firstTime = (int)firstTask.TimeSpent.TotalSeconds + (int)service.MaxTime.TotalSeconds; var secondTime = (int)secondTask.TimeSpent.TotalSeconds; Assert.IsTrue(firstTime == secondTime); }); task.Wait(); }
public void ChangeTd() { //Arrange var config = new TechServiceConfig { TimeRange = new TimeRange(TimeSpan.FromSeconds(0)), Td = TimeSpan.FromSeconds(0) }; var service = new TechService(config); //Act var newTd = TimeSpan.FromSeconds(3); service.Td = newTd; service.CreateTask("Запрос в службу поддержки №2"); //Assert Assert.AreEqual(service.TaskManager.Config.Td, newTd); }