         delete-revision-id (:revision-id delete-result)]
     (is (= 1 (- delete-revision-id ingest-revision-id)))))
 
-;; Verify ingest behaves properly if request is missing content type.
+;;; Verify ingest behaves properly if request is missing content type.
 (deftest missing-content-type-ingest-test
   (let [collection (util/collection-concept "PROV1" 5)
         _ (util/ingest-collection collection)
         granule-with-no-content-type  (assoc (util/granule-concept "PROV1" "C1000000000-PROV1" 5 "G1-PROV1") :content-type "")
         {:keys [status errors-str]} (util/ingest-granule granule-with-no-content-type)]
-    (is (= status 400))
+    (is (= 400 status))
     (is (re-find #"Invalid content-type" errors-str))))
 
-;; Verify ingest behaves properly if request contains invalid  content type.
+;;; Verify ingest behaves properly if request contains invalid  content type.
 (deftest invalid-content-type-ingest-test
   (let [collection (util/collection-concept "PROV1" 5)
         _ (util/ingest-collection collection)
         granule-with-no-content-type (assoc (util/granule-concept "PROV1" "C1000000000-PROV1" 5 "G1-PROV1") :content-type "blah")
         {:keys [status errors-str]} (util/ingest-granule granule-with-no-content-type)]
-    (is (= status 400))
+    (is (= 400 status))
     (is (re-find #"Invalid content-type" errors-str))))
 
-;; Verify deleting same granule twice is not an error if ignore conflict is true.
+;;; Verify deleting same granule twice is not an error if ignore conflict is true.
 (deftest delete-same-granule-twice-test
   (let [collection (util/collection-concept "PROV1" 5)
         _ (util/ingest-collection collection)
-        granule (util/granule-concept "PROV1" "C1000000000-PROV1" 5 "G1-PROV1")
+        granule (util/granule-concept "PROV1" nil 5 "G1-PROV1")
         ingest-result (util/ingest-granule granule)
         delete1-result (util/delete-concept granule)
         delete2-result (util/delete-concept granule)]
     (is (= 200 (:status ingest-result)))
     (is (= 200 (:status delete1-result)))
     (is (= 200 (:status delete2-result)))))
+
+;;; Verify that attempts to ingest a granule whose parent does not exist result in a 404
+(deftest ingest-orphan-granule-test
+  (let [granule (util/granule-concept "PROV1" "C1000000000-PROV1" 5 "G1-PROV1")
+        {:keys [status]} (util/ingest-granule granule)]
+    (is (= 404 status))
+    (is (not (util/concept-exists-in-mdb? "G1-PROV1" 0)))))
 
 
 ;;; Fixtures

          granule (util/granule-concept "PROV1" "C1000000000-PROV1" 5)
          {:keys [concept-id revision-id]} (util/ingest-granule granule)]
      (is (util/concept-exists-in-mdb? concept-id revision-id))
      (is (= revision-id 0)))))

; Verify a new granule with concept-id is ingested successfully.
(deftest granule-w-concept-id-ingest-test

          {:keys [concept-id revision-id]} (util/ingest-granule granule)]
      (is (util/concept-exists-in-mdb? concept-id revision-id))
      (is (= supplied-concept-id concept-id))
      (is (= 0 revision-id)))))

;;; Ingest same granule N times and verify same concept-id is returned and
;;; revision id is 1 greater on each subsequent ingest
(deftest repeat-same-granule-ingest-test
  (testing "ingest same granule n times ..."
    (let [collection (util/collection-concept "PROV1" 5)
