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); }
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); }
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]); }
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; }
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>(); }
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); }