    :iso19115 "iso19115.xml"
    :iso-smap "iso_smap.xml"})
 
-(defn collection-xml-round-trip
+(defn xml-round-trip
   "Returns record after being converted to XML and back to UMM through
   the given to-xml and to-umm mappings."
-  [record format]
-  (let [metadata-xml (core/generate-metadata :collection format record)]
+  [concept-type metadata-format record]
+  (let [metadata-xml (core/generate-metadata concept-type metadata-format record)]
     ;; validate against xml schema
-    (is (empty? (core/validate-xml :collection format metadata-xml)))
-    (core/parse-metadata :collection format metadata-xml)))
-
-(defn service-xml-round-trip
-  "Returns record after being converted to XML and back to UMM through
-  the given to-xml and to-umm mappings."
-  [record format]
-  (let [metadata-xml (core/generate-metadata :service format record)]
-    ;; validate against xml schema
-    (is (empty? (core/validate-xml :service format metadata-xml)))
-    (core/parse-metadata :service format metadata-xml)))
-
-(comment
-  (println (core/generate-metadata :service :serf expected-conversion/example-service-record))
-)
-
-(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)
-             (collection-xml-round-trip expected-conversion/example-collection-record metadata-format))))))
-
-(deftest roundtrip-example-service-record
-  (is (= (expected-conversion/convert expected-conversion/example-service-record :serf)
-         (service-xml-round-trip expected-conversion/example-service-record :serf))))
+    (is (empty? (core/validate-xml concept-type metadata-format metadata-xml)))
+    (core/parse-metadata concept-type metadata-format metadata-xml)))
 
 (defn- generate-and-validate-xml
   "Returns a vector of errors (empty if none) from attempting to convert the given UMM record

  (def metadata-format :dif10)
  (def metadata-format :iso19115)
  (def metadata-format :iso-smap)

  (def sample-record (first (gen/sample (gen/such-that
                                          #(not-any? :Instruments (:Platforms %))

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

(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)
           (xml-round-trip :collection metadata-format umm-record)))))

;; TODO - Fix these test failures with CMR-2332 and uncomment the test
#_(defspec roundtrip-generated-service-records 100
  (for-all [umm-record (gen/no-shrink umm-gen/umm-s-generator)
            metadata-format (gen/elements tested-service-formats)]
    (is (= (expected-conversion/convert umm-record metadata-format)
           (xml-round-trip :service metadata-format umm-record)))))

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