public void DeserializesRecoverableDays(string content, int?expected) { CertificateProperties properties = new CertificateProperties(); using (JsonStream json = new JsonStream(content)) { properties.Deserialize(json.AsStream()); } Assert.AreEqual(expected, properties.RecoverableDays); }
public void DeserializesSerializesRoundtrip() { string originalJson = @"{ ""id"": ""https://testvault1021.vault.azure.net/certificates/updateCert01/policy"", ""key_props"": { ""kty"": ""RSA"", ""reuse_key"": false, ""exportable"": true, ""key_size"": 2048 }, ""secret_props"": { ""contentType"": ""application/x-pkcs12"" }, ""x509_props"": { ""subject"": ""CN=KeyVaultTest"", ""key_usage"": [], ""ekus"": [], ""validity_months"": 297, ""basic_constraints"": { ""ca"": false } }, ""lifetime_actions"": [ { ""trigger"": { ""lifetime_percentage"": 80 }, ""action"": { ""action_type"": ""EmailContacts"" } } ], ""issuer"": { ""name"": ""Unknown"" }, ""attributes"": { ""enabled"": true, ""created"": 1482188947, ""updated"": 1482188947 } }"; CertificatePolicy policy = new CertificatePolicy(); using (JsonStream json = new JsonStream(originalJson)) { policy.Deserialize(json.AsStream()); } Assert.AreEqual(CertificateKeyType.Rsa, policy.KeyType); Assert.IsFalse(policy.ReuseKey); Assert.IsTrue(policy.Exportable); Assert.AreEqual(2048, policy.KeySize); Assert.AreEqual(CertificateContentType.Pkcs12, policy.ContentType); Assert.AreEqual("CN=KeyVaultTest", policy.Subject); Assert.NotNull(policy.KeyUsage); CollectionAssert.IsEmpty(policy.KeyUsage); Assert.NotNull(policy.EnhancedKeyUsage); CollectionAssert.IsEmpty(policy.EnhancedKeyUsage); Assert.AreEqual(297, policy.ValidityInMonths); Assert.NotNull(policy.LifetimeActions); Assert.AreEqual(1, policy.LifetimeActions.Count); Assert.AreEqual(80, policy.LifetimeActions[0].LifetimePercentage); Assert.AreEqual(CertificatePolicyAction.EmailContacts, policy.LifetimeActions[0].Action); Assert.AreEqual("Unknown", policy.IssuerName); Assert.IsTrue(policy.Enabled); Assert.AreEqual(DateTimeOffset.FromUnixTimeSeconds(1482188947), policy.CreatedOn); Assert.AreEqual(DateTimeOffset.FromUnixTimeSeconds(1482188947), policy.UpdatedOn); using (JsonStream json = new JsonStream()) { JsonWriterOptions options = new JsonWriterOptions { Indented = true, }; json.WriteObject(policy, options); string expectedJson = @"{ ""key_props"": { ""kty"": ""RSA"", ""reuse_key"": false, ""exportable"": true, ""key_size"": 2048 }, ""secret_props"": { ""contentType"": ""application/x-pkcs12"" }, ""x509_props"": { ""subject"": ""CN=KeyVaultTest"", ""validity_months"": 297 }, ""issuer"": { ""name"": ""Unknown"" }, ""attributes"": { ""enabled"": true }, ""lifetime_actions"": [ { ""trigger"": { ""lifetime_percentage"": 80 }, ""action"": { ""action_type"": ""EmailContacts"" } } ] }"; Assert.AreEqual(expectedJson, json.ToString()); } }