Esempio n. 1
0
        public void GetItemsBidOnByUserWhenUserHasBidReturnsAllItems()
        {
            BidRepository repo = new BidRepository();

            repo.Items.Add(new Item("item1", "name1"));
            repo.Items.Add(new Item("item2", "name2"));
            repo.Bids.Add(new Bid("bid1", "item1", "user1", 2));
            repo.Bids.Add(new Bid("bid2", "item1", "user2", 3));
            repo.Bids.Add(new Bid("bid3", "item1", "user3", 4));
            repo.Bids.Add(new Bid("bid4", "item2", "user3", 3));

            BidTracker tracker = new BidTracker(repo);

            IEnumerable <Item> items = tracker.GetItemsBidOn("user3");

            Assert.NotEmpty(items);
            Assert.Equal(2, items.Count());

            Item item1 = items.SingleOrDefault(i => i.Id == "item1");

            Assert.NotNull(item1);
            Assert.Equal("name1", item1.Name);

            Item item2 = items.SingleOrDefault(i => i.Id == "item2");

            Assert.NotNull(item2);
            Assert.Equal("name2", item2.Name);
        }
Esempio n. 2
0
        public ActionResult ViewAuctionDetails(AuctionViewModel model)
        {
            var bidRepo  = new BidRepository();
            var aucRepo  = new AuctionRepository();
            var userRepo = new UserRepository();
            var auction  = aucRepo.GetAuctionById(model.Id);

            model.Bid = aucRepo.GetHighestBid(model.Id);
            var returnModel = auction.ConvertToViewModel();

            if (model.NextBid.Price > (auction.MinPrice + auction.Interval) && model.NextBid.Price > model.Bid.Price)
            {
                model.NextBid.Auction = auction;
                model.NextBid.Active  = true;
                model.NextBid.Date    = DateTime.Now;
                model.NextBid.User    = userRepo.GetUserById(1);
                bidRepo.InsertBid(model.NextBid);

                auction.Bids.Add(model.NextBid);
                returnModel.Bid          = model.NextBid;
                returnModel.ErrorMessage = "Bud på auktionen er godkendt!";
            }
            else
            {
                returnModel.Bid          = model.Bid;
                returnModel.ErrorMessage = "Bud for lavt!";
            }

            return(View(returnModel));
        }
Esempio n. 3
0
        public void GetBidsForItemReturnBidsSuccessfully()
        {
            BidRepository repo = new BidRepository();

            repo.Items.Add(new Item("item1", "name1"));
            repo.Bids.Add(new Bid("bid1", "item1", "user1", 2));
            repo.Bids.Add(new Bid("bid2", "item1", "user2", 3));

            BidTracker tracker = new BidTracker(repo);

            List <Bid> bids = tracker.GetBids("item1").ToList();

            Assert.Equal(2, bids.Count());

            Bid bid1 = bids.SingleOrDefault(b => b.Id == "bid1");

            Assert.NotNull(bid1);
            Assert.Equal(2, bid1.Amount);
            Assert.Equal("item1", bid1.ItemId);
            Assert.Equal("user1", bid1.UserId);

            Bid bid2 = bids.SingleOrDefault(b => b.Id == "bid2");

            Assert.NotNull(bid2);
            Assert.Equal(3, bid2.Amount);
            Assert.Equal("item1", bid2.ItemId);
            Assert.Equal("user2", bid2.UserId);
        }
Esempio n. 4
0
        public void testAddBid()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "Add_bid_to_db")
                          .Options;

            int    price       = 230;
            string description = "This is how much you owe me";
            var    start       = new DateTime(2017 / 01 / 12);
            var    end         = new DateTime(2017 / 01 / 12);
            Bid    bid         = new Bid();

            bid.bidPrice    = price;
            bid.description = description;
            bid.startDate   = start;
            bid.endDate     = end;

            using (ApplicationDbContext context = new ApplicationDbContext(options))
            {
                IBidRepository bidRepo = new BidRepository(context);
                bidRepo.AddBid(bid);
                bidRepo.Save();
            }

            // Use a separate instance of the context to verify correct data was saved to database
            using (var context = new ApplicationDbContext(options))
            {
                IBidRepository bidRepo     = new BidRepository(context);
                var            bidRecieved = bidRepo.GetBidByID(bid.bidId);
                Assert.True(bidRecieved.bidPrice == price);
            }
        }
Esempio n. 5
0
 public void AuctionTestInitialize()
 {
     Console.Out.Write("AuctionTestInitialize called...");
     _auctionRepository = new AuctionRepository();
     _artworkRepository = new ArtworkRepository();
     _bidRepository     = new BidRepository();
     _auction           = new Auction();
 }
Esempio n. 6
0
 public void BidTestInitialize()
 {
     Console.Out.Write("BidTestInitialize called...");
     _bidRepository     = new BidRepository();
     _auctionRepository = new AuctionRepository();
     _userRepository    = new UserRepository();
     _bid = new Bid();
 }
Esempio n. 7
0
        public void GetItemsBidOnByUserWithoutUserIdThrowsException(string userId)
        {
            BidRepository repo    = new BidRepository();
            BidTracker    tracker = new BidTracker(repo);

            var ex = Assert.Throws <ArgumentNullException>(() => tracker.GetItemsBidOn(userId));

            Assert.Contains("A user id must be specified.", ex.Message);
        }
Esempio n. 8
0
 public AuctionService()
 {
     _unitOfWork         = new UnitOfWork(new AnonymousBidderDataContext());
     _filePathRepository = new FilePathRepository(_unitOfWork);
     _auctionRepository  = new AuctionRepository(_unitOfWork);
     _abUserRepository   = new ABUserRepository(_unitOfWork);
     _userRoleRepository = new UserRoleRepository(_unitOfWork);
     _bidRepository      = new BidRepository(_unitOfWork);
 }
Esempio n. 9
0
        public void BidAddedWithoutUserIdThrowsException(string userId)
        {
            BidRepository repo    = new BidRepository();
            BidTracker    tracker = new BidTracker(repo);

            var ex = Assert.Throws <ArgumentNullException>(() => tracker.AddBid("item1", 1, userId));

            Assert.Contains("A user id must be specified.", ex.Message);
        }
Esempio n. 10
0
        public void BidAddedWithInvalidAmountThrowsException(decimal bidAmount)
        {
            BidRepository repo    = new BidRepository();
            BidTracker    tracker = new BidTracker(repo);

            var ex = Assert.Throws <ArgumentException>(() => tracker.AddBid("item1", bidAmount, "user1"));

            Assert.Contains("The bid amount must be greater than 0.", ex.Message);
        }
Esempio n. 11
0
        public void BidAddedToNonExistingItemThrowsException()
        {
            BidRepository repo    = new BidRepository();
            BidTracker    tracker = new BidTracker(repo);

            InvalidBidException exception = Assert.Throws <InvalidBidException>(() => tracker.AddBid("item1", 1, "user1"));

            Assert.Equal("An item with id 'item1' does not exist.", exception.Message);
        }
Esempio n. 12
0
        public void GetWinningBidForItemWithoutItemIdThrowsException(string itemId)
        {
            BidRepository repo    = new BidRepository();
            BidTracker    tracker = new BidTracker(repo);

            var ex = Assert.Throws <ArgumentNullException>(() => tracker.GetWinningBid(itemId));

            Assert.Contains("An item id must be specified.", ex.Message);
        }
Esempio n. 13
0
 public ServerImpl()
 {
     conferenceRepository = new ConferenceRepository();
     editionRepository    = new EditionRepository();
     paperRepo            = new PaperRepository();
     bidRepo      = new BidRepository();
     userRepo     = new UserRepository();
     reviewRepo   = new ReviewRepository();
     reviewerRepo = new ReviewerRepository();
 }
Esempio n. 14
0
        public void GetWinningBidWhenThereAreNoBidsReturnsNull()
        {
            BidRepository repo = new BidRepository();

            repo.Items.Add(new Item("item1", "name1"));

            BidTracker tracker = new BidTracker(repo);

            Bid bid = tracker.GetWinningBid("item1");

            Assert.Null(bid);
        }
Esempio n. 15
0
        public void GetItemsBidOnByUserWhenUserHasNotBidReturnsNoItems()
        {
            BidRepository repo = new BidRepository();

            repo.Items.Add(new Item("item1", "name1"));
            repo.Bids.Add(new Bid("bid1", "item1", "user1", 2));
            repo.Bids.Add(new Bid("bid2", "item1", "user2", 3));

            BidTracker tracker = new BidTracker(repo);

            IEnumerable <Item> items = tracker.GetItemsBidOn("user3");

            Assert.Empty(items);
        }
Esempio n. 16
0
        public void BidLowerThanWinningBidThrowsException()
        {
            BidRepository repo = new BidRepository();

            repo.Items.Add(new Item("item1", "name1"));
            repo.Bids.Add(new Bid("bid1", "item1", "user1", 2));
            repo.Bids.Add(new Bid("bid2", "item1", "user2", 3));

            BidTracker tracker = new BidTracker(repo);

            InvalidBidException exception = Assert.Throws <InvalidBidException>(() => tracker.AddBid("item1", 1, "user3"));

            Assert.Equal("Bid too low. The current highest bid is 3.", exception.Message);
        }
Esempio n. 17
0
        public void testPostBid()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "Post_bid_db")
                          .Options;

            using (var context = new ApplicationDbContext(options))
            {
                IBidRepository bidRepo = new BidRepository(context);

                var mockConnectionManager = new Mock <IConnectionManager>();

                var            controller = new BidsAPIController(context, bidRepo, mockConnectionManager.Object);
                OkObjectResult getResult  = (OkObjectResult)controller.GetAll();
                List <Bid>     bidList    = (List <Bid>)getResult.Value;
                Assert.True(bidList.Count == 0);
            }

            using (var context = new ApplicationDbContext(options))
            {
                int    price       = 230;
                string description = "This is how much you owe me";
                var    start       = new DateTime(2017 / 01 / 12);
                var    end         = new DateTime(2017 / 01 / 12);
                Bid    bid         = new Bid();
                bid.bidPrice    = price;
                bid.description = description;
                bid.startDate   = start;
                bid.endDate     = end;

                IBidRepository bidRepo = new BidRepository(context);
                var            mockConnectionManager = new Mock <IConnectionManager>();

                var controller = new BidsAPIController(context, bidRepo, mockConnectionManager.Object);
                controller.Post(bid);
            }

            using (var context = new ApplicationDbContext(options))
            {
                IBidRepository bidRepo = new BidRepository(context);
                var            mockConnectionManager = new Mock <IConnectionManager>();

                var controller = new BidsAPIController(context, bidRepo, mockConnectionManager.Object);

                OkObjectResult getResult = (OkObjectResult)controller.GetAll();
                List <Bid>     bidList   = (List <Bid>)getResult.Value;
                Assert.True(bidList.Count == 1);
            }
        }
Esempio n. 18
0
        public void GetWinningBidReturnsSuccessfully()
        {
            BidRepository repo = new BidRepository();

            repo.Items.Add(new Item("item1", "name1"));
            repo.Bids.Add(new Bid("bid1", "item1", "user1", 2));
            repo.Bids.Add(new Bid("bid2", "item1", "user2", 4));
            repo.Bids.Add(new Bid("bid3", "item1", "user3", 3));

            BidTracker tracker = new BidTracker(repo);

            Bid bid = tracker.GetWinningBid("item1");

            Assert.NotNull(bid);
            Assert.Equal("item1", bid.ItemId);
            Assert.Equal(4, bid.Amount);
            Assert.Equal("user2", bid.UserId);
            Assert.Equal("bid2", bid.Id);
        }
Esempio n. 19
0
        public void testDeleteBid()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "Delete_bid_from_db")
                          .Options;


            int    price       = 230;
            string description = "This is how much you owe me";
            var    start       = new DateTime(2017 / 01 / 12);
            var    end         = new DateTime(2017 / 01 / 12);
            Bid    bid         = new Bid();

            bid.bidPrice    = price;
            bid.description = description;
            bid.startDate   = start;
            bid.endDate     = end;

            using (ApplicationDbContext context = new ApplicationDbContext(options))
            {
                IBidRepository bidRepo = new BidRepository(context);
                bidRepo.AddBid(bid);
                bidRepo.Save();
            }

            // Use a seperate instance of the context to verify correct data was saved to the db
            using (var context = new ApplicationDbContext(options))
            {
                Assert.True(context.Bid.Count() == 1);
            }
            using (var context = new ApplicationDbContext(options))
            {
                IBidRepository bidRepo = new BidRepository(context);
                bidRepo.DeleteBid(bid.bidId);
                bidRepo.Save();
            }
            using (var context = new ApplicationDbContext(options))
            {
                Assert.True(context.Bid.Count() == 0);
            }
        }
Esempio n. 20
0
        public void UserCanCreateBidSuccessfully()
        {
            BidRepository repo = new BidRepository();

            repo.Items.Add(new Item("item1", "name1"));
            repo.Bids.Add(new Bid("bid1", "item1", "user1", 2));
            repo.Bids.Add(new Bid("bid2", "item1", "user2", 3));

            BidTracker tracker = new BidTracker(repo);

            Bid bid = tracker.AddBid("item1", 5, "user3");

            Assert.Equal(3, repo.Bids.Count);

            // Retrieve the newly created bid and check its values.
            Bid newBid = repo.Bids.Single(b => b.Id == bid.Id);

            Assert.Equal(5, newBid.Amount);
            Assert.Equal("item1", newBid.ItemId);
            Assert.Equal("user3", newBid.UserId);
        }
Esempio n. 21
0
 /// <summary>Initializes a new instance of the <see cref="BidService"/> class.</summary>
 /// <param name="bidRepository">The review repository.</param>
 public BidService(BidRepository bidRepository)
 {
     this.bidRepository = bidRepository;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="BidService"/> class.
 /// </summary>
 /// <param name="bidRepository">The Bid repository.</param>
 /// <param name="auctionService">The Bid service.</param>
 public BidService(BidRepository bidRepository, AuctionService auctionService)
 {
     this.bidRepository  = bidRepository;
     this.auctionService = auctionService;
 }
 public HomeController(BidRepository bidRepository)
 {
     this.bidRepo = bidRepository;
 }
Esempio n. 24
0
 public AuctionController()
 {
     userFactory = new UserRepository();
     bidFactory  = new BidRepository();
 }