     (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)))))
+           (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"

   :iso19115 "iso19115.xml"
   :iso-smap "iso_smap.xml"})

(defn collection-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)]
    ;; 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))))

(defn- generate-and-validate-xml
  "Returns a vector of errors (empty if none) from attempting to convert the given UMM record

  (println (core/generate-metadata :collection :iso-smap user/failing-value))

  (is (= (expected-conversion/convert user/failing-value :iso-smap)
         (xml-round-trip :collection user/failing-value :iso-smap)))

  ;; random XML gen
  (def metadata-format :echo10)
