public void SetupCheckedBets_ShouldSetWinningBetFalse_WithValidParams(string inputString, FinalResultMarks finalResultMark) { this.ResetParams(); this.mockedLine.Setup(x => x.Account.Balance).Returns(100m); var bet = new RegularBet(this.mockedMatch.Object, this.mockedLine.Object, finalResultMark.ToString(), this.amount, this.coefficient, this.mockedTipster.Object); var mockedResult = new Mock <IFinalResult>(); mockedResult.Setup(r => r.GetMark()).Returns(inputString); this.mockedMatch.Setup(m => m.Results).Returns(new Dictionary <ResultType, IResult>() { [ResultType.Final] = mockedResult.Object }); var collectionOfBets = new List <IBet>() { bet }; var betController = new BetController(); betController.SetupCheckedBets(collectionOfBets); Assert.IsFalse(bet.IsWin); }
public void Bet_NotEnoughMoney_ThrowsBadRequestException() { var user = new UserDto() { Id = 1, Money = 1234 }; //Arrange Mock <IUserRepository> mockUserRepository = new Mock <IUserRepository>(); Mock <ILoginRepository> mockLoginRepository = new Mock <ILoginRepository>(); Mock <IBetRepository> mockBetRepository = new Mock <IBetRepository>(); mockLoginRepository.Setup(l => l.HasUserAndToken(user.Id, It.IsAny <string>())).Returns(true); mockUserRepository.Setup(u => u.Get(user.Id)).Returns(user); var controller = new BetController(mockUserRepository.Object, mockLoginRepository.Object, mockBetRepository.Object); var requestMessage = new HttpRequestMessage(); requestMessage.Headers.Add("DiceGaming-Token", "token"); controller.Request = requestMessage; controller.Configuration = new HttpConfiguration(); //Act / Assert var betRequest = new BetRequest() { Bet = 10, Stake = user.Money + 1000 }; Assert.Throws <BadRequestException>(() => controller.Bet(user.Id, betRequest)); }
} //最高等級 //--------------------------------------------------------------------------------------------------------------------------------------------- void Awake() { if (_instance == null) { _instance = this; //設定單例模式 } }
public void GetBets_InvalidData_ThrowsBadRequestException() { var user = new UserDto() { Id = 1 }; //Arrange Mock <IUserRepository> mockUserRepository = new Mock <IUserRepository>(); Mock <ILoginRepository> mockLoginRepository = new Mock <ILoginRepository>(); Mock <IBetRepository> mockBetRepository = new Mock <IBetRepository>(); mockLoginRepository.Setup(l => l.HasUserAndToken(user.Id, It.IsAny <string>())).Returns(true); var controller = new BetController(mockUserRepository.Object, mockLoginRepository.Object, mockBetRepository.Object); var requestMessage = new HttpRequestMessage(); requestMessage.Headers.Add("DiceGaming-Token", "token"); controller.Request = requestMessage; controller.Configuration = new HttpConfiguration(); //Act / Assert Assert.Throws <BadRequestException>(() => controller.GetBets(user.Id, "-1", "0", "win")); Assert.Throws <BadRequestException>(() => controller.GetBets(user.Id, "invalid", "0", "win")); Assert.Throws <BadRequestException>(() => controller.GetBets(user.Id, "0", "-1", "win")); Assert.Throws <BadRequestException>(() => controller.GetBets(user.Id, "0", "invalid", "win")); Assert.Throws <BadRequestException>(() => controller.GetBets(user.Id, "0", "0", "invalid")); Assert.Throws <BadRequestException>(() => controller.GetBets(user.Id, "0", "0", "win", "invalid")); }
public void SetupCheckedBets_ShouldSetBetCheckedProperty_WithValidParams() { this.ResetParams(); this.mockedLine.Setup(x => x.Account.Balance).Returns(100m); this.mockedLine.Setup(x => x.LeftValueToBeBet()).Returns(this.lineValueToBeWin); var bet = new RegularBet(this.mockedMatch.Object, this.mockedLine.Object, mark.ToString(), this.amount, this.coefficient, this.mockedTipster.Object); var mockedResult = new Mock <IFinalResult>(); mockedResult.Setup(r => r.GetMark()).Returns("_1"); this.mockedMatch.Setup(m => m.Results).Returns(new Dictionary <ResultType, IResult>() { [ResultType.Final] = mockedResult.Object }); var collectionOfBets = new List <IBet>() { bet }; var betController = new BetController(); betController.SetupCheckedBets(collectionOfBets); Assert.IsTrue(bet.IsChecked); }
public void SetupCheckedBets_ShouldSetCorrectLosingBetAccountBalance_WithValidParams(string inputString, FinalResultMarks finalResultMark) { this.ResetParams(); var account = new BetfairAccount(this.accountName, this.accountBalance, this.accountCurrency, this.accountRake); var line = new BetLine(account, this.lineName, this.lineStepAmount, this.decreasingStepValue); var bet = new RegularBet(this.mockedMatch.Object, line, finalResultMark.ToString(), this.amount, this.coefficient, this.mockedTipster.Object); var mockedResult = new Mock <IFinalResult>(); mockedResult.Reset(); mockedResult.Setup(r => r.GetMark()).Returns(inputString); this.mockedMatch.Setup(m => m.Results).Returns(new Dictionary <ResultType, IResult>() { [ResultType.Final] = mockedResult.Object }); var collectionOfBets = new List <IBet>() { bet }; var betController = new BetController(); betController.SetupCheckedBets(collectionOfBets); Assert.AreEqual(startAccountValue - this.amount, bet.Line.Account.Balance); }
public void DeleteBet_UserDoesNotHaveBet_ThrowsForbiddenException() { var user = new UserDto() { Id = 1 }; var bet = new BetDto() { Id = 1337, UserId = 1234, CreationDate = DateTime.Now }; //Arrange Mock <IUserRepository> mockUserRepository = new Mock <IUserRepository>(); Mock <ILoginRepository> mockLoginRepository = new Mock <ILoginRepository>(); Mock <IBetRepository> mockBetRepository = new Mock <IBetRepository>(); mockLoginRepository.Setup(l => l.HasUserAndToken(user.Id, It.IsAny <string>())).Returns(true); mockBetRepository.Setup(b => b.Get(bet.Id)).Returns(bet); var controller = new BetController(mockUserRepository.Object, mockLoginRepository.Object, mockBetRepository.Object); var requestMessage = new HttpRequestMessage(); requestMessage.Headers.Add("DiceGaming-Token", "token"); controller.Request = requestMessage; controller.Configuration = new HttpConfiguration(); //Act / Assert Assert.Throws <ForbiddenException>(() => controller.DeleteBet(user.Id, bet.Id)); }
public void Call() { Balance -= BetController.GetHighestBet() - CurrentBid; CurrentBid = BetController.GetHighestBet(); PrintMessageView.PrintNewLineMessage($"{Name} called"); ContextsData.MessageLogContext.AddMessageLog($"{Name} called"); }
public void CantUpdateMissingBet() { Assert.Null(BetController.Put(new Bet() { Id = Guid.NewGuid().ToString() })); }
public void CanGetSpecificBet() { var mockEvent = Common.CreateAndSaveMockEvent(EventController); var mockMarket = Common.CreateAndSaveMockMarket(mockEvent.Id, "Market Desc", 0.5m, MarketController); var mockBet = Common.CreateAndSaveMockBet(mockMarket.Id, 100, BetController); Assert.Equal(BetController.Get(mockBet.Id).BetAmount, mockBet.BetAmount); }
public async Task Bet_EnoughMoney_CreatesBetAndReturnsBetInfoAndOKStatusCode() { var user = new UserDto() { Id = 1, Money = 1234 }; int diceSumResult = 0; //Arrange Mock <IUserRepository> mockUserRepository = new Mock <IUserRepository>(); Mock <ILoginRepository> mockLoginRepository = new Mock <ILoginRepository>(); Mock <IBetRepository> mockBetRepository = new Mock <IBetRepository>(); mockLoginRepository.Setup(l => l.HasUserAndToken(user.Id, It.IsAny <string>())).Returns(true); mockUserRepository.Setup(u => u.Get(user.Id)).Returns(user); mockBetRepository.Setup(b => b.Create(It.IsAny <BetDto>())).Returns <BetDto>(x => { x.Id = 1; // set bet Id to 1 diceSumResult = x.DiceSumResult; // save result of dice throw. Used in assertion of win amount return(x); }); var controller = new BetController(mockUserRepository.Object, mockLoginRepository.Object, mockBetRepository.Object); var requestMessage = new HttpRequestMessage(); requestMessage.Headers.Add("DiceGaming-Token", "token"); controller.Request = requestMessage; controller.Configuration = new HttpConfiguration(); //Act var betRequest = new BetRequest() { Bet = 10, Stake = 200 }; var timeBeforeBet = DateTime.Now; var response = await controller.Bet(user.Id, betRequest); var timeAfterBet = DateTime.Now; //Assert dynamic content = response.Content; var win = (decimal)content.Value.Win; mockUserRepository.Verify(u => u.UpdateMoney(user.Id, It.IsAny <decimal>())); Assert.IsTrue(content.Value.BetId == 1); Assert.IsTrue(content.Value.Bet == betRequest.Bet); Assert.IsTrue(content.Value.Stake == betRequest.Stake); Assert.IsTrue(betRequest.Bet == diceSumResult ? win > 0 : win == 0); var timestamp = (DateTime)content.Value.Timestamp; Assert.IsTrue(timeBeforeBet < timestamp); Assert.IsTrue(timestamp < timeAfterBet); Assert.IsTrue(response.StatusCode == HttpStatusCode.Created); }
public with_a_BetController() { player_authenticator = MockRepository.GenerateStub <IPlayerAuthenticator>(); command_bus = MockRepository.GenerateStub <ICommandBus>(); query_service = MockRepository.GenerateStub <IQueryService>(); bet_command_mapper = MockRepository.GenerateStub <ICommandMapper <BetCommand, BetView> >(); SUT = new BetController(player_authenticator, command_bus, query_service, bet_command_mapper); }
public void CanDeleteBet() { var mockEvent = Common.CreateAndSaveMockEvent(EventController); var mockMarket = Common.CreateAndSaveMockMarket(mockEvent.Id, "Market Desc", 0.5m, MarketController); var mockBet = Common.CreateAndSaveMockBet(mockMarket.Id, 100, BetController); BetController.Delete(mockBet.Id); Assert.Empty(BetController.Get()); }
public void Setup() { // Create mocks. userContext = Substitute.For <IUserContext>(); // Create the controller. uut = new BetController(Factory, userContext); uut.ControllerContext = new ControllerContext(); }
public static Bet CreateAndSaveMockBet(string marketId, decimal betAmount, BetController betController) { var newBet = new Bet() { MarketId = marketId, BetAmount = betAmount }; return(betController.Post(newBet)); }
public void Raise(uint raiseValue) { if (raiseValue > PlayerController.GetAllBalances().Min()) { raiseValue = PlayerController.GetAllBalances().Min(); } Balance -= BetController.GetHighestBet() + raiseValue - CurrentBid; CurrentBid = BetController.GetHighestBet() + raiseValue; PrintMessageView.PrintNewLineMessage($"{Name} raised {raiseValue}"); ContextsData.MessageLogContext.AddMessageLog($"{Name} raised {raiseValue}"); }
public void CanGetAllBets() { var mockEvent = Common.CreateAndSaveMockEvent(EventController); var mockMarket = Common.CreateAndSaveMockMarket(mockEvent.Id, "Market Desc", 0.5m, MarketController); var mockBet = Common.CreateAndSaveMockBet(mockMarket.Id, 100, BetController); var mockBet2 = Common.CreateAndSaveMockBet(mockMarket.Id, 100, BetController); var mockBet3 = Common.CreateAndSaveMockBet(mockMarket.Id, 100, BetController); Assert.Equal(3, BetController.Get().Count); }
public void CanPutExistingBet() { var mockEvent = Common.CreateAndSaveMockEvent(EventController); var mockMarket = Common.CreateAndSaveMockMarket(mockEvent.Id, "Market Desc", 0.5m, MarketController); var mockBet = Common.CreateAndSaveMockBet(mockMarket.Id, 100, BetController); mockBet.BetAmount = 234; BetController.Put(mockBet); Assert.Equal(234, BetController.Get(mockBet.Id).BetAmount); }
public static void PrintGame() { Console.Clear(); PlayerInfoView.PrintAllNamesAndBalances(); CardView.PrintBoard(); CardView.PrintHand(); Console.WriteLine(PlayerData.User.ToString()); Console.WriteLine($"Current pool: {BetController.GetSumOfBets()}"); Console.WriteLine("Message log:"); }
public override void DoAction() { if (BetController.PlayerCanCall(this)) { base.Call(); } else { PrintMessageView.PrintNewLineMessage($"{Name} passed"); ContextsData.MessageLogContext.AddMessageLog($"{Name} passed"); } }
public MarketTests() { var betRepo = new BetRepository(); var marketRepo = new MarketRepository(); var eventRepo = new EventRepository(); var betService = new BetService(betRepo, eventRepo, marketRepo); var marketService = new MarketService(marketRepo, betService); var eventService = new EventService(eventRepo, marketService); MarketController = new MarketController(marketService); EventController = new EventController(eventService); BetController = new BetController(betService); }
public void BetController_GetAllTotalAmountBets_Success_ZeroValue() { //arrange var expectedValue = 0; var controller = new BetController(_mockBetBL.Object); _mockBetBL.Setup(x => x.GetTotalAmount()).Returns(expectedValue); //act var result = controller.GetAllTotalAmountBets(); //assert Assert.AreEqual(expectedValue, result); }
public static string[] AskUser() { if (BetController.GetHighestBet() > PlayerData.User.CurrentBid) { Console.Write("Call/Raise/Fold? "); } else { Console.Write("Pass/Raise/Fold? "); } string[] command = Console.ReadLine().Trim().Split(' ').Select(x => x.ToLower()).ToArray(); return(command); }
public BetView(BetController BetController) { this.BetController = BetController; InitializeComponent(); int Balance = BetController.GameController.Game.Player.Balance; BalanceInput.Text = Balance > 0 ? Balance.ToString() : BetController.GameController.Game.Player.Owing.ToString(); BetInput.KeyPress += new KeyPressEventHandler(BetInputEnterKey); DoneButton.Click += new EventHandler(GetBetInput); CancelButton.Click += new EventHandler(CancelBetEvent); }
public async Task GetBet_UserHasBet_ReturnsBetInfoAndOKStatusCode() { var user = new UserDto() { Id = 1 }; var bet = new BetDto() { Id = 1337, UserId = user.Id, DiceSumBet = 10, DiceSumResult = 8, Win = 0, Stake = 20, CreationDate = DateTime.Now }; //Arrange Mock <IUserRepository> mockUserRepository = new Mock <IUserRepository>(); Mock <ILoginRepository> mockLoginRepository = new Mock <ILoginRepository>(); Mock <IBetRepository> mockBetRepository = new Mock <IBetRepository>(); mockLoginRepository.Setup(l => l.HasUserAndToken(user.Id, It.IsAny <string>())).Returns(true); mockBetRepository.Setup(b => b.Get(bet.Id)).Returns(bet); var controller = new BetController(mockUserRepository.Object, mockLoginRepository.Object, mockBetRepository.Object); var requestMessage = new HttpRequestMessage(); requestMessage.Headers.Add("DiceGaming-Token", "token"); controller.Request = requestMessage; controller.Configuration = new HttpConfiguration(); //Act var response = await controller.GetBet(user.Id, bet.Id); //Assert dynamic content = response.Content; Assert.IsTrue(content.Value.CreationDate == bet.CreationDate); Assert.IsTrue(content.Value.Bet == bet.DiceSumBet); Assert.IsTrue(content.Value.Stake == bet.Stake); Assert.IsTrue(content.Value.Win == bet.Win); Assert.IsTrue(content.Value.ActualRoll == bet.DiceSumResult); Assert.IsTrue(response.StatusCode == HttpStatusCode.OK); }
public override void DoAction() { string[] command = CommandView.AskUser().ToArray(); switch (command[0]) { case "raise": try { uint.Parse(command[1]); } catch (Exception) { PrintMessageView.PrintNewLineMessage("Invalid data type!"); this.DoAction(); break; } if (uint.Parse(command[1]) > this.Balance) { PrintMessageView.PrintNewLineMessage("Invalid amount! Amount must be lower than user's balance!"); this.DoAction(); break; } else { base.Raise(uint.Parse(command[1])); } break; case "call": if (BetController.PlayerCanCall(this)) { base.Call(); } break; case "fold": base.Fold(); break; case "stop": case "end": Engine.Playing = false; break; default: PrintMessageView.PrintNewLineMessage($"{Name} passed"); ContextsData.MessageLogContext.AddMessageLog($"{Name} passed"); break; } }
public void SetupCheckedBets_ShouldSetBetCheckedPropertyFalse_WithMatchWithoutResults() { this.ResetParams(); this.mockedLine.Setup(x => x.Account.Balance).Returns(100m); this.mockedLine.Setup(x => x.LeftValueToBeBet()).Returns(this.lineValueToBeWin); var firstBet = new RegularBet(this.mockedMatch.Object, this.mockedLine.Object, mark.ToString(), this.amount, this.coefficient, this.mockedTipster.Object); var collectionOfBets = new List <IBet>() { firstBet }; var betController = new BetController(); betController.SetupCheckedBets(collectionOfBets); Assert.IsFalse(firstBet.IsChecked); }
public void OneTimeSetUp() { _data = new Dictionary <string, object> { { "Authorization", _token } }; _betController = new BetController { Configuration = new HttpConfiguration() }; _context = new OwinContext(_data); _authHeader = new AuthenticationHeaderValue(_token); _userManager = SingletonManager.Instance.SetUserManager(Substitute.For <IUserManager>()); _betManager = SingletonManager.Instance.SetBetManager(Substitute.For <IBetManager>()); _matchManager = SingletonManager.Instance.SetMatchManager(Substitute.For <IMatchManager>()); SingletonManager.Instance.SetTokenManager(new TokenManager()); for (var i = 0; i < 3; i++) { _bets.Add(new Bet()); } }
public void AllMethodsWithTokenAuth_InvalidToken_ThrowsForbiddenException() { //Arrange Mock <IUserRepository> mockUserRepository = new Mock <IUserRepository>(); Mock <ILoginRepository> mockLoginRepository = new Mock <ILoginRepository>(); Mock <IBetRepository> mockBetRepository = new Mock <IBetRepository>(); mockLoginRepository.Setup(l => l.HasUserAndToken(1, "token")).Returns(false); // simulate invalid token var controller = new BetController(mockUserRepository.Object, mockLoginRepository.Object, mockBetRepository.Object); var requestMessage = new HttpRequestMessage(); requestMessage.Headers.Add("DiceGaming-Token", "token"); controller.Request = requestMessage; controller.Configuration = new HttpConfiguration(); //Act / Assert Assert.Throws <ForbiddenException>(() => controller.Bet(1, new BetRequest())); Assert.Throws <ForbiddenException>(() => controller.GetBets(1, string.Empty, string.Empty, string.Empty)); Assert.Throws <ForbiddenException>(() => controller.GetBet(1, 1)); Assert.Throws <ForbiddenException>(() => controller.DeleteBet(1, 1)); }
public async Task DeleteBet_UserHasBetAndOneMinuteHaveNotPassed_DeletesBetAndReturnsNoContentStatusCode() { var user = new UserDto() { Id = 1 }; var bet = new BetDto() { Id = 1337, UserId = user.Id, CreationDate = DateTime.Now }; //Arrange Mock <IUserRepository> mockUserRepository = new Mock <IUserRepository>(); Mock <ILoginRepository> mockLoginRepository = new Mock <ILoginRepository>(); Mock <IBetRepository> mockBetRepository = new Mock <IBetRepository>(); mockLoginRepository.Setup(l => l.HasUserAndToken(user.Id, It.IsAny <string>())).Returns(true); mockBetRepository.Setup(b => b.Get(bet.Id)).Returns(bet); var controller = new BetController(mockUserRepository.Object, mockLoginRepository.Object, mockBetRepository.Object); var requestMessage = new HttpRequestMessage(); requestMessage.Headers.Add("DiceGaming-Token", "token"); controller.Request = requestMessage; controller.Configuration = new HttpConfiguration(); //Act var response = await controller.DeleteBet(user.Id, bet.Id); //Assert mockBetRepository.Verify(b => b.Delete(bet.Id)); Assert.IsTrue(response.StatusCode == HttpStatusCode.NoContent); }