public async Task SaveApplicationWhenValidModel()
        {
            CreditCardApplication savedApplication = null;

            _mockRepository.Setup(Xunit => Xunit.AddAsync(It.IsAny <CreditCardApplication>()))
            .Returns(Task.CompletedTask)
            .Callback <CreditCardApplication>(x => savedApplication = x);

            var application = new NewCreditCardApplicationDetails
            {
                FirstName           = "Sarah",
                LastName            = "Smith",
                Age                 = 18,
                FrequentFlyerNumber = "012345-A",
                GrossAnnualIncome   = 100_000
            };

            await _sut.Index(application);

            _mockRepository.Verify(
                x => x.AddAsync(It.IsAny <CreditCardApplication>()), Times.Once);

            Assert.Equal(application.FirstName, savedApplication.FirstName);
            Assert.Equal(application.LastName, savedApplication.LastName);
            Assert.Equal(application.Age, savedApplication.Age);
            Assert.Equal(application.FrequentFlyerNumber, savedApplication.FrequentFlyerNumber);
            Assert.Equal(application.GrossAnnualIncome, savedApplication.GrossAnnualIncome);
        }