Exemple #1
0
        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);
        }
Exemple #2
0
        public async Task SendReceiptAsync_Validates_ReceiptNumber_NotOverLength()
        {
            var client = CreateTestClient();

            var request = new SendReceiptRequest()
            {
                ClientTransactionReference = "0123456789",
                ReceiptNumber = "0123456789012345678901234567890123456789012345678901234567890123456789"
            };

            _ = await client.SendReceiptAsync(request);
        }
Exemple #3
0
        public async Task SendReceiptAsync_Validates_ClientTransactionReference_NotEmpty()
        {
            var client = CreateTestClient();

            var request = new SendReceiptRequest()
            {
                ClientTransactionReference = String.Empty,
                ReceiptNumber = "0123456789"
            };

            _ = await client.SendReceiptAsync(request);
        }
Exemple #4
0
        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"));
        }