public void BuildShouldReturnOffersForMatchingBuyerId() { // Arrange var builder = new MyOffersViewModelBuilder(_context); var offers = new List <Models.Offer> { new Models.Offer { BuyerId = "1", Status = OfferStatus.Accepted, Amount = 350000, Property = new Models.Property { StreetName = "Smith Street", Description = "", IsListedForSale = true } }, new Models.Offer { BuyerId = "1", Status = OfferStatus.Accepted, Amount = 375000, Property = new Models.Property { StreetName = "Jones Street", Description = "", IsListedForSale = true } } }; var mockSet = Substitute.For <IDbSet <Models.Offer> >() .Initialize(offers.AsQueryable()); _context.Offers.Returns(mockSet); var buyerId = "1"; // Act var viewModel = builder.Build(buyerId); // Assert Assert.That(viewModel.Offers.Count, Is.EqualTo(2)); }
public void MyOffersBuyerHasOffers() { // Act var builder = new MyOffersViewModelBuilder(_context); var viewModel = builder.Build("Buyer1"); // Assert Assert.True(viewModel.HasOffers); }
public void MyOffersBuyerHasOfferAccepted() { // Act var builder = new MyOffersViewModelBuilder(_context); var viewModel = builder.Build("Buyer3"); // Assert Assert.True(viewModel.HasOffers); viewModel.MyOffers.Any(o => o.Offer.Status == OfferStatus.Accepted.ToString()); }
public void BuildShouldReturnNoOffersForABuyer() { // Arrange var builder = new MyOffersViewModelBuilder(_context); // Act var viewModel = builder.Build("999"); // Assert Assert.That(viewModel.Count, Is.EqualTo(0)); }
public void OffersAreCorrectlyFetchedPerUser() { // Arrange var expectedOffers = _offers.Where(o => o.BuyerUserId == "1") .OrderByDescending(o => o.CreatedAt) .ToList(); // Act var model = _builder.Build("1"); // Assert Assert.True(model.HasMadeOffers); Assert.True(model.OffersStates.Count == expectedOffers.Count); for (int i = 0; i < expectedOffers.Count; i++) { Assert.True(expectedOffers[i].Status == model.OffersStates[i].OfferStatus); Assert.True(expectedOffers[i].Amount == model.OffersStates[i].OfferAmount); } }
public void BuilderShouldReturnAcceptedOffersForUser() { // Arrange var builder = new MyOffersViewModelBuilder(_context); var properties = new List <Models.Property> { new Models.Property { Id = 1, StreetName = "Smith Street", Description = "", IsListedForSale = true }, new Models.Property { Id = 2, StreetName = "Jones Street", Description = "", IsListedForSale = true } }; var offers = new List <Offer>() { new Offer { BuyerUserId = "user1", Amount = 100000, PropertyId = 1, Status = OfferStatus.Accepted }, new Offer { BuyerUserId = "user1", Amount = 100000, PropertyId = 2, Status = OfferStatus.Rejected }, new Offer { BuyerUserId = "user2", Amount = 150000, PropertyId = 2, Status = OfferStatus.Accepted }, }; var propertiesMockSet = Substitute.For <IDbSet <Models.Property> >().Initialize(properties.AsQueryable()); var offersMockSet = Substitute.For <IDbSet <Offer> >().Initialize(offers.AsQueryable()); _context.Properties.Returns(propertiesMockSet); _context.Offers.Returns(offersMockSet); // Act var viewModel = builder.Build("user1"); // Assert Assert.That(viewModel.AcceptedOffers.Count, Is.EqualTo(1)); }