@@ -2240,6 +2240,30 @@ TEST(dns_resource_record_to_string_soa) {
22402240 ASSERT_STREQ (str , "www.example.com IN SOA ns0.example.com ns0.example.com 1111111111 86400 7200 4000000 3600" );
22412241}
22422242
2243+ TEST (dns_resource_record_to_json_soa ) {
2244+ _cleanup_ (dns_resource_record_unrefp ) DnsResourceRecord * rr = NULL ;
2245+ _cleanup_ (sd_json_variant_unrefp ) sd_json_variant * j = NULL ;
2246+
2247+ rr = dns_resource_record_new_full (DNS_CLASS_IN , DNS_TYPE_SOA , "www.example.com" );
2248+ ASSERT_NOT_NULL (rr );
2249+ rr -> soa .mname = strdup ("ns0.example.com" );
2250+ rr -> soa .rname = strdup ("hostmaster.example.com" );
2251+ rr -> soa .serial = 1111111111 ;
2252+ rr -> soa .refresh = 86400 ;
2253+ rr -> soa .retry = 7200 ;
2254+ rr -> soa .expire = 4000000 ;
2255+ rr -> soa .minimum = 3600 ;
2256+
2257+ ASSERT_OK (dns_resource_record_to_json (rr , & j ));
2258+ ASSERT_STREQ (sd_json_variant_string (sd_json_variant_by_key (j , "mname" )), "ns0.example.com" );
2259+ ASSERT_STREQ (sd_json_variant_string (sd_json_variant_by_key (j , "rname" )), "hostmaster.example.com" );
2260+ ASSERT_EQ (sd_json_variant_unsigned (sd_json_variant_by_key (j , "serial" )), UINT64_C (1111111111 ));
2261+ ASSERT_EQ (sd_json_variant_unsigned (sd_json_variant_by_key (j , "refresh" )), UINT64_C (86400 ));
2262+ ASSERT_EQ (sd_json_variant_unsigned (sd_json_variant_by_key (j , "retry" )), UINT64_C (7200 ));
2263+ ASSERT_EQ (sd_json_variant_unsigned (sd_json_variant_by_key (j , "expire" )), UINT64_C (4000000 ));
2264+ ASSERT_EQ (sd_json_variant_unsigned (sd_json_variant_by_key (j , "minimum" )), UINT64_C (3600 ));
2265+ }
2266+
22432267TEST (dns_resource_record_to_string_ptr ) {
22442268 _cleanup_ (dns_resource_record_unrefp ) DnsResourceRecord * rr = NULL ;
22452269 const char * str ;
0 commit comments