public void InternalValidation_PayloadConverter_ExtractResourceOutputValue() { // During serialization\deserialization it loses ms precission. Therefore using ms-less times DateTime time1 = TruncateMiliseconds(DateTime.UtcNow), time2 = TruncateMiliseconds(DateTime.Now); // Creates a response var res = new Resource(); res.OutputItems = new OutputItemList { new OutputItem { Key = "boolean", Value = "true" }, new OutputItem { Key = "time1", Value = time1.ToString(CultureInfo.InvariantCulture) }, new OutputItem { Key = "time2", Value = time2.ToString(CultureInfo.InvariantCulture) }, new OutputItem { Key = "string", Value = "value" }, new OutputItem { Key = "number", Value = "7" }, new OutputItem { Key = "uri", Value = new Uri("https://some/long/uri/").AbsoluteUri }, }; XElement resourceElement = ServerSerializer.SerializeResource(res); // Validates nonexisting properties var payloadConverter = new PayloadConverter(); Assert.AreEqual(DateTime.MinValue, payloadConverter.ExtractClusterPropertyDateTimeValue(resourceElement, Enumerable.Empty<KeyValuePair<string, string>>(), "nonexist")); Assert.AreEqual(null, payloadConverter.ExtractResourceOutputStringValue(resourceElement, "nonexist")); Assert.AreEqual(0, payloadConverter.ExtractClusterPropertyIntValue(resourceElement, Enumerable.Empty<KeyValuePair<string, string>>(), "nonexist")); // Validates existing properties Assert.AreEqual(time1, payloadConverter.ExtractClusterPropertyDateTimeValue(resourceElement, Enumerable.Empty<KeyValuePair<string, string>>(), "time1")); Assert.AreEqual(time2, payloadConverter.ExtractClusterPropertyDateTimeValue(resourceElement, Enumerable.Empty<KeyValuePair<string, string>>(), "time2")); Assert.AreEqual("value", payloadConverter.ExtractResourceOutputStringValue(resourceElement, "string")); Assert.AreEqual(7, payloadConverter.ExtractClusterPropertyIntValue(resourceElement, Enumerable.Empty<KeyValuePair<string, string>>(), "number")); }
[Timeout(5 * 60 * 1000)] // ms public async Task ICanPerformA_CreateDeleteContainers_Using_RestClient_ManualEnvironment() { var creds = IntegrationTestBase.GetCredentialsForEnvironmentType(EnvironmentType.Current); if (creds == null) Assert.Inconclusive("Alternative Azure Endpoint wasn't set up"); IHDInsightCertificateCredential certCreds = IntegrationTestBase.GetValidCredentials() as IHDInsightCertificateCredential; IHDInsightAccessTokenCredential tokenCreds = IntegrationTestBase.GetValidCredentials() as IHDInsightAccessTokenCredential; IHDInsightSubscriptionCredentials tempCredentials = null; if (certCreds != null) { tempCredentials = new HDInsightCertificateCredential() { SubscriptionId = creds.SubscriptionId, Certificate = certCreds.Certificate }; } else if (tokenCreds != null) { tempCredentials = new HDInsightAccessTokenCredential() { SubscriptionId = creds.SubscriptionId, AccessToken = tokenCreds.AccessToken }; } IHDInsightSubscriptionCredentials credentials = new AlternativeEnvironmentIHDInsightSubscriptionCertificateCredentialsFactory().Create(tempCredentials); var client = new HDInsightManagementRestClient(credentials, GetAbstractionContext(), false); var dnsName = GetRandomClusterName(); var location = "East US"; var subscriptionId = credentials.SubscriptionId; var createPayload = String.Format(CreateContainerGenericRequest, dnsName, location, subscriptionId, Guid.NewGuid()); var xmlReader = new XmlTextReader(new StringReader(createPayload)); var resource = new Resource() { IntrinsicSettings = new[] { new XmlDocument().ReadNode(xmlReader) } }; var result = await client.ListCloudServices(); Assert.IsTrue(!this.ContainsContainer(dnsName, result.Content)); await client.CreateContainer(dnsName, location, resource.SerializeToXml()); result = await client.ListCloudServices(); bool containsContiner = false; while (!containsContiner) { result = await client.ListCloudServices(); containsContiner = this.ContainsContainer(dnsName, result.Content); await Task.Delay(100); } await client.DeleteContainer(dnsName, location); containsContiner = true; while (containsContiner) { result = await client.ListCloudServices(); containsContiner = this.ContainsContainer(dnsName, result.Content); await Task.Delay(100); } }
public void InternalValidation_PayloadConverter_ExtractIntrinsicSettingsValue() { // During serialization\deserialization it loses ms precission. Therefore using ms-less times DateTime time1 = TruncateMiliseconds(DateTime.UtcNow), time2 = TruncateMiliseconds(DateTime.Now); // Creates a response var res = new Resource(); res.OutputItems = new OutputItemList(); var intrinsicSettings = new List<KeyValuePair<string, string>>() { new KeyValuePair<string,string>("boolean", "true"), new KeyValuePair<string,string>("time1", time1.ToString(CultureInfo.InvariantCulture)), new KeyValuePair<string,string>("time2", time2.ToString(CultureInfo.InvariantCulture)), new KeyValuePair<string,string>("string", "value"), new KeyValuePair<string,string>("number", "7") }; XElement resourceElement = ServerSerializer.SerializeResource(res, intrinsicSettings); // Validates nonexisting properties var payloadConverter = new PayloadConverter(); Assert.AreEqual(DateTime.MinValue, payloadConverter.ExtractClusterPropertyDateTimeValue(resourceElement, intrinsicSettings, "nonexist")); Assert.AreEqual(null, payloadConverter.GetClusterProperty(resourceElement, intrinsicSettings, "nonexist")); Assert.AreEqual(0, payloadConverter.ExtractClusterPropertyIntValue(resourceElement, intrinsicSettings, "nonexist")); // Validates existing properties Assert.AreEqual(time1, payloadConverter.ExtractClusterPropertyDateTimeValue(resourceElement, intrinsicSettings, "time1")); Assert.AreEqual(time2, payloadConverter.ExtractClusterPropertyDateTimeValue(resourceElement, intrinsicSettings, "time2")); Assert.AreEqual("value", payloadConverter.GetClusterProperty(resourceElement, intrinsicSettings, "string")); Assert.AreEqual(7, payloadConverter.ExtractClusterPropertyIntValue(resourceElement, intrinsicSettings, "number")); }