public void PostDuplicateName_WhenCalled_ReturnsBadRequestResult() { var newTask = new SimpleTaskBaseDto { Name = "Task 1", CreatedBy = "Mikk" }; var result = _controller.Post(newTask); Assert.IsType <BadRequestObjectResult>(result.Result); }
public void Post_WhenCalled_ReturnsOkResult() { var newTask = new SimpleTaskBaseDto { Name = "New Task 1", CreatedBy = "Mikk" }; var result = _controller.Post(newTask); Assert.IsType <OkObjectResult>(result.Result); }
public async Task <ActionResult> Post([FromBody] SimpleTaskBaseDto value) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } bool isTaskInProgress = true; do { isTaskInProgress = _tasksInProgress.Any(x => x == value.Name); if (isTaskInProgress) { Thread.Sleep(1000); } else { _tasksInProgress.Add(value.Name); } } while (!isTaskInProgress); var task = _iMapper.Map <SimpleTaskBaseDto, SimpleTask>(value); task.LastUpdateBy = task.CreatedBy; task.LastUpdateDateTime = task.CreationDateTime; bool isValid = await Validate(task); if (!isValid) { _tasksInProgress.Remove(value.Name); return(BadRequest($"Task with name {task.Name} already exists in database.")); } _simpleTaskRepository.Add(task); IncrementNumberOfTotalOperations(); _tasksInProgress.Remove(value.Name); return(Ok(value)); }