Ejemplo n.º 1
0
        /// <summary>
        ///     Run this transaction.
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override ITransactionResult Transaction(object parameters)
        {
            var sendReversalParameters = (SendReversalParameters)parameters;

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

            var amtRangeParsed       = Enum.TryParse(sendReversalParameters.AmtRange, true, out AmountRange amtRange);
            var itemChoiceTypeParsed = Enum.TryParse(sendReversalParameters.FeeType, true, out ItemChoiceType1 itemChoiceType);
            var sendRequest          = new SendRequest
            {
                Environment         = sendReversalParameters.Environment,
                AgentCountryIsoCode = sendReversalParameters.AgentCountryIsoCode,
                AgentId             = sendReversalParameters.AgentId,
                AgentPos            = sendReversalParameters.AgentPos,
                AgentState          = sendReversalParameters.GetAgentState(),
                Amount         = (double)sendReversalParameters.CustomAmount,
                AmtRange       = amtRangeParsed ? amtRange : AmountRange.CustomAmount,
                Country        = sendReversalParameters.Country,
                State          = sendReversalParameters.State,
                FeeType        = itemChoiceTypeParsed ? itemChoiceType : ItemChoiceType1.amountExcludingFee,
                SendCurr       = sendReversalParameters.SendCurr,
                ServiceOption  = sendReversalParameters.ServiceOption,
                ThirdPartyType = sendReversalParameters.ThirdPartyType
            };

            var sendData = new SendData(sendRequest);

            sendData = SendOperations.SendCompleteForNewCustomer(sendData);

            var sendReversalRequest = new SendReversalRequest
            {
                AgentId             = sendReversalParameters.AgentId,
                AgentPos            = sendReversalParameters.AgentPos,
                AgentCountryIsoCode = sendReversalParameters.AgentCountryIsoCode,
                AgentState          = sendReversalParameters.AgentState,
                ReferenceNumber     = sendData.CompleteSessionResp.Payload.ReferenceNumber,
                RefundReason        = new EnumeratedIdentifierInfo {
                    Identifier = sendReversalParameters.RefundReason
                },
                RefundFee = sendReversalParameters.RefundFee
            };

            var sendReversalData = new SendReversalData(sendReversalRequest);

            sendReversalData = SendReversalOperations.SendReversalComplete(sendReversalData);

            return(new TransactionResult {
                Result = sendReversalData
            });
        }
Ejemplo n.º 2
0
        public void SendReversal_ShouldSucceedForSendingAgent()
        {
            var sendRequest = new SendRequest
            {
                AgentState = AgentLocation.MN,
                Country    = Country.Usa,
                State      = State.Ny,
                SendCurr   = Currency.Usd,
                AmtRange   = AmountRange.NoIdsNoThirdParty,
                FeeType    = ItemChoiceType1.amountIncludingFee
            };

            sendRequest.PopulateAgentData(sendRequest.AgentState);

            var sendData = new SendData(sendRequest);

            sendData = sendOperations.SendCompleteForExistingCustomer(sendData);
            var sendCompleteSessionResponse = sendData.CompleteSessionResp;

            Assert.IsFalse(sendData.Errors.Any(), $" {Environment.NewLine}Errors: {Environment.NewLine}{sendData.Errors?.Log()}");
            Assert.IsFalse(sendCompleteSessionResponse.Errors.Any(), "Send Failed.");

            //Get the transaction reference number
            string referenceNumber = sendCompleteSessionResponse.Payload.ReferenceNumber;

            //SendReversal with single validate
            var sendReversalRequest = new SendReversalRequest
            {
                AgentState      = AgentLocation.MN,
                ReferenceNumber = referenceNumber
            };

            sendReversalRequest.PopulateAgentData(sendReversalRequest.AgentState);

            var sendReversalData = new SendReversalData(sendReversalRequest);

            sendReversalData = sendReversalOperations.SingleValidate(sendReversalData);
            var lastValidationResponse = sendReversalData.ValidationResponses.LastOrDefault();

            // ASSERT ALL THE THINGS
            Assert.IsFalse(sendReversalData.Errors.Any(), $" {Environment.NewLine}Errors: {Environment.NewLine}{sendReversalData.Errors?.Log()}");
            Assert.IsTrue(lastValidationResponse.Payload.ReadyForCommit || lastValidationResponse.Payload.FieldsToCollect.Any());
        }
Ejemplo n.º 3
0
        public void SendReversal_TransactionLookup()
        {
            var sendRequest = new SendRequest
            {
                AgentState = AgentLocation.MN,
                Country    = Country.Usa,
                State      = State.Ny,
                SendCurr   = Currency.Usd,
                AmtRange   = AmountRange.NoIdsNoThirdParty,
                FeeType    = ItemChoiceType1.amountIncludingFee
            };

            sendRequest.PopulateAgentData(sendRequest.AgentState);

            var sendData = new SendData(sendRequest);

            sendData = sendOperations.SendCompleteForExistingCustomer(sendData);
            var sendCompleteSessionResponse = sendData.CompleteSessionResp;

            Assert.IsFalse(sendData.Errors.Any(), $" {Environment.NewLine}Errors: {Environment.NewLine}{sendData.Errors?.Log()}");
            Assert.IsFalse(sendCompleteSessionResponse.Errors.Any(), "Send Failed.");

            //Get the transaction reference number
            var referenceNumber = sendCompleteSessionResponse.Payload.ReferenceNumber;
            //Transaction lookup
            var sendReversalRequest = new SendReversalRequest
            {
                AgentState      = AgentLocation.MN,
                ReferenceNumber = referenceNumber
            };

            sendReversalRequest.PopulateAgentData(sendReversalRequest.AgentState);

            var sendReversalData = new SendReversalData(sendReversalRequest);

            sendReversalData = sendReversalOperations.TransactionLookup(sendReversalData);
            var tranLookupResponse = sendReversalData.TransactionLookup.TransactionLookupResp;

            //ASSERT the resposne.
            Assert.IsFalse(tranLookupResponse.Errors.Any(), $" {Environment.NewLine}Errors: {Environment.NewLine}{tranLookupResponse.Errors?.Log()}");
            Assert.IsTrue(tranLookupResponse.Payload.TransactionStatus == TransactionStatusType.AVAIL);
            Assert.IsFalse(string.IsNullOrEmpty(tranLookupResponse.Payload.MgiSessionID));
        }
Ejemplo n.º 4
0
        public void SendReversalTransaction_Complete()
        {
            var sendRequest = new SendRequest
            {
                AgentState = AgentLocation.MN,
                Country    = Country.Usa,
                State      = State.Ny,
                SendCurr   = Currency.Usd,
                AmtRange   = AmountRange.NoIdsNoThirdParty,
                FeeType    = ItemChoiceType1.amountIncludingFee
            };

            sendRequest.PopulateAgentData(sendRequest.AgentState);

            var sendData = new SendData(sendRequest);

            sendData = sendOperations.SendCompleteForExistingCustomer(sendData);
            var sendCompleteSessionResponse = sendData.CompleteSessionResp;

            Assert.IsFalse(sendData.Errors.Any(), $" {Environment.NewLine}Errors: {Environment.NewLine}{sendData.Errors?.Log()}");
            Assert.IsFalse(sendCompleteSessionResponse.Errors.Any(), "Send Failed.");

            string referenceNumber     = sendCompleteSessionResponse.Payload.ReferenceNumber;
            var    sendReversalRequest = new SendReversalRequest
            {
                AgentState      = AgentLocation.MN,
                ReferenceNumber = referenceNumber,
                RefundReason    = new EnumeratedIdentifierInfo {
                    Identifier = "NO_RCV_LOC"
                },
                RefundFee = true
            };

            sendReversalRequest.PopulateAgentData(sendReversalRequest.AgentState);

            var sendReversalData = new SendReversalData(sendReversalRequest);

            sendReversalData = sendReversalOperations.SendReversalComplete(sendReversalData);
            Assert.IsFalse(sendReversalData.Errors.Any(), $" {Environment.NewLine}Errors: {Environment.NewLine}{sendReversalData.Errors?.Log()}");
            Assert.IsFalse(string.IsNullOrEmpty(sendReversalData.CompleteSessionResp.Payload.ReferenceNumber));
        }
Ejemplo n.º 5
0
        public void SendReversalTransaction_ShouldFailForNonSendingAgent()
        {
            var sendRequest = new SendRequest
            {
                AgentState = AgentLocation.MN,
                Country    = Country.Usa,
                State      = State.Ny,
                SendCurr   = Currency.Usd,
                AmtRange   = AmountRange.NoIdsNoThirdParty,
                FeeType    = ItemChoiceType1.amountIncludingFee
            };

            sendRequest.PopulateAgentData(sendRequest.AgentState);

            var sendData = new SendData(sendRequest);

            sendData = sendOperations.SendCompleteForExistingCustomer(sendData);
            var sendCompleteSessionResponse = sendData.CompleteSessionResp;

            Assert.IsFalse(sendData.Errors.Any(), $" {Environment.NewLine}Errors: {Environment.NewLine}{sendData.Errors?.Log()}");
            Assert.IsFalse(sendCompleteSessionResponse.Errors.Any(), "Send Failed.");

            string referenceNumber = sendCompleteSessionResponse.Payload.ReferenceNumber;

            var sendReversalRequest = new SendReversalRequest
            {
                AgentState      = AgentLocation.NY,
                ReferenceNumber = referenceNumber
            };

            sendReversalRequest.PopulateAgentData(sendReversalRequest.AgentState);

            var sendReversalData = new SendReversalData(sendReversalRequest);

            sendReversalData = sendReversalOperations.SingleValidate(sendReversalData);
            Assert.IsFalse(sendReversalData.Errors.Any(), $" {Environment.NewLine}Errors: {Environment.NewLine}{sendReversalData.Errors?.Log()}");

            var lastValidationResponse = sendReversalData.ValidationResponses.LastOrDefault();

            Assert.IsTrue(lastValidationResponse.Errors.Any());
        }
Ejemplo n.º 6
0
 public void Set(SendReversalRequest sendReversalRequest)
 {
     SendReversalRequest = sendReversalRequest;
     SetExecutionOrder(nameof(SendReversalRequest));
 }
Ejemplo n.º 7
0
 public SendReversalData(SendReversalRequest sendReversalRequest)
 {
     Set(sendReversalRequest);
     Init();
 }