public async Task AddBadRequestStatus() { //Arrange var userManager = GetMockUserManager(); User user = new User { Id = 1, UserName = "******" }; CreateOrderDto createOrder = new CreateOrderDto { Reference = "430000" }; ReferenceToAddOrderDto reference = new ReferenceToAddOrderDto { Reference = "430000" }; Plan plan = new Plan { Id = 5, Reference = "430000" }; userManager.Setup(x => x.FindByIdAsync("1")).Returns(Task.FromResult(user)); warehouseMock.Setup(x => x.GetOrders("bc1")).Returns(Task.FromResult(GetPlans())); mapperMock.Setup(x => x.Map <Plan>(createOrder)).Returns(plan); warehouseMock.Setup(x => x.Add(plan)); warehouseMock.Setup(x => x.SaveAll()).Returns(Task.FromResult(false)); PlanController controller = new PlanController(warehouseMock.Object, mapperMock.Object, userManager.Object); //Act var action = await controller.AddOrder("bc1", 1, reference, 2) as BadRequestObjectResult; //Arrange Assert.Equal(400, action.StatusCode); }
public async Task AddOrderBadRequestStatus() { //Arrange var userManager = GetMockUserManager(); User user = new User { Id = 1, UserName = "******" }; ReferenceToAddOrderDto reference = new ReferenceToAddOrderDto { Reference = "1" }; userManager.Setup(x => x.FindByIdAsync("1")).Returns(Task.FromResult(user)); PlanController controller = new PlanController(warehouseMock.Object, mapperMock.Object, userManager.Object); //Act var action = await controller.AddOrder("bc1", 1, reference, 1) as BadRequestObjectResult; //Arrange Assert.Equal(400, action.StatusCode); Assert.NotNull(action.Value); }
public async Task <IActionResult> AddOrder(string line, int id, ReferenceToAddOrderDto referenceToAddOrder, [FromQuery] int repeatAmount) { var currentUser = await userManager.FindByIdAsync(id.ToString()); var order = AdjustReference.CreateNewOrder(referenceToAddOrder.Reference); if (order.Reference == null) { return(BadRequest("Podana referencja jest nieprawidłowa")); } order.Status = "Nowe"; order.Line = currentUser.UserName; order.Amount = referenceToAddOrder.Amount; var orders = await warehouseRepository.GetOrders(line); for (int j = 0; j < repeatAmount; j++) { var position = orders.Select(o => o.Position).ToList(); //If entered position is greater than zero, all other orders positions add plus one. if (referenceToAddOrder.Position > 0) { var positionToCheck = position.Where(p => p >= referenceToAddOrder.Position).ToList(); for (int i = 0; i < positionToCheck.Count(); i++) { var currentPosition = orders.Where(o => o.Position == positionToCheck[i]).LastOrDefault(); currentPosition.Position += 1; } //Add to new position entered position and current j value. order.Position = referenceToAddOrder.Position + j; } else { var positionToCheck = position.FirstOrDefault(); //If orders have any data, then new position is equal last position + 1 (and current j value). if (positionToCheck > 0) { var positionToAdd = position.OrderByDescending(p => p).FirstOrDefault(); order.Position = positionToAdd + 1 + j; } else { order.Position = 1 + j; } } var newOrder = mapper.Map <Plan>(order); warehouseRepository.Add(newOrder); } if (await warehouseRepository.SaveAll()) { return(Ok()); } return(BadRequest("Nie udało się dodać zamówienia.")); }