public async Task UpdateItemBidAsyncThowsBadRequestException() { var mockLogger = new Mock <ILogger <ItemController> >(); var item = GetMockItemBid(); var user = GetMockUser(); var createBidRequest = new CreateBidRequest(); createBidRequest.BidAmount = 450; var itemBidStatus = new ItemBidStatus(); itemBidStatus.CanCreateBid = false; itemBidStatus.ErrorMessage = "Auction End Date expired"; var itemRepository = new Mock <IItemRepository>(); itemRepository.Setup(t => t.GetItemAsync(It.IsAny <int>())).Returns(Task.FromResult(item)); itemRepository.Setup(u => u.GetItemBidStatus(It.IsAny <int>())).Returns(Task.FromResult(itemBidStatus)); var userRepository = new Mock <IUserRepository>(); userRepository.Setup(u => u.GetUserAsync(It.IsAny <int>())).Returns(Task.FromResult(user)); var itemController = new ItemController(mockLogger.Object, itemRepository.Object, userRepository.Object); var controller = await itemController.UpdateItemBidAsync(createBidRequest, "1", 2); var result = Assert.IsType <BadRequestObjectResult>(controller.Result); Assert.Equal(400, result.StatusCode); Assert.Equal("Auction End Date expired", result.Value); }
public async Task UpdateItemBidAsyncReturnsItemResponse() { var mockLogger = new Mock <ILogger <ItemController> >(); var item = GetMockItemBid(); var user = GetMockUser(); var createBidRequest = new CreateBidRequest(); createBidRequest.BidAmount = 450; var itemBidStatus = new ItemBidStatus(); itemBidStatus.CanCreateBid = true; itemBidStatus.ErrorMessage = string.Empty; var itemRepository = new Mock <IItemRepository>(); itemRepository.Setup(t => t.GetItemAsync(It.IsAny <int>())).Returns(Task.FromResult(item)); itemRepository.Setup(u => u.GetItemBidStatus(It.IsAny <int>())).Returns(Task.FromResult(itemBidStatus)); itemRepository.Setup(s => s.CreateBid(It.IsAny <CreateBidRequest>())).Returns(Task.FromResult(item)); var userRepository = new Mock <IUserRepository>(); userRepository.Setup(u => u.GetUserAsync(It.IsAny <int>())).Returns(Task.FromResult(user)); var itemController = new ItemController(mockLogger.Object, itemRepository.Object, userRepository.Object); var controller = await itemController.UpdateItemBidAsync(createBidRequest, "1", 2); var actionResult = Assert.IsType <OkObjectResult>(controller.Result); var result = actionResult.Value as ItemResponse; Assert.NotNull(result); Assert.Equal(2, result.Id); Assert.Equal(2346, result.ItemNumber); Assert.Equal("Iphone X 512 GB White", result.Description); Assert.Single(result.Bids); Assert.Equal(450, result.Bids[0].BidAmount); }
public async Task <ItemBidStatus> GetItemBidStatus(int id) { var itemEntity = await _edappContext.Item.FindAsync(id); var itemBidStatus = new ItemBidStatus(); if (itemEntity != null) { if (itemEntity.AuctionEndDate > DateTime.Now) { itemBidStatus.CanCreateBid = true; itemBidStatus.ErrorMessage = string.Empty; } else { itemBidStatus.CanCreateBid = false; itemBidStatus.ErrorMessage = AUCTION_END_DATE_EXPIRED; } } else { itemBidStatus.CanCreateBid = false; itemBidStatus.ErrorMessage = ITEM_NOT_FOUND; } return(itemBidStatus); }