private async Task <Country> Given_ACountryInTheDatabaseWithSomeUpdatedProperties_When_UpdateCountryIsInvokedWithTheUpdatedCountry_Then_TheUpdatedCountryIsReturned(Country country)
        {
            try
            {
                country.Alpha2Code          = TestData.CaCountryAbbreviation;
                country.FullName            = TestData.CaCountryName;
                country.PhoneNumberRegex    = TestData.CaPhoneNumberRegex;
                country.PostalCodeRegex     = TestData.CaPostalCodeRegex;
                country.CreatedByUserId     = TestData.CountryCreatedByIdForUpdate;
                country.CreatedOn           = TestData.NonServiceGeneratedCountryCreatedOn;
                country.LastUpdatedByUserId = TestData.CountryLastUpdatedById;
                country.LastUpdatedOn       = TestData.NonServiceGeneratedCountryLastUpdatedOn;

                var countryReturned = await CountriesClient.UpdateCountry(country);

                Assert.AreEqual(TestData.CaCountryAbbreviation, countryReturned.Alpha2Code);
                Assert.AreEqual(TestData.CaCountryName, countryReturned.FullName);
                Assert.AreEqual(TestData.CaPhoneNumberRegex, countryReturned.PhoneNumberRegex);
                Assert.AreEqual(TestData.CaPostalCodeRegex, countryReturned.PostalCodeRegex);
                Assert.AreNotEqual(TestData.CountryCreatedByIdForUpdate, countryReturned.CreatedByUserId);
                Assert.AreNotEqual(TestData.NonServiceGeneratedCountryCreatedOn, countryReturned.CreatedOn);
                Assert.AreEqual(country.Id, countryReturned.Id);
                Assert.AreEqual(TestData.CountryLastUpdatedById, countryReturned.LastUpdatedByUserId);
                Assert.AreNotEqual(TestData.NonServiceGeneratedCountryLastUpdatedOn, countryReturned.LastUpdatedOn);

                country = countryReturned;
            }
            catch (Exception e)
            {
                Assert.Fail($"{e.Message}\n{e.StackTrace}");
            }

            return(country);
        }