Exemple #1
0
    public void TestSerialization()
    {
        var secretsMap = new Dictionary <string, Secret>
        {
            ["cbcache-test-redis-dm_s1"] =
                new PlainTextSecret("Fake secret that is quite long to emulate the size of the serialized entry."),
            ["cbcache-test-redis-secondary-dm_s1"] =
                new PlainTextSecret("Fake secret that is quite long to emulate the size of the serialized entry."),
            ["cbcache-test-event-hub-dm_s1"] =
                new PlainTextSecret("Fake secret that is quite long to emulate the size of the serialized entry."),
            ["cbcacheteststorage-dm_s1-sas"] =
                new UpdatingSasToken(new SasToken("token_name", "storage_account", "resource_path")),
            ["ContentMetadataBlobSecretName-dm_s1"] = new PlainTextSecret(
                "Fake secret that is quite long to emulate the size of the serialized entry.")
        };
        var secrets = new RetrievedSecrets(secretsMap);

        var text = RetrievedSecretsSerializer.Serialize(secrets);

        var deserializedSecretsMap = RetrievedSecretsSerializer.Deserialize(text).ShouldBeSuccess().Value.Secrets;

        Assert.Equal(secretsMap.Count, deserializedSecretsMap.Count);

        foreach (var kvp in secretsMap)
        {
            Assert.Equal(kvp.Value, deserializedSecretsMap[kvp.Key]);
            Assert.Equal(kvp.Value, deserializedSecretsMap[kvp.Key]);
        }
    }
        private static Result <RetrievedSecrets> DeserializeFromEnvironmentVariable()
        {
            var variableName = RetrievedSecretsSerializer.SerializedSecretsKeyName;
            var variable     = Environment.GetEnvironmentVariable(variableName);

            if (string.IsNullOrEmpty(variable))
            {
                return(Result.FromErrorMessage <RetrievedSecrets>($"Environment variable '{variableName}' is null or empty."));
            }

            return(RetrievedSecretsSerializer.Deserialize(variable));
        }