public void Disposes_Multiple_Times_Without_Error()
        {
            var generator = new Hmac256SignatureGenerator("dy33vQhksVsv");

            generator.Dispose();
            generator.Dispose();
        }
        public void GenerateSignature_Throws_If_Properties_Null()
        {
            var generator = new Hmac256SignatureGenerator("dy33vQhksVsv");

            try
            {
                generator.GenerateSignature(null);
            }
            finally
            {
                generator.Dispose();
            }
        }
        public void Throws_If_Called_When_Disposed()
        {
            var generator = new Hmac256SignatureGenerator("nb4i6ldxuVQC");

            generator.Dispose();

            _ = generator.GenerateSignature
                (
                new KeyValuePair <string, object>[]
            {
                new KeyValuePair <string, object>("x_merchant_id", "30299999"),
                new KeyValuePair <string, object>("x_device_id", "d555"),
                new KeyValuePair <string, object>("x_operator_id", "test_operator"),
                new KeyValuePair <string, object>("x_firmware_version", "123"),
                new KeyValuePair <string, object>("x_device_token", "nb4i6ldxuVQC"),
                new KeyValuePair <string, object>("x_pos_vendor", "Pos Provider"),
            }
                );
        }
        public void Constructor_Throws_If_ApiKey_Empty()
        {
            var generator = new Hmac256SignatureGenerator(string.Empty);

            generator.Dispose();
        }
        public void Constructor_Throws_If_ApiKey_Null()
        {
            var generator = new Hmac256SignatureGenerator(null);

            generator.Dispose();
        }
        public void Disposes_Properly()
        {
            var generator = new Hmac256SignatureGenerator("dy33vQhksVsv");

            generator.Dispose();
        }