コード例 #1
0
        public async Task GetBalance_Should_ThrowWalletNotFoundException()
        {
            // Arrange
            var service = new PlayerService(PlayerRepositoryMock.Get().Object);
            var players = PlayersList.Get();

            // Act & Assert
            var result = await Assert.ThrowsAsync <WalletNotFound>(() => service.GetBalance(players[0].Id));

            // Assert
            Assert.Equal("Wallet not found.", result.Message);
        }
コード例 #2
0
        public async Task GetBalance_Should_GetBalance()
        {
            // Arrange
            var service = new PlayerService(PlayerRepositoryMock.Get().Object);
            var players = PlayersList.Get();

            // Act
            var result = await service.GetBalance(players[1].Id);

            // Assert
            Assert.Equal(players[1].Wallet.Balance, result);
        }
コード例 #3
0
        public async Task CreatePlayer_Should_ThrowPlayerAlreadyExistsException()
        {
            // Arrange
            var service = new PlayerService(PlayerRepositoryMock.Get().Object);
            var players = PlayersList.Get();

            // Act & Assert
            var result = await Assert.ThrowsAsync <PlayerAlreadyExistsException>(() => service.CreatePlayer(players[0].Name, players[0].Email));

            // Assert
            Assert.Equal("Player with this email is already registered.", result.Message);
        }
コード例 #4
0
        public async Task RegisterWallet_Should_AcceptTransaction()
        {
            // Arrange
            var service = new PlayerService(PlayerRepositoryMock.Get().Object);
            var players = PlayersList.Get();

            // Act
            var result = await service.AddTransaction(players[1].Id, TransactionType.Stake, 10);

            // Assert
            Assert.True(result);
        }
コード例 #5
0
        public async Task RegisterWallet_Should_WalletNotFoundException()
        {
            // Arrange
            var service = new PlayerService(PlayerRepositoryMock.Get().Object);
            var players = PlayersList.Get();

            // Act & Assert
            var result = await Assert.ThrowsAsync <WalletNotFound>(() => service.AddTransaction(players[0].Id, TransactionType.Deposit, 10));

            // Assert
            Assert.Equal("Wallet not found.", result.Message);
        }
コード例 #6
0
        public async Task RegisterWallet_Should_WalletAlreadyRegisteredException()
        {
            // Arrange
            var service = new PlayerService(PlayerRepositoryMock.Get().Object);
            var players = PlayersList.Get();

            // Act & Assert
            var result = await Assert.ThrowsAsync <WalletAlreadyRegisteredException>(() => service.RegisterWallet(players[1].Id));

            // Assert
            Assert.Equal("Wallet for this player is already registered.", result.Message);
        }
コード例 #7
0
        public async Task RegisterWallet_Should_RegisterWallet()
        {
            // Arrange
            var service = new PlayerService(PlayerRepositoryMock.Get().Object);
            var players = PlayersList.Get();

            // Act
            var result = await service.RegisterWallet(players[0].Id);

            // Assert
            Assert.NotNull(result.Wallet);
            Assert.Equal(0, result.Wallet.Balance);
        }
コード例 #8
0
        public static Mock <IPlayerRepository> Get()
        {
            var players = PlayersList.Get();

            var mock = new Mock <IPlayerRepository>();

            mock.Setup(repo => repo.GetPlayer(players[0].Id)).ReturnsAsync(players[0]);
            mock.Setup(repo => repo.GetPlayer(players[0].Email)).ReturnsAsync(players[0]);
            mock.Setup(repo => repo.GetPlayer(players[1].Id)).ReturnsAsync(players[1]);
            mock.Setup(repo => repo.GetPlayer(players[1].Email)).ReturnsAsync(players[1]);

            mock.Setup(repo => repo.CreatePlayer(It.IsAny <Player>())).Returns <Player>(x => Task.FromResult(x));
            mock.Setup(repo => repo.UpdatePlayer(It.IsAny <Player>())).Returns <Player>(x => Task.FromResult(x));
            mock.Setup(repo => repo.AddTransaction(It.IsAny <Transaction>())).Returns <Transaction>(x => Task.FromResult(x));

            return(mock);
        }