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 ConfigurationDTO(TechServiceConfig config) { RangeMin = (int)config.TimeRange.MinTime.TotalSeconds; RangeMax = (int)config.TimeRange.MaxTime.TotalSeconds; Tm = (int)config.Tm.TotalSeconds; Td = (int)config.Td.TotalSeconds; }
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(); }
static TechServiceSingleton() { var config = new TechServiceConfig() { TimeRange = new TimeRange(TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(60)), Tm = TimeSpan.FromSeconds(10), Td = TimeSpan.FromSeconds(20) }; Instance = new TechService(config); }
public void ChangeTm() { //Arrange var config = new TechServiceConfig { TimeRange = new TimeRange(TimeSpan.FromSeconds(0)), Tm = TimeSpan.FromSeconds(0) }; var service = new TechService(config); //Act var newTm = TimeSpan.FromSeconds(3); service.Tm = newTm; //Assert Assert.AreEqual(service.TaskManager.Config.Tm, newTm); }
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); }
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 CreateTechService() { //Arrange var config = new TechServiceConfig { TimeRange = new TimeRange(TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(5)), Tm = TimeSpan.FromSeconds(10), Td = TimeSpan.FromSeconds(20) }; //Act var service = new TechService(config); //Assert Assert.AreEqual(0, service.Employees.Count); Assert.AreEqual(0, service.TaskManager.InWork.Count()); Assert.AreEqual(0, service.TaskManager.Done.Count()); Assert.AreEqual(0, service.TaskManager.InQueue.Count()); Assert.AreEqual(TimeSpan.FromSeconds(2), service.MinTime); Assert.AreEqual(TimeSpan.FromSeconds(5), service.MaxTime); Assert.AreEqual(TimeSpan.FromSeconds(10), service.Tm); Assert.AreEqual(TimeSpan.FromSeconds(20), service.Td); }