public void Recv_ValidationUntilReadyForCommit() { var sendRequest = new SendRequest { AgentState = AgentLocation.MN, Country = Country.Usa, State = State.Ny, SendCurr = Currency.Usd, AmtRange = AmountRange.NoIdsNoThirdParty, FeeType = ItemChoiceType1.amountExcludingFee }; sendRequest.PopulateAgentData(sendRequest.AgentState); var sendData = new SendData(sendRequest); var receiveRequest = new ReceiveRequest { AgentState = AgentLocation.NY, ThirdPartyType = TestThirdPartyType.None }; receiveRequest.PopulateAgentData(receiveRequest.AgentState); var receiveData = new ReceiveData(receiveRequest); SendOperations.SendCompleteForNewCustomer(sendData); receiveData.Set(sendData); ReceiveOperations.ValidateUntilReadyForCommitForReceive(receiveData); var receiveValidationResponse = receiveData.ReceiveValidationResponses?.FirstOrDefault(); // ASSERT ALL THE THINGS Assert.IsFalse(sendData.Errors.Any(), $" {Environment.NewLine}Errors: {Environment.NewLine}{sendData.Errors?.Log()}"); Assert.IsTrue(receiveValidationResponse != null && receiveValidationResponse.Payload.ReadyForCommit); }
public void TestSetup() { var testRunner = new TestRunner(); sendReversalOperations = new SendReversalOperations(testRunner); sendOperations = new SendOperations(testRunner); }
public void Recv_Complete() { var sendRequest = new SendRequest { AgentState = AgentLocation.MN, Country = Country.Usa, State = State.Ny, SendCurr = Currency.Usd, AmtRange = AmountRange.NoIdsNoThirdParty, FeeType = ItemChoiceType1.amountExcludingFee }; sendRequest.PopulateAgentData(sendRequest.AgentState); var sendData = new SendData(sendRequest); var receiveRequest = new ReceiveRequest { AgentState = AgentLocation.NY, ThirdPartyType = TestThirdPartyType.None }; receiveRequest.PopulateAgentData(receiveRequest.AgentState); var receiveData = new ReceiveData(receiveRequest); sendData = SendOperations.SendCompleteForNewCustomer(sendData); receiveData.Set(sendData); receiveData = ReceiveOperations.ReceiveComplete(receiveData); var transLookupResponse = TranLookupOperations.TransactionLookupForStatus(receiveRequest.AgentId, receiveRequest.AgentPos, receiveData.CompleteSessionResponse.Payload.ReferenceNumber); // ASSERT ALL THE THINGS Assert.IsFalse(sendData.Errors.Any(), $" {Environment.NewLine}Errors: {Environment.NewLine}{sendData.Errors?.Log()}"); Assert.IsFalse(receiveData.Errors.Any(), $" {Environment.NewLine}Errors: {Environment.NewLine}{sendData.Errors?.Log()}"); Assert.IsTrue(transLookupResponse.TransactionLookupResp.Payload.TransactionStatus == TransactionStatusType.RECVD); }
public async Task SendRequestAsync_WaitsTillAllDataSent() { var payLoadSender = new PayloadSender(); var tcs = new TaskCompletionSource <bool>(); DisconnectedEventHandler eventHandler = (sender, args) => { tcs.TrySetException(new Exception(args.Reason)); }; payLoadSender.Disconnected += eventHandler; payLoadSender.Connect(GetMockedTransportSender(tcs, TransportConstants.MaxPayloadLength * 4)); var sendOperations = new SendOperations(payLoadSender); try { using (var stream = GetMockedStream(TransportConstants.MaxPayloadLength * 4)) { var request = new StreamingRequest(); request.AddStream(new StreamContent(stream)); await sendOperations.SendRequestAsync(Guid.NewGuid(), request); } await tcs.Task; } finally { payLoadSender.Disconnected -= eventHandler; } }
public void TestSetup() { var testRunner = new TestRunner(); amendOperations = new AmendOperations(testRunner); sendOperations = new SendOperations(testRunner); }
public void TestSetup() { var testRunner = new TestRunner(); ReceiveOperations = new ReceiveOperations(testRunner); SendOperations = new SendOperations(testRunner); TranLookupOperations = new TransactionLookupOperations(testRunner); }
/// <summary> /// Constructor. /// </summary> /// <param name="messageBus">Message bus used to publish results</param> /// <param name="sendParameters">Send parameter view model needed to create transaction</param> /// <param name="agentSelector">agent parameter view model needed to create transaction</param> /// <param name="sendOperations">Send operations parameter</param> public SendHandler(IMessageBus messageBus, ISendParametersViewModel sendParameters, IAgentSelectorViewModel agentSelector, SendOperations sendOperations) { SendOperations = sendOperations; _messageBus = messageBus; _sendParameters = sendParameters; _agentSelector = agentSelector; }
/// <summary> /// Constructor. /// </summary> /// <param name="messageBus">Message bus used to publish results</param> /// <param name="stagedReceiveViewModel">Send parameter view model needed to create transaction</param> /// <param name="agentSelector">agent parameter view model needed to create transaction</param> /// <param name="sendOperations">Send operations parameter</param> public StagedReceiveHandler(IMessageBus messageBus, IStagedReceiveViewModel stagedReceiveViewModel, IAgentSelectorViewModel agentSelector, SendOperations sendOperations, ReceiveOperations receiveOperations) { SendOperations = sendOperations; ReceiveOperations = receiveOperations; _messageBus = messageBus; _stagedReceiveViewModel = stagedReceiveViewModel; _agentSelector = agentSelector; }
public void TestSetup() { var testRunner = new TestRunner(); receiveReversalOperations = new ReceiveReversalOperations(testRunner); _sendOperations = new SendOperations(testRunner); _recvOperations = new ReceiveOperations(testRunner); _tranLookupOperations = new TransactionLookupOperations(testRunner); }
/// <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 async Task SendCancelStreamAsync() { var guid = Guid.NewGuid(); var sender = new MockPayloadSender(); var ops = new SendOperations(sender); await ops.SendCancelStreamAsync(guid); var header = sender.SentHeaders.FirstOrDefault(); Assert.Equal(guid, header.Id); Assert.Equal(PayloadTypes.CancelStream, header.Type); Assert.True(header.End); }
public ProtocolAdapter(RequestHandler requestHandler, IRequestManager requestManager, IPayloadSender payloadSender, IPayloadReceiver payloadReceiver, object handlerContext = null) { _requestHandler = requestHandler; _handlerContext = handlerContext; _requestManager = requestManager; _payloadSender = payloadSender; _payloadReceiver = payloadReceiver; _sendOperations = new SendOperations(_payloadSender); _streamManager = new StreamManager(OnCancelStream); _assemblerManager = new PayloadAssemblerManager(_streamManager, OnReceiveRequestAsync, OnReceiveResponseAsync); _payloadReceiver.Subscribe(_assemblerManager.GetPayloadStream, _assemblerManager.OnReceive); }
public async Task SendResponseAsync() { var sender = new PayloadSender(); var transport = new MockTransportSender(); sender.Connect(transport); var ops = new SendOperations(sender); var content = new StringContent("/a/b", Encoding.ASCII); var response = StreamingResponse.CreateResponse(HttpStatusCode.OK, content); await ops.SendResponseAsync(Guid.NewGuid(), response); Assert.Equal(4, transport.Buffers.Count); }
/// <summary> /// Run this transaction /// </summary> /// <param name="parameters"></param> /// <returns></returns> public override ITransactionResult Transaction(object parameters) { var sendParameters = (SendParameters)parameters; TestConfig.TestSettings = new IntegrationTestSettingsModel { AcEnvironment = sendParameters.Environment }; var amtRangeParsed = Enum.TryParse(sendParameters?.AmtRange, true, out AmountRange amtRange); var itemChoiceTypeParsed = Enum.TryParse(sendParameters?.FeeType, true, out ItemChoiceType1 itemChoiceType); var sendRequest = new SendRequest { Environment = sendParameters.Environment, AgentCountryIsoCode = sendParameters.AgentCountryIsoCode, AgentId = sendParameters.AgentId, AgentPos = sendParameters.AgentPos, AgentState = sendParameters.GetAgentState(), Amount = (double)sendParameters.CustomAmount, AmtRange = amtRangeParsed ? amtRange : AmountRange.CustomAmount, Country = sendParameters.Country, State = sendParameters.State, FeeType = itemChoiceTypeParsed ? itemChoiceType : ItemChoiceType1.amountExcludingFee, SendCurr = sendParameters.SendCurr, ServiceOption = sendParameters.ServiceOption, ThirdPartyType = sendParameters.ThirdPartyType }; var sendData = new SendData(sendRequest); sendData = SendOperations.SendCompleteForExistingCustomer(sendData); var referenceNumber = sendData?.CompleteSessionResp?.Payload?.ReferenceNumber; var amendRequest = new AmendOperationRequest { AgentState = sendParameters.AgentState, ReferenceNumber = referenceNumber }; amendRequest.PopulateAgentData(sendParameters.AgentState); var amendData = new AmendData(amendRequest); amendData.Set(sendData); AmendOperations.AmendComplete(amendData); return(new TransactionResult { Result = amendData }); }
public async Task RequestDisassembler_WithJsonStream_Sends() { var sender = new PayloadSender(); var transport = new MockTransportSender(); sender.Connect(transport); var ops = new SendOperations(sender); var request = StreamingRequest.CreatePost("/a/b"); request.AddStream(new StringContent("abc", Encoding.ASCII)); await ops.SendRequestAsync(Guid.NewGuid(), request); Assert.AreEqual(4, transport.Buffers.Count); }
/// <summary> /// Implements transaction for Send /// </summary> /// <param name="parameters"></param> /// <returns>Transaction result</returns> public override ITransactionResult Transaction(object parameters) { var sendParameters = (SendParameters)parameters; TestConfig.TestSettings = new IntegrationTestSettingsModel { AcEnvironment = sendParameters.Environment }; var amtRangeParsed = Enum.TryParse(sendParameters?.AmtRange, true, out AmountRange amtRange); var itemChoiceTypeParsed = Enum.TryParse(sendParameters?.FeeType, true, out ItemChoiceType1 itemChoiceType); var sendRequest = new SendRequest { Environment = sendParameters.Environment, AgentCountryIsoCode = sendParameters.AgentCountryIsoCode, AgentId = sendParameters.AgentId, AgentPos = sendParameters.AgentPos, AgentState = sendParameters.GetAgentState(), Amount = (double)sendParameters.CustomAmount, AmtRange = amtRangeParsed ? amtRange : AmountRange.CustomAmount, Country = sendParameters.Country, State = sendParameters.State, FeeType = itemChoiceTypeParsed ? itemChoiceType : ItemChoiceType1.amountExcludingFee, SendCurr = sendParameters.SendCurr, ServiceOption = sendParameters.ServiceOption, ThirdPartyType = sendParameters.ThirdPartyType }; var receiveAgentState = sendParameters.State.Split('-')[1]; var receiveRequest = new ReceiveRequest { AgentState = receiveAgentState, ThirdPartyType = sendParameters.ThirdPartyType }; var sendData = new SendData(sendRequest); sendData = SendOperations.SendCompleteForNewCustomer(sendData); var receiveData = new ReceiveData(receiveRequest); receiveData.Set(sendData); receiveData = ReceiveOperations.ReceiveCompleteStaged(receiveData); return(new TransactionResult { Result = receiveData }); }
public async Task RequestDisassembler_WithVariableStream_Sends() { var sender = new PayloadSender(); var transport = new MockTransportSender(); sender.Connect(transport); var ops = new SendOperations(sender); var request = StreamingRequest.CreatePost("/a/b"); var stream = new PayloadStream(new PayloadStreamAssembler(null, Guid.NewGuid(), "blah", 100)); stream.Write(new byte[100], 0, 100); request.AddStream(new StreamContent(stream)); await ops.SendRequestAsync(Guid.NewGuid(), request); Assert.AreEqual(5, transport.Buffers.Count); }
public void Recv_StageReceive_SmallAmount_NewCustomer() { var sendRequest = new SendRequest { AgentState = AgentLocation.MN, Country = Country.Usa, State = State.Ny, SendCurr = Currency.Usd, AmtRange = AmountRange.UnderOneHundred, FeeType = ItemChoiceType1.amountExcludingFee, ThirdPartyType = TestThirdPartyType.None }; sendRequest.PopulateAgentData(sendRequest.AgentState); var sendData = new SendData(sendRequest); sendData = SendOperations.SendCompleteForNewCustomer(sendData); var receiveRequest = new ReceiveRequest() { AgentState = AgentLocation.NY, ThirdPartyType = TestThirdPartyType.None }; receiveRequest.PopulateAgentData(receiveRequest.AgentState); var receiveData = new ReceiveData(receiveRequest); receiveData.Set(sendData); receiveData = ReceiveOperations.ReceiveCompleteStaged(receiveData); receiveData = ReceiveOperations.TransactionLookupForReceiveCompletion(receiveData); // ASSERT ALL THE THINGS Assert.IsFalse(sendData.Errors.Any(), $" {Environment.NewLine}Errors: {Environment.NewLine}{sendData.Errors?.Log()}"); Assert.IsFalse(receiveData.Errors.Any(), $" {Environment.NewLine}Errors: {Environment.NewLine}{sendData.Errors?.Log()}"); Assert.IsFalse(receiveData.TransactionLookupResponse.Errors.Any(), $" {Environment.NewLine}Errors: {Environment.NewLine}{receiveData.TransactionLookupResponse.Errors?.Log()}"); Assert.IsTrue(receiveData.TransactionLookupResponse.Payload.TransactionStatus == TransactionStatusType.AVAIL); }
public void TestSetup() { _sendOperations = new SendOperations(new TestRunner()); }
public void TestSetup() { _repo = new TrainingModeRepository(); _sendOperations = new SendOperations(new TestRunner(true)); _billPayOperations = new BillPayOperations(new TestRunner(true)); }