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