public void GetSpecificUserTest()
        {
            var loyalty     = new LoyaltyManager(_context);
            var createdUser = loyalty.CreateUser("George", "Bush", "*****@*****.**");

            var queriedUser = loyalty.GetUser(createdUser.UserId);

            Assert.AreEqual("George", queriedUser.FirstName);
            Assert.AreEqual("Bush", queriedUser.LastName);
            Assert.AreEqual("*****@*****.**", queriedUser.Email);
        }
        public void TransferPointsInsufficientPointsTest()
        {
            var loyalty = new LoyaltyManager(_context);
            var user    = loyalty.CreateUser("George", "Clooney", "*****@*****.**");

            Assert.AreEqual(0, user.Points);

            loyalty.TransferPoints(user.UserId, -10);
            var queriedUser = loyalty.GetUser(user.UserId);

            Assert.AreEqual(10, user.Points);
        }
        public void TransferPointsTest()
        {
            var loyalty = new LoyaltyManager(_context);
            var user    = loyalty.CreateUser("George", "Orwell", "*****@*****.**");

            Assert.AreEqual(0, user.Points);

            var transfer    = loyalty.TransferPoints(user.UserId, 10);
            var queriedUser = loyalty.GetUser(user.UserId);

            Assert.AreEqual(10, user.Points);
            Assert.AreEqual(10, transfer.Amount);

            var queriedTransfer = loyalty.EnumerateTransfers(user.UserId).Last();

            Assert.AreEqual(transfer.TransferId, queriedTransfer.TransferId);
            Assert.AreEqual(10, queriedTransfer.Amount);
        }
 public IActionResult GetUser(long id)
 {
     try
     {
         var user = _database.GetUser(id);
         return(Ok(new
         {
             Id = user.UserId,
             user.Email,
             user.FirstName,
             user.LastName,
             user.Points
         }));
     }
     catch (InvalidOperationException)
     {
         return(NotFound("User not found."));
     }
 }