public void PaymentDetailsWcfThrowsFaultExceptionValidationFaultThrowsServiceValidationException()
        {
            var exception = new FaultException <ValidationFault>(new ValidationFault {
                Details = new List <ValidationDetail> {
                    new ValidationDetail {
                        Key = "Key", Message = "Message"
                    }
                }
            });

            var inModel = new PaymentsModel {
                PaymentId = 439457997, PaymentSeqNo = 0
            };
            var request  = MappingEngine.Map <ClmPaymentDtlGetRequest>(inModel);
            var response = new ClmPaymentDtlGetResponse {
                OutHistoryGroup = new List <OutHistoryGroup>().ToArray()
            };

            var outModel = MappingEngine.Map <PaymentsModel>(response);

            mockMappingEngine.Setup(m => m.Map <ClmPaymentDtlGetRequest>(inModel)).Returns(request);
            mockPaymentHistoryWcf.Setup(m => m.GetPaymentDetails(request)).Throws(exception);
            mockMappingEngine.Setup(m => m.Map <PaymentsModel>(response)).Returns(outModel);

            SystemUnderTest().GetPaymentDetails(inModel);
        }
        public void PaymentDetailsValidResults()
        {
            var inModel = new PaymentsModel {
                PaymentId = 439457997, PaymentSeqNo = 0
            };
            var request  = MappingEngine.Map <ClmPaymentDtlGetRequest>(inModel);
            var response = new ClmPaymentDtlGetResponse {
                OutHistoryGroup = new List <OutHistoryGroup> {
                    new OutHistoryGroup {
                        PchAmount = 12345678
                    }
                }.ToArray()
            };
            var outModel = MappingEngine.Map <PaymentsModel>(response);

            mockMappingEngine.Setup(m => m.Map <ClmPaymentDtlGetRequest>(inModel)).Returns(request);
            mockPaymentHistoryWcf.Setup(m => m.GetPaymentDetails(request)).Returns(response);
            mockMappingEngine.Setup(m => m.Map <PaymentsModel>(response)).Returns(outModel);

            var result = SystemUnderTest().GetPaymentDetails(inModel);

            Assert.IsTrue(result.ListOfPayments.Count() == outModel.ListOfPayments.Count());
            Assert.IsTrue(result.ListOfPayments.First().StatusCode == outModel.ListOfPayments.First().StatusCode);
            mockMappingEngine.Verify(m => m.Map <ClmPaymentDtlGetRequest>(inModel), Times.Once());
            mockPaymentHistoryWcf.Verify(m => m.GetPaymentDetails(request), Times.Once());
            mockMappingEngine.Verify(m => m.Map <PaymentsModel>(response), Times.Once());
        }
        public void PaymentDetailsThrowsFaultExceptionThrowsServiceValidationException()
        {
            var exception = new FaultException(new FaultReason("reason"), new FaultCode("code"));

            var inModel = new PaymentsModel {
                PaymentId = 439457997, PaymentSeqNo = 0
            };
            var request  = MappingEngine.Map <ClmPaymentDtlGetRequest>(inModel);
            var response = new ClmPaymentDtlGetResponse {
                OutHistoryGroup = new List <OutHistoryGroup>().ToArray()
            };

            var outModel = MappingEngine.Map <PaymentsModel>(response);

            mockMappingEngine.Setup(m => m.Map <ClmPaymentDtlGetRequest>(inModel)).Returns(request);
            mockPaymentHistoryWcf.Setup(m => m.GetPaymentDetails(request)).Throws(exception);
            mockMappingEngine.Setup(m => m.Map <PaymentsModel>(response)).Returns(outModel);

            SystemUnderTest().GetPaymentDetails(inModel);
        }