public void CreateBud_CallsRepositoryMethod() { // Arrange var mockRepo = new Mock <IAuktionRepository>(); var service = new AuktionService(mockRepo.Object, null); BudModel obj = null; var bud = new BiddingViewModel { AuktionID = 1, Summa = 2 }; var user = new NauktionUser { Id = "abcdef" }; mockRepo.Setup(t => t.CreateBudAsync(It.IsAny <BudModel>())) .Callback((BudModel o) => obj = o) .Returns(Task.CompletedTask).Verifiable(); // Act service.CreateBudAsync(bud, user).GetAwaiter().GetResult(); // Assert Assert.IsNotNull(obj); Assert.AreEqual(1, obj.AuktionID); Assert.AreEqual(2, obj.Summa); Assert.AreEqual(user.Id, obj.Budgivare); mockRepo.Verify(); }
public async Task CreateBudAsync(BudModel model) { var formdata = new FormUrlEncodedContent(new Dictionary <string, string> { [nameof(model.AuktionID)] = model.AuktionID.ToString(), [nameof(model.Budgivare)] = model.Budgivare, [nameof(model.Summa)] = model.Summa.ToString() }); HttpResponseMessage response = await _client.PostAsync("bud", formdata); response.EnsureSuccessStatusCode(); }
public async Task <string> ValidateBud(int auktionID, int summa, NauktionUser budgivare) { AuktionModel auktion = await GetAuktionAsync(auktionID); if (auktion is null) { return("Auktionen finns inte."); } if (auktion.IsClosed()) { return("Du kan inte buda på en stängd auktion."); } if (summa <= auktion.Utropspris) { return("Budet måste vara större än utropspriset."); } List <BudModel> budModels = await ListBudsAsync(auktionID); BudModel highestBid = budModels.FirstOrDefault(); if (highestBid is null) { return(null); } if (summa <= highestBid.Summa) { return("Budet måste vara större än det högsta budet."); } NauktionUser highestBidder = await _userManager.FindByIdAsync(highestBid.Budgivare); if (highestBidder?.Id == budgivare.Id) { return("Du kan inte buda när du har högsta budet."); } return(null); }