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));
        }
示例#2
0
        public void MyOffersBuyerHasOffers()
        {
            // Act
            var builder   = new MyOffersViewModelBuilder(_context);
            var viewModel = builder.Build("Buyer1");

            // Assert
            Assert.True(viewModel.HasOffers);
        }
示例#3
0
        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());
        }
示例#4
0
        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));
        }