public async Task VoucherManagementACLApplicationService_GetVoucher_HttpRequestExceptionErrorInGetVoucher_GetVoucherNotSuccessful() { Mock <IVoucherManagementClient> voucherManagementClient = new Mock <IVoucherManagementClient>(); voucherManagementClient.Setup(v => v.GetVoucher(It.IsAny <String>(), It.IsAny <Guid>(), It.IsAny <String>(), It.IsAny <CancellationToken>())) .ThrowsAsync(new Exception("Error", new HttpRequestException(TestData.HttpRequestErrorResponseMessage))); Mock <ISecurityServiceClient> securityServiceClient = new Mock <ISecurityServiceClient>(); securityServiceClient.Setup(s => s.GetToken(It.IsAny <String>(), It.IsAny <String>(), It.IsAny <CancellationToken>())).ReturnsAsync(TestData.TokenResponse); IVoucherManagementACLApplicationService applicationService = new Services.VoucherManagementACLApplicationService(securityServiceClient.Object, voucherManagementClient.Object); GetVoucherResponse voucherResponse = await applicationService.GetVoucher(TestData.EstateId, TestData.ContractId, TestData.VoucherCode, CancellationToken.None); voucherResponse.ShouldNotBeNull(); voucherResponse.ResponseMessage.ShouldBe(TestData.HttpRequestErrorResponseMessage); voucherResponse.ResponseCode.ShouldBe(TestData.HttpRequestErrorResponseCode); }
public async Task VoucherManagementACLApplicationService_GetVoucher_VoucherRetrieved() { Mock <IVoucherManagementClient> voucherManagementClient = new Mock <IVoucherManagementClient>(); voucherManagementClient.Setup(v => v.GetVoucher(It.IsAny <String>(), It.IsAny <Guid>(), It.IsAny <String>(), It.IsAny <CancellationToken>())) .ReturnsAsync(TestData.GetVoucherResponse); Mock <ISecurityServiceClient> securityServiceClient = new Mock <ISecurityServiceClient>(); securityServiceClient.Setup(s => s.GetToken(It.IsAny <String>(), It.IsAny <String>(), It.IsAny <CancellationToken>())).ReturnsAsync(TestData.TokenResponse); IVoucherManagementACLApplicationService applicationService = new Services.VoucherManagementACLApplicationService(securityServiceClient.Object, voucherManagementClient.Object); GetVoucherResponse voucherResponse = await applicationService.GetVoucher(TestData.EstateId, TestData.ContractId, TestData.VoucherCode, CancellationToken.None); voucherResponse.ShouldNotBeNull(); voucherResponse.VoucherCode.ShouldBe(TestData.GetVoucherResponse.VoucherCode); voucherResponse.ContractId.ShouldBe(TestData.ContractId); voucherResponse.EstateId.ShouldBe(TestData.EstateId); voucherResponse.ExpiryDate.ShouldBe(TestData.GetVoucherResponse.ExpiryDate); voucherResponse.Value.ShouldBe(TestData.GetVoucherResponse.Value); voucherResponse.VoucherId.ShouldBe(TestData.GetVoucherResponse.VoucherId); }
/*public async Task<ProcessLogonTransactionResponse> ProcessLogonTransaction(Guid estateId, * Guid merchantId, * DateTime transactionDateTime, * String transactionNumber, * String deviceIdentifier, * CancellationToken cancellationToken) * { * // Get a client token to call the Transaction Processor * String clientId = ConfigurationReader.GetValue("AppSettings", "ClientId"); * String clientSecret = ConfigurationReader.GetValue("AppSettings", "ClientSecret"); * * TokenResponse accessToken = await this.SecurityServiceClient.GetToken(clientId, clientSecret, cancellationToken); * * LogonTransactionRequest logonTransactionRequest = new LogonTransactionRequest(); * logonTransactionRequest.TransactionNumber = transactionNumber; * logonTransactionRequest.DeviceIdentifier = deviceIdentifier; * logonTransactionRequest.TransactionDateTime = transactionDateTime; * logonTransactionRequest.TransactionType = "LOGON"; * * SerialisedMessage requestSerialisedMessage = new SerialisedMessage(); * requestSerialisedMessage.Metadata.Add("EstateId", estateId.ToString()); * requestSerialisedMessage.Metadata.Add("MerchantId", merchantId.ToString()); * requestSerialisedMessage.SerialisedData = JsonConvert.SerializeObject(logonTransactionRequest, * new JsonSerializerSettings * { * TypeNameHandling = TypeNameHandling.All * }); * * ProcessLogonTransactionResponse response = null; * * try * { * SerialisedMessage responseSerialisedMessage = * await this.TransactionProcessorClient.PerformTransaction(accessToken.AccessToken, requestSerialisedMessage, cancellationToken); * * LogonTransactionResponse logonTransactionResponse = JsonConvert.DeserializeObject<LogonTransactionResponse>(responseSerialisedMessage.SerialisedData); * * response = new ProcessLogonTransactionResponse * { * ResponseCode = logonTransactionResponse.ResponseCode, * ResponseMessage = logonTransactionResponse.ResponseMessage, * EstateId = estateId, * MerchantId = merchantId * }; * } * catch(Exception ex) * { * if (ex.InnerException is InvalidOperationException) * { * // This means there is an error in the request * response = new ProcessLogonTransactionResponse * { * ResponseCode = "0001", // Request Message error * ResponseMessage = ex.InnerException.Message, * EstateId = estateId, * MerchantId = merchantId * }; * } * else if (ex.InnerException is HttpRequestException) * { * // Request Send Exception * response = new ProcessLogonTransactionResponse * { * ResponseCode = "0002", // Request Message error * ResponseMessage = "Error Sending Request Message", * EstateId = estateId, * MerchantId = merchantId * }; * } * else * { * response = new ProcessLogonTransactionResponse * { * ResponseCode = "0003", // General error * ResponseMessage = "General Error", * EstateId = estateId, * MerchantId = merchantId * }; * } * } * * return response; * }*/ #endregion /// <summary> /// Processes the logon transaction. /// </summary> /// <param name="estateId">The estate identifier.</param> /// <param name="contractId">The contract identifier.</param> /// <param name="voucherCode">The voucher code.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns></returns> public async Task <GetVoucherResponse> GetVoucher(Guid estateId, Guid contractId, String voucherCode, CancellationToken cancellationToken) { // Get a client token to call the Voucher Management String clientId = ConfigurationReader.GetValue("AppSettings", "ClientId"); String clientSecret = ConfigurationReader.GetValue("AppSettings", "ClientSecret"); TokenResponse accessToken = await this.SecurityServiceClient.GetToken(clientId, clientSecret, cancellationToken); GetVoucherResponse response = null; try { VoucherManagement.DataTransferObjects.GetVoucherResponse getVoucherResponse = await this.VoucherManagementClient.GetVoucher(accessToken.AccessToken, estateId, voucherCode, cancellationToken); response = new GetVoucherResponse { ResponseCode = "0000", // Success ContractId = contractId, EstateId = estateId, ExpiryDate = getVoucherResponse.ExpiryDate, Value = getVoucherResponse.Value, VoucherCode = getVoucherResponse.VoucherCode, VoucherId = getVoucherResponse.VoucherId, Balance = getVoucherResponse.Balance }; } catch (Exception ex) { if (ex.InnerException is InvalidOperationException) { // This means there is an error in the request response = new GetVoucherResponse { ResponseCode = "0001", // Request Message error ResponseMessage = ex.InnerException.Message, }; } else if (ex.InnerException is HttpRequestException) { // Request Send Exception response = new GetVoucherResponse { ResponseCode = "0002", // Request Message error ResponseMessage = "Error Sending Request Message", }; } else { response = new GetVoucherResponse { ResponseCode = "0003", // General error ResponseMessage = "General Error", }; } } return(response); }