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

            // Assert
            Assert.True(viewModel.HasOffers);
        }
Example #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());
        }
Example #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 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));
        }
        public void SetUp()
        {
            _context = Substitute.For <IOrangeBricksContext>();
            _builder = new MyOffersViewModelBuilder(_context);

            var offersFor1 = new List <Offer>()
            {
                new Offer()
                {
                    Id = 1, Amount = 1, BuyerUserId = "1", CreatedAt = DateTime.Now.AddDays(-5), Status = OfferStatus.Accepted, UpdatedAt = DateTime.Now
                }
                , new Offer()
                {
                    Id = 2, Amount = 2, BuyerUserId = "2", CreatedAt = DateTime.Now, Status = OfferStatus.Rejected, UpdatedAt = DateTime.Now
                }
                , new Offer()
                {
                    Id = 3, Amount = 3, BuyerUserId = "2", CreatedAt = DateTime.Now, Status = OfferStatus.Pending, UpdatedAt = DateTime.Now
                }
                , new Offer()
                {
                    Id = 4, Amount = 4, BuyerUserId = "1", CreatedAt = DateTime.Now.AddDays(2), Status = OfferStatus.Rejected, UpdatedAt = DateTime.Now
                }
            };

            var offersFor2 = new List <Offer>()
            {
                new Offer()
                {
                    Id = 5, Amount = 5, BuyerUserId = "2", CreatedAt = DateTime.Now, Status = OfferStatus.Accepted, UpdatedAt = DateTime.Now
                }
                , new Offer()
                {
                    Id = 6, Amount = 6, BuyerUserId = "1", CreatedAt = DateTime.Now, Status = OfferStatus.Pending, UpdatedAt = DateTime.Now
                }
                , new Offer()
                {
                    Id = 7, Amount = 7, BuyerUserId = "1", CreatedAt = DateTime.Now.AddDays(-3), Status = OfferStatus.Pending, UpdatedAt = DateTime.Now
                }
                , new Offer()
                {
                    Id = 8, Amount = 8, BuyerUserId = "2", CreatedAt = DateTime.Now, Status = OfferStatus.Rejected, UpdatedAt = DateTime.Now
                }
            };

            _offers = offersFor1.Union(offersFor2).ToList();

            var properties = new List <Models.Property> {
                new Models.Property {
                    Id = 1, StreetName = "Smith Street", Description = "", IsListedForSale = true, Offers = offersFor1
                },
                new Models.Property {
                    Id = 2, StreetName = "Jones Street", Description = "", IsListedForSale = true, Offers = offersFor2
                }
            };

            var mockSet = Substitute.For <IDbSet <Models.Property>, IQueryable <Models.Property> >()
                          .Initialize(properties.AsQueryable(), p => p.Id);

            _context.Properties.Returns(mockSet);
        }