/// <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 }); }
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()); }
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)); }
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)); }
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()); }
public void Set(SendReversalRequest sendReversalRequest) { SendReversalRequest = sendReversalRequest; SetExecutionOrder(nameof(SendReversalRequest)); }
public SendReversalData(SendReversalRequest sendReversalRequest) { Set(sendReversalRequest); Init(); }