Exemplo n.º 1
0
        public async Task UserClient_GetMoney_ToUserThatDoesExist_ReturnsMoney()
        {
            // arrange
            var amount = Rng.Next();

            var          channel = GetChannel();
            var          client  = new User.UserClient(channel);
            const string id      = "1";

            var addQuery = new UserMoneyQuery
            {
                Id     = id,
                Amount = amount
            };

            var getQuery = new UserQuery
            {
                Id = id
            };

            // act
            var addResult = await client.AddMoneyAsync(addQuery);

            var getResult = await client.GetMoneyAsync(getQuery);

            // assert
            Assert.AreEqual(Status.Success, addResult.Status, "AddMoney() failed.");
            Assert.AreEqual(Status.Success, getResult.Status, "GetMoney() failed.");
            Assert.AreEqual(amount, getResult.Amount);
        }
Exemplo n.º 2
0
        public async Task UserClient_AddMoney_ToUserThatDoesExist_ReturnsExtraMoney()
        {
            // arrange
            var startingAmount   = Rng.Next(20);
            var additionalAmount = Rng.Next(20);

            var          channel = GetChannel();
            var          client  = new User.UserClient(channel);
            const string id      = "1";

            var createQuery = new UserMoneyQuery
            {
                Id     = id,
                Amount = startingAmount
            };

            var addQuery = new UserMoneyQuery
            {
                Id     = id,
                Amount = additionalAmount
            };

            // act
            var createResult = await client.AddMoneyAsync(createQuery);

            var addResult = await client.AddMoneyAsync(addQuery);

            // assert
            Assert.AreEqual(Status.Success, createResult.Status, "AddMoney() failed.");
            Assert.AreEqual(Status.Success, addResult.Status, "AddMoney() failed.");
            Assert.AreEqual(startingAmount + additionalAmount, addResult.Amount);
        }
Exemplo n.º 3
0
        public override async Task <UserMoneyResult> RemoveMoney(UserMoneyQuery request, ServerCallContext context)
        {
            var result = await _database.RemoveUserMoneyAsync(request.Id, request.Amount);

            return(result.Success
                                ? new UserMoneyResult {
                Status = Status.Success, Amount = result.Value
            }
                                : new UserMoneyResult {
                Status = Status.Failed
            });
        }
Exemplo n.º 4
0
        public async Task UserClient_AddMoney_ToUserThatDoesNotExist_ReturnsSameMoney()
        {
            // arrange
            var amount = Rng.Next();

            var          channel = GetChannel();
            var          client  = new User.UserClient(channel);
            const string id      = "1";

            var query = new UserMoneyQuery
            {
                Id     = id,
                Amount = amount
            };

            // act
            var result = await client.AddMoneyAsync(query);

            // assert
            Assert.AreEqual(Status.Success, result.Status, "AddMoney() failed.");
            Assert.AreEqual(amount, result.Amount);
        }