public void GetStateInfo_InputIsNull_ShouldThrowDomainServiceException()
        {
            // ARRANGE
            var stateInfoService = new StateInfoService(MockGatewayService.Object);

            stateInfoService.LoggingService = MockLoggingService.Object;

            // ACT
            var result = stateInfoService.GetStateInfo(null)?.name;

            // ASSERT
        }
        //[DeploymentItem(@"TestData\AllStates.txt", "DataFolder")]
        public void GetStateInfo_NoMatch_ShouldReturnNull()
        {
            // ARRANGE
            var input            = "Not existing state";
            var stateInfoService = new StateInfoService(MockGatewayService.Object);

            stateInfoService.LoggingService = MockLoggingService.Object;

            // ACT
            var result = stateInfoService.GetStateInfo(input)?.name;

            // ASSERT
            Assert.AreEqual(null, result);
        }
        public void GetStateInfo_InputIsCaseInsensitive_ShouldReturnStateInfo()
        {
            // ARRANGE
            var input            = "gUaM";
            var stateInfoService = new StateInfoService(MockGatewayService.Object);

            stateInfoService.LoggingService = MockLoggingService.Object;

            // ACT
            var result = stateInfoService.GetStateInfo(input)?.name;

            // ASSERT
            Assert.AreEqual("Guam", result);
        }
        //[DeploymentItem(@"TestData\AllStates.txt", "DataFolder")]
        public void GetStateInfo_HappyPath_ShouldReturnStateInfo()
        {
            // ARRANGE
            var input            = "AL";
            var stateInfoService = new StateInfoService(MockGatewayService.Object);

            stateInfoService.LoggingService = MockLoggingService.Object;

            // ACT
            var result = stateInfoService.GetStateInfo(input)?.name;

            // ASSERT
            Assert.AreEqual("Alabama", result);
        }
        public void GetStateInfo_GatewayServiceException_ShouldThrowDomainServiceException()
        {
            // ARRANGE
            var input = "gUaM";

            MockGatewayService.Setup(x => x.GetStatesInfo()).Throws <GatewayServiceException>();
            var stateInfoService = new StateInfoService(MockGatewayService.Object);

            stateInfoService.LoggingService = MockLoggingService.Object;

            // ACT
            var result = stateInfoService.GetStateInfo(input)?.name;

            // ASSERT
        }