예제 #1
0
        public void AddBet_OnePrediction_ThrowsException()
        {
            var betRepoMock = new Mock <IBetRepository>();
            var bookie      = new BookMaker(betRepoMock.Object);

            Assert.Throws <Exception>(() => bookie.AddBet(ValidNewBet, ValidBettor, ValidBrother, new[] { "Prediction", "", "" }));
        }
예제 #2
0
        public void AddBet_BettorNullOrDefault_ArgumentEx()
        {
            var bookie = new BookMaker();

            Assert.Throws <ArgumentNullException>(() => bookie.AddBet(ValidNewBet, null, ValidBrother, ValidOutcome));
            Assert.Throws <ArgumentException>(() => bookie.AddBet(ValidNewBet, new Bettor(), ValidBrother, ValidOutcome));
        }
예제 #3
0
        public void GetPredictions_Valid_GetsPredictions()
        {
            var repo   = new Mock <IBetRepository>();
            var bookie = new BookMaker(repo.Object);
            var result = bookie.GetPredictions(ValidBet);

            repo.Verify(m => m.GetPredictions(It.IsAny <Bet>()));
        }
예제 #4
0
        public void TakeBet_ValidInput_AddsPrediction()
        {
            var betRepoMock = new Mock <IBetRepository>();
            var bookie      = new BookMaker(betRepoMock.Object);

            bookie.TakeBet(ValidBettor, ValidBetOption, ValidBrother);
            betRepoMock.Verify(m => m.TakeBet(It.IsAny <Bettor>(), It.IsAny <BetOption>(), It.IsAny <Brother>()));
        }
예제 #5
0
        public void GetBet_GetsBet()
        {
            var betRepoMock = new Mock <IBetRepository>();
            var bookie      = new BookMaker(betRepoMock.Object);
            var result      = bookie.GetBet(1);

            betRepoMock.Verify(m => m.Get(1));
        }
예제 #6
0
        public void Bets_GetsAllBets()
        {
            var betRepoMock = new Mock <IBetRepository>();
            var bookie      = new BookMaker(betRepoMock.Object);
            var result      = bookie.Bets();

            betRepoMock.Verify(m => m.GetAll());
        }
예제 #7
0
        public void AddBet_ValidInput_AddsBet()
        {
            var betRepoMock = new Mock <IBetRepository>();
            var bookie      = new BookMaker(betRepoMock.Object);

            bookie.AddBet(ValidNewBet, ValidBettor, ValidBrother, ValidOutcome);
            betRepoMock.Verify(m => m.Add(It.IsAny <Bet>(), It.IsAny <Bettor>(), It.IsAny <Brother>()));
        }
예제 #8
0
        public void HasTakenBet_Valid_ReturnsIfBetterBetOnBet()
        {
            var repo     = new Mock <IBetRepository>();
            var bookie   = new BookMaker(repo.Object);
            var betTaken = bookie.HasTakenBet(ValidBettor, ValidBet);

            repo.Verify(m => m.HasTakenBet(It.IsAny <Bettor>(), It.IsAny <Bet>()));
        }
예제 #9
0
 public BetParsingInformation(BookMaker bookmaker, string[] participants, DateTime date, Odds odds, string url = null)
 {
     _bookMaker    = bookmaker;
     _participants = participants;
     _date         = date;
     _odds         = odds;
     _url          = url;
 }
예제 #10
0
        public async Task AddBookMaker(BookMaker bookMaker)
        {
            using (await Locker.LockAsync())
            {
                var connection = _sqLiteImplementation.GetAsyncConnection();

                await connection.InsertOrReplaceWithChildrenAsync(bookMaker);
            }
        }
예제 #11
0
        public async Task UpdateBookMaker(BookMaker bookMaker)
        {
            using (await Locker.LockAsync())
            {
                var connection = _sqLiteImplementation.GetAsyncConnection();

                await connection.UpdateWithChildrenAsync(bookMaker);
            }
        }
예제 #12
0
        public void AddBet_BetIdSet_ArgumentEx()
        {
            var bookie = new BookMaker();

            Assert.Throws <ArgumentException>(() => bookie.AddBet(new Bet()
            {
                Id = 1
            }, ValidBettor, ValidBrother, ValidOutcome));
        }
예제 #13
0
        public void AddBet_ExpirationLessThanTwoDaysFromNow_ThrowsException()
        {
            var betRepoMock = new Mock <IBetRepository>();
            var bookie      = new BookMaker(betRepoMock.Object);

            Assert.Throws <Exception>(() => bookie.AddBet(new Bet()
            {
                Expiration = DateTime.Today.AddDays(1)
            }, ValidBettor, ValidBrother, ValidOutcome));
        }
예제 #14
0
        public void MarkAsComplete_AlreadyComplete_ThrowsException()
        {
            var repo             = new Mock <IBetRepository>();
            var bookie           = new BookMaker(repo.Object);
            var completedOutcome = new BetOption()
            {
                Id  = 1,
                Bet = new Bet()
                {
                    Id = 1, Complete = true
                }
            };

            Assert.Throws <Exception>(() => bookie.MarkAsComplete(completedOutcome, ValidBettor));
        }
예제 #15
0
        public void MarkAsComplete_Valid_MarksBetAsComplete_AndAddsPoints()
        {
            var repo    = new Mock <IBetRepository>();
            var bookie  = new BookMaker(repo.Object);
            var outcome = new BetOption()
            {
                Id  = 1,
                Bet = new Bet()
                {
                    Id = 1
                }
            };

            bookie.MarkAsComplete(outcome, ValidBettor);
            repo.Verify(m => m.MarkComplete(It.IsAny <Bet>(), It.IsAny <Bettor>()));
            repo.Verify(m => m.MarkCorrect(It.IsAny <BetOption>()));
            repo.Verify(m => m.AddPointsToSuccessfulGuess(It.IsAny <BetOption>(), It.IsAny <long>()));
        }
예제 #16
0
        public void MarkAsComplete_NullBettor_ThrowsNullException()
        {
            var bookie = new BookMaker();

            Assert.Throws <ArgumentNullException>(() => bookie.MarkAsComplete(ValidBetOption, null));
        }
예제 #17
0
        public void TakeBet_NullOption_ThrowsArgumentNullEx()
        {
            var bookie = new BookMaker();

            Assert.Throws <ArgumentNullException>(() => bookie.TakeBet(ValidBettor, null, ValidBrother));
        }
예제 #18
0
        public void AddBet_OutcomesNull_ArgumentNullEx()
        {
            var bookie = new BookMaker();

            Assert.Throws <ArgumentNullException>(() => bookie.AddBet(ValidNewBet, ValidBettor, ValidBrother, null));
        }
예제 #19
0
        public void TakeBet_NoOptionId_ThrowsArgumentException()
        {
            var bookie = new BookMaker();

            Assert.Throws <ArgumentException>(() => bookie.TakeBet(ValidBettor, new BetOption(), ValidBrother));
        }
예제 #20
0
        public void HasTakenBet_NullBettor_ThrowsNullException()
        {
            var bookie = new BookMaker();

            Assert.Throws <ArgumentNullException>(() => bookie.HasTakenBet(null, ValidBet));
        }
예제 #21
0
        public void GetPredictions_DefaultBet_ThrowsArgumentException()
        {
            var bookie = new BookMaker();

            Assert.Throws <ArgumentException>(() => bookie.GetPredictions(new Bet()));
        }
예제 #22
0
        public void GetPredictions_NullBet_ThrowsNullException()
        {
            var bookie = new BookMaker();

            Assert.Throws <ArgumentNullException>(() => bookie.GetPredictions(null));
        }
예제 #23
0
        public void HasTakenBet_DefaultBettor_ThrowsArgumentException()
        {
            var bookie = new BookMaker();

            Assert.Throws <ArgumentException>(() => bookie.HasTakenBet(new Bettor(), ValidBet));
        }
예제 #24
0
        public void MarkAsComplete_DefaultBettor_ThrowsArgumentException()
        {
            var bookie = new BookMaker();

            Assert.Throws <ArgumentException>(() => bookie.MarkAsComplete(ValidBetOption, new Bettor()));
        }
예제 #25
0
 public Odds(BookMaker bookMaker, decimal[] odds)
 {
     _bookmaker = bookMaker; _odds = odds;
 }