public override ITransactionResult Transaction(object parameters)
        {
            var billPayParams = (BillPayParameters)parameters;

            TestConfig.TestSettings = new IntegrationTestSettingsModel {
                AcEnvironment = billPayParams.Environment
            };

            var amtRangeParsed = Enum.TryParse(billPayParams?.AmtRange, true, out AmountRange amtRange);
            var billPayRequest = new BillPayOperationRequest
            {
                Biller = new TestBiller {
                    Code = billPayParams?.BillerCode, ValidAccountNumber = billPayParams?.BillerAccountNumber
                },
                AmtRange       = amtRangeParsed ? amtRange : AmountRange.CustomAmount,
                Amount         = (double)billPayParams.CustomAmount,
                AgentState     = billPayParams.GetAgentState(),
                ThirdPartyType = billPayParams.ThirdPartyType,
                AgentId        = billPayParams.AgentId,
                AgentPos       = billPayParams.AgentPos
            };

            billPayRequest.PopulateAgentData(billPayParams.AgentState);
            var billPayData = new BillPayData(billPayRequest);

            _billPayOperations.CompleteSession(billPayData);

            return(new TransactionResult {
                Result = billPayData
            });
        }
        public void BillPay_CompleteTransactionWithNoIdsOrThirdParty()
        {
            var request = new BillPayOperationRequest
            {
                AgentState     = AgentLocation.MN,
                Biller         = Billers.HubbardAttorney,
                AmtRange       = AmountRange.NoIdsNoThirdParty,
                ThirdPartyType = TestThirdPartyType.None
            };

            request.PopulateAgentData(request.AgentState);
            var billPayData = new BillPayData(request);

            _billPayOperations.CompleteSession(billPayData);

            var completeSessionResponse = billPayData.CompleteSessionResponse;

            Assert.IsFalse(string.IsNullOrEmpty(completeSessionResponse.Payload.ReferenceNumber));
        }