add 1 more test case, rename vars
diff --git a/listener.go b/listener.go
index e5d3980..393dc03 100644
--- a/listener.go
+++ b/listener.go
@@ -102,7 +102,7 @@
func processChangeList(changes *common.ChangeList) {
// changes have been applied to DB
- var deploymentsToInsert, deploymentsToDelete []DataDeployment
+ var insertedDeployments, deletedDeployments []DataDeployment
var errResults apiDeploymentResults
for _, change := range changes.Changes {
switch change.Table {
@@ -111,7 +111,7 @@
case common.Insert:
dep, err := dataDeploymentFromRow(change.NewRow)
if err == nil {
- deploymentsToInsert = append(deploymentsToInsert, dep)
+ insertedDeployments = append(insertedDeployments, dep)
} else {
result := apiDeploymentResult{
ID: dep.ID,
@@ -130,7 +130,7 @@
ID: id,
DataScopeID: dataScopeID,
}
- deploymentsToDelete = append(deploymentsToDelete, dep)
+ deletedDeployments = append(deletedDeployments, dep)
default:
log.Errorf("unexpected operation: %s", change.Operation)
}
@@ -142,23 +142,23 @@
go transmitDeploymentResultsToServer(errResults)
}
- for _, d := range deploymentsToDelete {
+ for _, d := range deletedDeployments {
deploymentsChanged <- d.ID
}
log.Debug("ChangeList processed")
- for _, dep := range deploymentsToInsert {
+ for _, dep := range insertedDeployments {
queueDownloadRequest(dep)
}
// clean up old bundles
- if len(deploymentsToDelete) > 0 {
- log.Debugf("will delete %d old bundles", len(deploymentsToDelete))
+ if len(deletedDeployments) > 0 {
+ log.Debugf("will delete %d old bundles", len(deletedDeployments))
go func() {
// give clients a minute to avoid conflicts
time.Sleep(bundleCleanupDelay)
- for _, dep := range deploymentsToDelete {
+ for _, dep := range deletedDeployments {
bundleFile := getBundleFile(dep)
log.Debugf("removing old bundle: %v", bundleFile)
safeDelete(bundleFile)
diff --git a/listener_test.go b/listener_test.go
index 09b3dec..09290d8 100644
--- a/listener_test.go
+++ b/listener_test.go
@@ -8,7 +8,6 @@
"net/http"
- "fmt"
"github.com/30x/apid-core"
"github.com/apigee-labs/transicator/common"
. "github.com/onsi/ginkgo"
@@ -19,8 +18,39 @@
Context("ApigeeSync snapshot event", func() {
+ /*
+ * Note that the test snapshot should not be empty.
+ * If it's empty, you can't use deploymentsResult chan to mark the end of processing,
+ * so the threads generated by startupOnExistingDatabase() will mess up later tests
+ */
+ It("should set DB to appropriate version", func(done Done) {
+ deploymentID := "set_version_test"
+ snapshot, dep := createSnapshotDeployment(deploymentID)
+
+ db, err := data.DBVersion(snapshot.SnapshotInfo)
+ Expect(err).ShouldNot(HaveOccurred())
+
+ err = InitDB(db)
+ Expect(err).ShouldNot(HaveOccurred())
+
+ insertDeploymentToDb(dep, db)
+ expectedDB, err := data.DBVersion(snapshot.SnapshotInfo)
+ Expect(err).NotTo(HaveOccurred())
+
+ var listener = make(chan deploymentsResult)
+ addSubscriber <- listener
+
+ apid.Events().Emit(APIGEE_SYNC_EVENT, &snapshot)
+
+ result := <-listener
+ Expect(result.err).ShouldNot(HaveOccurred())
+
+ // DB should have been set
+ Expect(getDB() == expectedDB).Should(BeTrue())
+ close(done)
+ })
+
It("should process unready on existing db startup event", func(done Done) {
- fmt.Println("should process unready on existing db startup event")
deploymentID := "startup_test"
@@ -50,7 +80,6 @@
})
It("should send deployment statuses on existing db startup event", func(done Done) {
- fmt.Println("should send deployment statuses on existing db startup event")
successDep := DataDeployment{
ID: "success",
@@ -195,6 +224,7 @@
addSubscriber <- listener
apid.Events().Emit(APIGEE_SYNC_EVENT, &event)
result = <-listener
+ Expect(result.err).ShouldNot(HaveOccurred())
Expect(len(result.deployments)).To(Equal(0))
close(done)
})