public async Task Client_Does_Not_Validate_When_Config_Disables_Validation() { var apiSelector = new HummApiUrlSelector() { Country = HummCountry.Australia, Environment = HummEnvironment.Dummy }; var config = new HummClientConfiguration() { BaseApiUrl = apiSelector.GetUrl(), DeviceId = "d555", MerchantId = "30299999", PosVersion = "1.0", DeviceKey = "1234567890", AutoValidateRequests = false }; var client = new HummClient(config); var request = new SendReceiptRequest() { OperatorId = "Yort", DeviceId = Environment.GetEnvironmentVariable("Humm_Test_Sandbox_DeviceId"), MerchantId = Environment.GetEnvironmentVariable("Humm_Test_Sandbox_MerchantId"), PosVersion = "1.0", ClientTransactionReference = null, ReceiptNumber = null }; var response = await client.SendReceiptAsync(request); Assert.IsNotNull(response); Assert.AreEqual(RequestStates.Error, response.Status); }
public async Task SendReceiptAsync_Validates_ReceiptNumber_NotOverLength() { var client = CreateTestClient(); var request = new SendReceiptRequest() { ClientTransactionReference = "0123456789", ReceiptNumber = "0123456789012345678901234567890123456789012345678901234567890123456789" }; _ = await client.SendReceiptAsync(request); }
public async Task SendReceiptAsync_Validates_ClientTransactionReference_NotEmpty() { var client = CreateTestClient(); var request = new SendReceiptRequest() { ClientTransactionReference = String.Empty, ReceiptNumber = "0123456789" }; _ = await client.SendReceiptAsync(request); }
public void SendReceiptRequest_Validates_Ok_When_Valid() { var request = new SendReceiptRequest() { OperatorId = "Yort", DeviceId = Environment.GetEnvironmentVariable("Humm_Test_Sandbox_DeviceId"), MerchantId = Environment.GetEnvironmentVariable("Humm_Test_Sandbox_MerchantId"), PosVersion = "1.0", ClientTransactionReference = "0123456789", ReceiptNumber = "01234567890A" }; request.Validate(); }
public async Task SendReceiptAsync_Throws_Without_DeviceKey() { var client = CreateTestClient(); client.SetDeviceKey(null); var request = new SendReceiptRequest() { MerchantId = "30299999", DeviceId = "d555", OperatorId = "test_operator", PosVersion = "123", ClientTransactionReference = "tnx-ref1", ReceiptNumber = "NewReceipt" }; _ = await client.SendReceiptAsync(request); }
public void Writes_Expected_SendReceipt_Request_With_Signature() { var sigGen = new Hmac256SignatureGenerator("dy33vQhksVsv"); var writer = new SignedRequestWriter(sigGen); var request = new SendReceiptRequest() { MerchantId = "30299999", DeviceId = "d555", OperatorId = "test_operator", PosVersion = "123", ClientTransactionReference = "tnx-ref1", ReceiptNumber = "NewReceipt" }; var result = writer.WriteRequest(request); //Note: The signature expected here is different to the one shown in the Humm sample page (https://docs.shophumm.com.au/pos/api_information/http_examples/). //The sample C# code provided by Humm at (https://docs.shophumm.com.au/pos/security/signature_generation/) generates the same code used here //and this signature gen works with the API endpoints, so it would appear the sample was updated using a different key or something, and the //sample signature is now incorrect. Assert.AreEqual("{\"x_pos_transaction_ref\":\"tnx-ref1\",\"x_receipt_number\":\"NewReceipt\",\"x_merchant_id\":\"30299999\",\"x_device_id\":\"d555\",\"x_firmware_version\":\"123\",\"x_operator_id\":\"test_operator\",\"signature\":\"ac164e40585474838641bde1ad9bab08b6e6e0ab0c2dae814298e4fcef9c52fa\"}", result); Assert.IsTrue(result.Contains("ac164e40585474838641bde1ad9bab08b6e6e0ab0c2dae814298e4fcef9c52fa")); }