Exemple #1
0
        public void TranslateMultipleCredentials()
        {
            string          requestJson = "{ \"params\": { \"__reserved\": { \"credentials\": [{ \"tenantId\": \"testTenantId\", \"clientId\": \"testClientId\", \"secret\": \"testSecret\", \"x-ps-credtype\": \"random\" },{ \"tenantId\": \"testTenantId\", \"clientId\": \"testClientId\", \"secret\": \"testSecret\" }] } } }";
            LiveTestRequest request     = Newtonsoft.Json.JsonConvert.DeserializeObject <LiveTestRequest>(requestJson);

            LiveTestCredentialFactory test = new LiveTestCredentialFactory();

            test.TranslateCredentialsObjects(request);

            request.Params.ContainsKey("__reserved");
            Assert.True(request.Params["__reserved"] is Dictionary <string, object>);
            Dictionary <string, object> reservedParams = (Dictionary <string, object>)request.Params["__reserved"];

            Assert.True(reservedParams.ContainsKey("credentials"));
            Assert.True(((Dictionary <string, object>)request.Params["__reserved"])["credentials"] is LiveTestCredentials[]);
            LiveTestCredentials[] credsArray = (LiveTestCredentials[])reservedParams["credentials"];

            Assert.Equal(2, credsArray.Length);
            LiveTestCredentials result = credsArray[0];

            Assert.Equal("random", result.Type);
            Assert.Equal("testTenantId", result.Properties["tenantId"].ToString());
            Assert.Equal("testClientId", result.Properties["clientId"].ToString());
            Assert.Equal("testSecret", result.Properties["secret"].ToString());

            result = credsArray[1];
            Assert.Equal("azure", result.Type);
            Assert.Equal("testTenantId", result.Properties["tenantId"].ToString());
            Assert.Equal("testClientId", result.Properties["clientId"].ToString());
            Assert.Equal("testSecret", result.Properties["secret"].ToString());
        }
        private LiveTestCredentials GetCredentials(JObject credsObject)
        {
            LiveTestCredentials creds = new LiveTestCredentials();

            foreach (JProperty credsProperty in credsObject.Properties())
            {
                if (credsProperty.Name.Equals("x-ps-credtype", StringComparison.OrdinalIgnoreCase))
                {
                    creds.Type = credsProperty.Value.ToString();
                }
                else
                {
                    creds.Properties[credsProperty.Name] = credsProperty.Value;
                }
            }

            if (String.IsNullOrEmpty(creds.Type))
            {
                creds.Type = "azure";
            }

            return(creds);
        }