public void Writes_Expected_ProcessSalesAdjustment_Request_With_Signature() { var sigGen = new Hmac256SignatureGenerator("dy33vQhksVsv"); var writer = new SignedRequestWriter(sigGen); var request = new ProcessSalesAdjustmentRequest() { MerchantId = "30299999", DeviceId = "d555", OperatorId = "test_operator", PosVersion = "123", ClientTransactionReference = "tnx-ref1", PurchaseReference = "123456789", Amount = 10 }; 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_purchase_ref\":\"123456789\",\"x_amount\":1000,\"x_merchant_id\":\"30299999\",\"x_device_id\":\"d555\",\"x_firmware_version\":\"123\",\"x_operator_id\":\"test_operator\",\"signature\":\"77d67d8dbae3aa2b403adc65c4e957af6dd918e62276a1cae0fadac743433f3b\"}", result); Assert.IsTrue(result.Contains("ce20e2f1a9fe0d92b3d021ba7f1b372b006778cfab5fc4c09efa60a6d910c471")); }
public async Task ProcessSalesAdjustmentAsync_Validates_PurchaseReference_NotOverLength() { var client = CreateTestClient(); var request = new ProcessSalesAdjustmentRequest() { ClientTransactionReference = "0123456789", PurchaseReference = "0123456789012345678901234567890123456789012345678901234567890123456789", Amount = 10 }; _ = await client.ProcessSalesAdjustmentAsync(request); }
public void ProcessSalesAdjustmentRequest_Validates_Ok_When_Valid() { var request = new ProcessSalesAdjustmentRequest() { OperatorId = "Yort", DeviceId = Environment.GetEnvironmentVariable("Humm_Test_Sandbox_DeviceId"), MerchantId = Environment.GetEnvironmentVariable("Humm_Test_Sandbox_MerchantId"), PosVersion = "1.0", ClientTransactionReference = "0123456789", PurchaseReference = "012345678901234567890", Amount = 10 }; request.Validate(); }
public async Task ProcessSalesAdjustmentAsync_Throws_Without_DeviceKey() { var client = CreateTestClient(); client.SetDeviceKey(null); var request = new ProcessSalesAdjustmentRequest() { MerchantId = "30299999", DeviceId = "d555", OperatorId = "test_operator", PosVersion = "123", ClientTransactionReference = "tnx-ref1", PurchaseReference = "123456789", Amount = 10 }; _ = await client.ProcessSalesAdjustmentAsync(request); }