Exemple #1
0
        public void CosmosDbAuthenticationHeaderTryFormat()
        {
            var header = new CosmosDbAuthorizationHeader();

            header.Hash         = Sha256.Create(Key.ComputeKeyBytes(fakeKey));
            header.KeyType      = keyType;
            header.Method       = "GET";
            header.ResourceId   = resourceId;
            header.ResourceType = resourceType;
            header.Version      = version;
            header.Time         = utc;

            // Generate using non-allocating APIs
            var buffer = new byte[256];

            Assert.True(header.TryFormat(buffer, out int bytesWritten));

            var signatureAsString = Encoding.UTF8.GetString(buffer, 0, bytesWritten);

            // Generate using existing .NET APIs (sample from Asure documentation)
            var expected = CosmosDbBaselineFromMsdn(fakeKey, keyType, "GET", resourceId, resourceType, version, utc);

            Assert.Equal(expected, signatureAsString);
        }