Example #1
0
        public void CalculateWinners_TwoItemsAndCustomRanks_ManyBids()
        {
            //Arrange
            RankConfiguration raiderConfig = new RankConfiguration("Raider", null, 1);
            RankConfiguration boxConfig    = new RankConfiguration("Box", 50, 3);
            RankConfiguration altConfig    = new RankConfiguration("Alt", 10, 1);
            RankConfiguration memberConfig = new RankConfiguration("Member", 10, 1);

            configuration.Ranks = new[] { raiderConfig, boxConfig, altConfig, memberConfig };

            Auction auction = raid.NewAuction(2);

            AuctionBid bid1 = auction.AddBid("Galvanized", 26, raiderConfig);
            AuctionBid bid2 = auction.AddBid("Barogue", 14, altConfig);

            auction.AddBid("Autobahn", 10, raiderConfig);
            auction.AddBid("Khaldraks", 10, memberConfig);
            auction.AddBid("Windforce", 5, altConfig);
            auction.AddBid("Glororhan", 5, raiderConfig);

            //Act
            CompletedAuction completedAuction = target.CalculateWinners(auction);

            //Assert
            completedAuction.AssertNumberOfWinners(2);
            completedAuction.AssertWinner(bid1, 11);
            completedAuction.AssertWinner(bid2, 11);
        }
Example #2
0
        public void CalculateWinners_TwoItems_ManyRaiderBids()
        {
            //Arrange
            RankConfiguration raider = new RankConfiguration("Raider", null, 1);

            configuration.Ranks = new[] { raider };

            Auction auction = raid.NewAuction(2);

            AuctionBid bid1 = auction.AddBid("Blace", 103, raider);
            AuctionBid bid2 = auction.AddBid("Khovet", 75, raider);

            auction.AddBid("Glororhan", 69, raider);
            auction.AddBid("Mowron", 69, raider);
            auction.AddBid("kalvin", 67, raider);
            auction.AddBid("GALVANIZED", 55, raider);

            //Act
            CompletedAuction completedAuction = target.CalculateWinners(auction);

            //Assert
            completedAuction.AssertNumberOfWinners(2);
            completedAuction.AssertWinner(bid1, 70);
            completedAuction.AssertWinner(bid2, 70);
        }
Example #3
0
        public void CompareToMultiples()
        {
            //Arrange
            RaidInfo          raid    = new RaidInfo();
            Auction           auction = new Auction(23423, 2, "Nuke", 2, raid, GetMessage(44));
            RankConfiguration main    = new RankConfiguration("main", null, 1);
            RankConfiguration box     = new RankConfiguration("box", 100, 1);
            RankConfiguration alt     = new RankConfiguration("alt", 25, 1);

            AuctionBid mainBid = new AuctionBid(auction, "main", 1, 104, main, GetAuthor(1));
            AuctionBid boxBid1 = new AuctionBid(auction, "box1", 1, 300, box, GetAuthor(2));
            AuctionBid BoxBid2 = new AuctionBid(auction, "box2", 1, 250, box, GetAuthor(3));
            AuctionBid altBid  = new AuctionBid(auction, "alt", 1, 54, alt, GetAuthor(4));

            List <AuctionBid> list = new List <AuctionBid> {
                altBid, boxBid1, mainBid, BoxBid2
            };

            //Act
            list.Sort();

            //Assert
            Assert.AreEqual(mainBid, list[0]);
            Assert.AreEqual(boxBid1, list[1]);
            Assert.AreEqual(BoxBid2, list[2]);
            Assert.AreEqual(altBid, list[3]);
        }
Example #4
0
 public AuctionBid(Auction auction, string characterName, int characterId, int bidAmount, RankConfiguration rank, IUser author)
 {
     CharacterName = characterName;
     CharacterId   = characterId;
     if (bidAmount < 1)
     {
         throw new InvalidBidException("Bid amount must be greater than 0.");
     }
     BidAmount = bidAmount;
     Rank      = rank;
     Author    = author;
     Auction   = auction;
 }
Example #5
0
        public void BidsMustBePositive()
        {
            //Arrange
            RaidInfo          raid    = new RaidInfo();
            Auction           auction = new Auction(23423, 1, "Nuke", 2, raid, GetMessage(42));
            RankConfiguration rank1   = new RankConfiguration("rank1", null, 1);

            //Act
            Action act = () =>
            {
                new AuctionBid(auction, "foo", 42, 0, rank1, GetAuthor(1));
            };

            //Assert
            act.Should().Throw <InvalidBidException>();
        }
Example #6
0
        public void Compare(int?bid1, int?cap1, int?bid2, int?cap2, ExpectedWinner expected)
        {
            //Arrange
            RaidInfo          raid    = new RaidInfo();
            Auction           auction = new Auction(23423, 1, "Nuke", 2, raid, GetMessage(42));
            RankConfiguration rank1   = new RankConfiguration("rank1", cap1, 1);
            RankConfiguration rank2   = new RankConfiguration("rank2", cap2, 1);
            AuctionBid        a1      = bid1 != null ? new AuctionBid(auction, "1", 1, bid1.Value, rank1, GetAuthor(45)) : null;
            AuctionBid        a2      = bid2 != null ? new AuctionBid(auction, "2", 2, bid2.Value, rank2, GetAuthor(41)) : null;

            //Act
            int            comparison = a1?.CompareTo(a2) ?? 0;
            ExpectedWinner actual     = comparison < 0 ? ExpectedWinner.First : comparison > 0 ? ExpectedWinner.Second : ExpectedWinner.Tie;

            //Assert
            Assert.AreEqual(expected, actual);
        }
        public static AuctionBid AddBid(this Auction auction, string name, int amount, RankConfiguration rank)
        {
            AuctionBid bid = new AuctionBid(auction, name, random.Next(), amount, rank, GetAuthor(42));

            auction.Bids.AddOrUpdate(bid);
            return(bid);
        }