Example #1
0
        public async Task ShouldReturnBadRequestWithValidErrorMessageGivenUserMonthlySavingLessThanThousand()
        {
            var userModel = new UserModel()
            {
                Id              = Guid.NewGuid(),
                Name            = "Test",
                Email           = $"{Guid.NewGuid()}@test.com.au",
                MonthlySalary   = 5500,
                MonthlyExpenses = 5000
            };

            await CreateUser(userModel);

            //Try creating Account
            StringContent httpContent = TestHelper.CreateHttpContentFromModel
                                            (new AccountCreateRequestModel()
            {
                UserId = userModel.Id
            });

            var accountCreateResponse = await client.PostAsync(ApiUrl.AccountApiUrl, httpContent);

            Assert.AreEqual(HttpStatusCode.BadRequest, accountCreateResponse.StatusCode, "Invalid Http Status Code");

            var errorMessage = await TestHelper
                               .GetErrorMessageFromBadRequestContent(accountCreateResponse.Content);

            Assert.AreEqual("Monthly Salary - Monthly Expenses less than 1000", errorMessage);
        }
        public async Task ShouldReturnBadRequestWithValidErrorMessageGivenEmailAlreadyExists()
        {
            var userModel = new UserModel()
            {
                Id              = Guid.NewGuid(),
                Name            = "Test",
                Email           = $"{Guid.NewGuid()}@test.com.au",
                MonthlySalary   = 10000,
                MonthlyExpenses = 5000
            };

            StringContent httpContentForFirstTry = TestHelper.CreateHttpContentFromModel(userModel);

            var createResponseForFirstTry = await client.PostAsync(ApiUrl.UserApiUrl, httpContentForFirstTry);

            Assert.AreEqual(HttpStatusCode.Created, createResponseForFirstTry.StatusCode, "Failed at create");

            var secondUser = new UserModel()
            {
                Id              = Guid.NewGuid(),
                Name            = "TestName 2",
                Email           = userModel.Email,
                MonthlySalary   = 10000,
                MonthlyExpenses = 5000
            };

            StringContent httpContentForSecondTry    = TestHelper.CreateHttpContentFromModel(secondUser);
            var           createResponseForSecondTry = await client.PostAsync(ApiUrl.UserApiUrl, httpContentForSecondTry);

            Assert.AreEqual(HttpStatusCode.BadRequest, createResponseForSecondTry.StatusCode, "Invalid Http Status Code");

            var errorMessage = await TestHelper
                               .GetErrorMessageFromBadRequestContent(createResponseForSecondTry.Content);

            Assert.AreEqual("Email already exists", errorMessage);
        }