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); }