diff --git a/data_test.go b/data_test.go
index 8a26c0d..d678828 100644
--- a/data_test.go
+++ b/data_test.go
@@ -48,7 +48,6 @@
 		testDbMan.setDbVersion("test" + strconv.Itoa(testCount))
 		initTestDb(testDbMan.getDb())
 		testDbMan.initDb()
-		insertTestAvailableBlobTable(testDbMan.getDb())
 		time.Sleep(100 * time.Millisecond)
 	})
 
@@ -69,7 +68,7 @@
 			for rows.Next() {
 				rows.Scan(&count)
 			}
-			Expect(count).Should(Equal(1))
+			Expect(count).Should(Equal(0))
 
 			// metadata_runtime_entity_metadata
 			rows, err = testDbMan.getDb().Query(`
@@ -83,8 +82,38 @@
 			Expect(count).Should(Equal(3))
 		})
 
+		It("should succefully update local FS location", func() {
+
+			err := testDbMan.updateLocalFsLocation(readyBlobId, readyblobLocalFs)
+			Expect(err).Should(Succeed())
+			// edgex_blob_available
+			rows, err := testDbMan.getDb().Query(`
+				SELECT count(*) from edgex_blob_available;
+			`)
+			Expect(err).Should(Succeed())
+			defer rows.Close()
+			var count int
+			for rows.Next() {
+				rows.Scan(&count)
+			}
+			Expect(count).Should(Equal(1))
+		})
+
+		It("should succefully get local FS location", func() {
+
+			err := testDbMan.updateLocalFsLocation(readyBlobId, readyblobLocalFs)
+			Expect(err).Should(Succeed())
+
+			// edgex_blob_available
+			location, err := testDbMan.getLocalFSLocation(readyBlobId)
+			Expect(err).Should(Succeed())
+			Expect(location).Should(Equal(readyblobLocalFs))
+		})
+
 		It("should succefully get ready deployments", func() {
 
+			err := testDbMan.updateLocalFsLocation(readyBlobId, readyblobLocalFs)
+			Expect(err).Should(Succeed())
 			deps, err := testDbMan.getReadyDeployments()
 			Expect(err).Should(Succeed())
 			Expect(len(deps)).Should(Equal(1))
@@ -94,6 +123,8 @@
 
 		It("should succefully get unready blob ids", func() {
 
+			err := testDbMan.updateLocalFsLocation(readyBlobId, readyblobLocalFs)
+			Expect(err).Should(Succeed())
 			ids, err := testDbMan.getUnreadyBlobs()
 			Expect(err).Should(Succeed())
 			Expect(len(ids)).Should(Equal(2))
@@ -188,12 +219,3 @@
 	`)
 	Expect(err).Should(Succeed())
 }
-
-func insertTestAvailableBlobTable(db apid.DB) {
-	stmt, err := db.Prepare(`
-		INSERT INTO "edgex_blob_available" VALUES(?, ?);
-	`)
-	Expect(err).Should(Succeed())
-	_, err = stmt.Exec(readyBlobId, readyblobLocalFs)
-	Expect(err).Should(Succeed())
-}
