add unit tests for data.go, fix bugs
diff --git a/data.go b/data.go
index 0413232..81affe0 100644
--- a/data.go
+++ b/data.go
@@ -119,8 +119,8 @@
 	SELECT a.resource_blob_id
 		FROM metadata_runtime_entity_metadata as a
 		LEFT JOIN edgex_blob_available as b
-		ON a.bean_blob_id = b.id
-		WHERE b.id IS NULL;
+		ON a.resource_blob_id = b.id
+		WHERE (b.id IS NULL AND a.resource_blob_id IS NOT NULL AND a.resource_blob_id != '');
 	`)
 	if err != nil {
 		log.Errorf("DB Query for project_runtime_blob_metadata failed %v", err)
diff --git a/data_test.go b/data_test.go
index e57e56f..8a26c0d 100644
--- a/data_test.go
+++ b/data_test.go
@@ -24,6 +24,18 @@
 	"time"
 )
 
+const (
+	readyBlobId      = "gcs:SHA-512:39ca7ae89bb9468af34df8bc873748b4035210c91bcc01359c092c1d51364b5f3df06bc69a40621acfaa46791af9ea41bc0f3429a84738ba1a7c8d394859601a"
+	readyblobLocalFs = "/tmp/tmpapid/gcs:SHA-512:39ca7ae89bb9468af34df8bc873748b4035210c91bcc01359c092c1d51364b5f3df06bc69a40621acfaa46791af9ea41bc0f3429a84738ba1a7c8d394859601a"
+)
+
+var (
+	unreadyBlobIds = map[string]bool{
+		"gcs:SHA-512:8fcc902465ccb32ceff25fa9f6fb28e3b314dbc2874c0f8add02f4e29c9e2798d344c51807aa1af56035cf09d39c800cf605d627ba65723f26d8b9c83c82d2f2": true,
+		"gcs:SHA-512:9938d075b8c8925e118a61c047d330a6ba852c2b3ccb2fd2c4ecf6f444482ef3a24ef2e7cd3b8a01be771135d78db370518debce244a33289c1bb3d7f325d4a2": true,
+	}
+)
+
 var _ = Describe("data", func() {
 	var testCount int
 	var testDbMan *dbManager
@@ -36,6 +48,7 @@
 		testDbMan.setDbVersion("test" + strconv.Itoa(testCount))
 		initTestDb(testDbMan.getDb())
 		testDbMan.initDb()
+		insertTestAvailableBlobTable(testDbMan.getDb())
 		time.Sleep(100 * time.Millisecond)
 	})
 
@@ -56,7 +69,7 @@
 			for rows.Next() {
 				rows.Scan(&count)
 			}
-			Expect(count).Should(Equal(0))
+			Expect(count).Should(Equal(1))
 
 			// metadata_runtime_entity_metadata
 			rows, err = testDbMan.getDb().Query(`
@@ -67,7 +80,26 @@
 			for rows.Next() {
 				rows.Scan(&count)
 			}
-			Expect(count).Should(Equal(1))
+			Expect(count).Should(Equal(3))
+		})
+
+		It("should succefully get ready deployments", func() {
+
+			deps, err := testDbMan.getReadyDeployments()
+			Expect(err).Should(Succeed())
+			Expect(len(deps)).Should(Equal(1))
+			Expect(deps[0].BlobID).Should(Equal(readyBlobId))
+			Expect(deps[0].BlobFSLocation).Should(Equal(readyblobLocalFs))
+		})
+
+		It("should succefully get unready blob ids", func() {
+
+			ids, err := testDbMan.getUnreadyBlobs()
+			Expect(err).Should(Succeed())
+			Expect(len(ids)).Should(Equal(2))
+			for _, id := range ids {
+				Expect(unreadyBlobIds[id]).Should(BeTrue())
+			}
 		})
 
 	})
@@ -116,4 +148,52 @@
 	`)
 	Expect(err).Should(Succeed())
 
+	_, err = db.Exec(`
+		INSERT INTO "metadata_runtime_entity_metadata" VALUES(
+		'ada76573-68e3-4f1a-a0f9-cbc201a97e80',
+		'73fcac6c-5d9f-44c1-8db0-333efda3e6e8',
+		'ada76573-68e3-4f1a-a0f9-cbc201a97e80',
+		'gcs:SHA-512:8fcc902465ccb32ceff25fa9f6fb28e3b314dbc2874c0f8add02f4e29c9e2798d344c51807aa1af56035cf09d39c800cf605d627ba65723f26d8b9c83c82d2f2',
+		'',
+		'ENVIRONMENT',
+		'test',
+		'',
+		'/organizations/Org1//environments/test/',
+		'2017-06-27 03:14:46.018+00:00',
+		'defaultUser',
+		'2017-06-27 03:14:46.018+00:00',
+		'defaultUser',
+		'ada76573-68e3-4f1a-a0f9-cbc201a97e80'
+		);
+	`)
+	Expect(err).Should(Succeed())
+
+	_, err = db.Exec(`
+		INSERT INTO "metadata_runtime_entity_metadata" VALUES(
+		'65e7c3d3-9ef7-4e41-84ae-6cc385178e9d',
+		'73fcac6c-5d9f-44c1-8db0-333efda3e6e8',
+		'ada76573-68e3-4f1a-a0f9-cbc201a97e80',
+		'gcs:SHA-512:9938d075b8c8925e118a61c047d330a6ba852c2b3ccb2fd2c4ecf6f444482ef3a24ef2e7cd3b8a01be771135d78db370518debce244a33289c1bb3d7f325d4a2',
+		'',
+		'VIRTUAL_HOST',
+		'default',
+		'',
+		'/organizations/Org1/environments/test/virtualhosts/default',
+		'2017-06-27 03:48:18.284+00:00',
+		'-NA-',
+		'2017-06-27 03:48:18.284+00:00',
+		'-NA-',
+		'ada76573-68e3-4f1a-a0f9-cbc201a97e80'
+		);
+	`)
+	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())
 }