update bash
diff --git a/dockertests/dockerTest.sh b/dockertests/dockerTest.sh
index 46c5937..39b65b8 100755
--- a/dockertests/dockerTest.sh
+++ b/dockertests/dockerTest.sh
@@ -55,6 +55,28 @@
 docker run --name ${ssname} -d -p 9001:9001 apigeelabs/transicator-snapshot -p 9001 -u ${TEST_PG_URL}
 docker run --name ${csname} -d -p 9000:9000 apigeelabs/transicator-changeserver -p 9000 -u ${TEST_PG_URL} -s testslot
 
+# Wait for SS to be up
+while `true`
+do
+  sleep 1
+  response=$(curl -i http://${DOCKER_IP}:9001/snapshots?selector=foo | head -n 1)
+  if [[ $response == *303* ]]
+  then
+    break
+  fi
+done
+
+# Wait for CS to be up
+while `true`
+do
+  sleep 1
+  response=$(curl -i http://${DOCKER_IP}:9000/changes | head -n 1)
+  if [[ $response == *200* ]]
+  then
+    break
+  fi
+done
+
 apid_config=`cat <<EOF
 apigeesync_instance_name: SQLLITAPID
 apigeesync_snapshot_server_base: http://${DOCKER_IP}:9001/
@@ -67,4 +89,6 @@
 EOF
 `
 rm -f ${WORK_DIR}/dockertests/apid_config.yaml
-echo "$apid_config" >> ${WORK_DIR}/dockertests/apid_config.yaml
\ No newline at end of file
+echo "$apid_config" >> ${WORK_DIR}/dockertests/apid_config.yaml
+
+#go test dockertests/*.go
\ No newline at end of file
diff --git a/dockertests/docker_test.go b/dockertests/docker_test.go
index efce091..eb0ad02 100644
--- a/dockertests/docker_test.go
+++ b/dockertests/docker_test.go
@@ -28,7 +28,7 @@
  * This test suite acts like a dummy plugin. It listens to events emitted by
  * apidApigeeSync and runs tests.
  */
-var _ = BeforeSuite(func(done Done) {
+var _ = BeforeSuite(func() {
 	defer GinkgoRecover()
 	//hostname := "http://" + os.Getenv("APIGEE_SYNC_DOCKER_IP")
 	pgUrl = os.Getenv("APIGEE_SYNC_DOCKER_PG_URL") + "?sslmode=disable"
@@ -49,30 +49,26 @@
 	config.Set(configName, "dockerIT")
 	config.Set(configConsumerKey, "dummyKey")
 	config.Set(configConsumerSecret, "dummySecret")
-	//config.Set(configApidClusterId, "testClusterId")
 	testServer := initDummyAuthServer()
 
-	// hang until snapshot received
-	apid.Events().ListenFunc(ApigeeSyncEventSelector, func(event apid.Event){
-		if _, ok := event.(*common.Snapshot); ok {
-			close(done)
-		}
-	})
+	initDone := make(chan bool)
+	handler := &waitSnapshotHandler{initDone}
 
-	// Setup dependencies
-	//config.Set(configChangeServerBaseURI, hostname+":"+dockerCsPort+"/")
-	//config.Set(configSnapServerBaseURI, hostname+":"+dockerSsPort+"/")
+
+	// hang until snapshot received
+	apid.Events().Listen(ApigeeSyncEventSelector, handler)
+
 	config.Set(configProxyServerBaseURI, testServer.URL)
 
 	// init plugin
 	apid.RegisterPlugin(initPlugin)
 	apid.InitializePlugins("dockerTest")
 
-
+	<- initDone
 }, 5)
 
 var _ = AfterSuite(func() {
-	pgManager.CleanupAll()
+	//pgManager.CleanupAll()
 })
 
 var _ = Describe("dockerIT", func() {
@@ -83,7 +79,7 @@
 		})
 
 		var _ = AfterEach(func() {
-			pgManager.CleanupTest()
+			//pgManager.CleanupTest()
 		})
 
 		It("should succesfully download new table from pg", func(done Done) {
@@ -91,13 +87,15 @@
 			//log.Debug("SS: " + config.GetString(configSnapServerBaseURI))
 			//log.Debug("Auth: " + config.GetString(configProxyServerBaseURI))
 			tableName := "docker_test"
+			targetTablename := "edgex_" + tableName
 			apid.Events().ListenFunc(ApigeeSyncEventSelector, func(event apid.Event){
 				if s, ok := event.(*common.Snapshot); ok {
 					go func() {
 						defer GinkgoRecover()
 						sqliteDb, err := dataService.DBVersion(s.SnapshotInfo)
 						Expect(err).Should(Succeed())
-						Expect(verifyTestTable(tableName, sqliteDb)).To(BeTrue())
+						Expect(verifyTestTable(targetTablename, sqliteDb)).To(BeTrue())
+						dropTestTable(targetTablename, sqliteDb)
 						close(done)
 					}()
 				}
@@ -106,7 +104,7 @@
 			createTestTable(tableName);
 
 
-		}, 5)
+		}, 1)
 	})
 })
 
@@ -135,6 +133,7 @@
 		var tableName string
 		err = rows.Scan(&tableName)
 		Expect(err).Should(Succeed())
+
 		if tableName==targetTableName {
 			return true
 		}
@@ -142,6 +141,13 @@
 	return false
 }
 
+func dropTestTable(targetTableName string, sqliteDb apid.DB) {
+	tx, err := pgManager.BeginTransaction()
+	Expect(err).Should(Succeed())
+	_, err = tx.Exec("DROP TABLE IF EXISTS edgex." + targetTableName + ";")
+	Expect(err).Should(Succeed())
+}
+
 func initDummyAuthServer() (testServer *httptest.Server) {
 	testRouter := apid.API().Router()
 	testServer = httptest.NewServer(testRouter)
@@ -245,8 +251,8 @@
 	}
 
 	tx, err := pgManager.BeginTransaction()
-	defer tx.Rollback()
 	Expect(err).Should(Succeed())
+	defer tx.Rollback()
 	err = pgManager.InsertApidCluster(tx, cluster)
 	Expect(err).Should(Succeed())
 	err = pgManager.InsertDataScope(tx, ds)
@@ -259,6 +265,17 @@
 	Expect(err).Should(Succeed())
 }
 
+type waitSnapshotHandler struct {
+	initDone chan bool
+}
+
+func (w *waitSnapshotHandler) Handle(event apid.Event) {
+	if _, ok := event.(*common.Snapshot); ok {
+		apid.Events().StopListening(ApigeeSyncEventSelector, w)
+		w.initDone <- true
+	}
+}
+
 func TestDockerApigeeSync(t *testing.T) {
 	RegisterFailHandler(Fail)
 	RunSpecs(t, "ApigeeSync Docker Suite")