public async Task CreateSignature()
        {
            var          signer   = new AwsSigner();
            var          config   = Helpers.CreateExampleConfig();
            var          request  = Helpers.CreateExampleRequest();
            const string expected = "5d672d79c15b13162d9279b0855cfba6789a8edb4c82c400e06b5924a6f2b5d7";
            var          dateTime = DateTimeOffset.Parse("2015-08-30T12:36:00Z");

            var signingKey = signer.CreateSigningKey(config.Secret, dateTime, config.Region, config.Service);
            var signString = await signer.CreateSignString(config.Region, config.Service, request, dateTime);

            var result = signer.CreateSignature(signingKey, signString);

            Assert.AreEqual(expected, result, "Create signature failed");
        }
        public async Task CreateSignString()
        {
            var signer  = new AwsSigner();
            var request = Helpers.CreateExampleRequest();

            var region   = "us-east-1";
            var service  = "iam";
            var dateTime = DateTimeOffset.Parse("2015-08-30T12:36:00Z");

            var expectedBuilder = new StringBuilder();

            expectedBuilder.Append("AWS4-HMAC-SHA256\n");
            expectedBuilder.Append("20150830T123600Z\n");
            expectedBuilder.Append("20150830/us-east-1/iam/aws4_request\n");
            expectedBuilder.Append("f536975d06c0309214f805bb90ccff089219ecd68b2577efef23edd43b7e1a59");

            var output = await signer.CreateSignString(region, service, request, dateTime);

            Assert.AreEqual(expectedBuilder.ToString(), output, "Create Sign string failed");
        }