   [concept-type metadata-format record]
   (let [metadata-xml (core/generate-metadata concept-type metadata-format record)]
     (core/validate-xml concept-type metadata-format metadata-xml)))
+
+(deftest roundtrip-example-collection-record
+  (doseq [metadata-format tested-collection-formats]
+    (testing (str metadata-format)
+      (is (= (expected-conversion/convert expected-conversion/example-collection-record metadata-format)
+             (xml-round-trip :collection metadata-format expected-conversion/example-collection-record))))))
+
+(deftest roundtrip-example-service-record
+  (is (= (expected-conversion/convert expected-conversion/example-service-record :serf)
+         (xml-round-trip :service :serf expected-conversion/example-service-record))))
 
 (deftest roundrobin-collection-example-record
   (doseq [[origin-format filename] collection-format-examples

    (testing (str origin-format " to " dest-format)
      (is (empty? (generate-and-validate-xml :collection dest-format umm-c-record))))))

(deftest roundtrip-example-record
  (doseq [metadata-format tested-collection-formats]
    (testing (str metadata-format)
      (is (= (expected-conversion/convert expected-conversion/example-collection-record metadata-format)
             (collection-xml-round-trip expected-conversion/example-collection-record metadata-format))))))

(defspec roundtrip-generated-collection-records 100
  (for-all [umm-record (gen/no-shrink umm-gen/umm-c-generator)
            metadata-format (gen/elements tested-collection-formats)]
    (is (= (expected-conversion/convert umm-record metadata-format)
           (collection-xml-round-trip umm-record metadata-format)))))

(defn- parse-iso19115-projects-keywords
  "Returns the parsed projects keywords for the given ISO19115-2 xml"

  ;; Evaluate to print generated metadata from the record selected above.
  (println (core/generate-metadata :collection metadata-format sample-record))

  ;; our simple example record
  (core/generate-metadata :collection metadata-format expected-conversion/example-record)

  (core/validate-xml :collection metadata-format metadata-xml)

  ;; round-trip
  (xml-round-trip concept-type metadata-format sample-record)

  ;; Evaluate to see diff between expected conversion and result of XML round trip.
  (is (= (expected-conversion/convert sample-record metadata-format)
         (xml-round-trip concept-type metadata-format sample-record)))

  ;; for generated test failures
  (is (= (expected-conversion/convert user/failing-value metadata-format)
         (xml-round-trip concept-type metadata-format user/failing-value))))
