public async Task ResolvePostalCode_WhenCalledWithCountryCodeAndPostalCode_ReturnsOkObjectResult()
        {
            Controller sut = CreateSut();

            IActionResult result = await sut.ResolvePostalCode(_fixture.Create <string>(), _fixture.Create <string>());

            Assert.That(result, Is.TypeOf <OkObjectResult>());
        }
        public async Task ResolvePostalCode_WhenCalledWithCountryCodeAndPostalCode_ReturnsOkObjectResultWhereValueIsPostalCodeViewModel()
        {
            Controller sut = CreateSut();

            OkObjectResult result = (OkObjectResult)await sut.ResolvePostalCode(_fixture.Create <string>(), _fixture.Create <string>());

            Assert.That(result.Value, Is.TypeOf <PostalCodeViewModel>());
        }
        public async Task ResolvePostalCode_WhenCalledWithCountryCodeAndPostalCode_AssertQueryAsyncWasCalledOnQueryBus()
        {
            Controller sut = CreateSut();

            string countryCode = _fixture.Create <string>();
            string postalCode  = _fixture.Create <string>();
            await sut.ResolvePostalCode(countryCode, postalCode);

            _queryBusMock.Verify(m => m.QueryAsync <IGetPostalCodeQuery, IPostalCode>(It.Is <IGetPostalCodeQuery>(value => string.CompareOrdinal(value.CountryCode, countryCode.ToUpper()) == 0 && string.CompareOrdinal(value.PostalCode, postalCode) == 0)), Times.Once);
        }
        public void ResolvePostalCode_WhenCalledWithPostalCodeEqualToEmpty_ThrowsArgumentNullException()
        {
            Controller sut = CreateSut();

            ArgumentNullException result = Assert.ThrowsAsync <ArgumentNullException>(async() => await sut.ResolvePostalCode(_fixture.Create <string>(), string.Empty));

            Assert.That(result.ParamName, Is.EqualTo("postalCode"));
        }
        public void ResolvePostalCode_WhenCalledWithCountryCodeEqualToWhiteSpace_ThrowsArgumentNullException()
        {
            Controller sut = CreateSut();

            ArgumentNullException result = Assert.ThrowsAsync <ArgumentNullException>(async() => await sut.ResolvePostalCode(" ", _fixture.Create <string>()));

            Assert.That(result.ParamName, Is.EqualTo("countryCode"));
        }