add test case, enable listener for delete event
diff --git a/bundle.go b/bundle.go
index 660bd53..a53f31c 100644
--- a/bundle.go
+++ b/bundle.go
@@ -36,7 +36,7 @@
queueDownloadRequest(*DataDeployment)
enqueueRequest(*DownloadRequest)
makeDownloadRequest(string) *DownloadRequest
- //deleteBundles([]DataDeployment)
+ deleteBundles([]DataDeployment)
Close()
}
diff --git a/listener.go b/listener.go
index 701d3a1..8961bae 100644
--- a/listener.go
+++ b/listener.go
@@ -135,7 +135,7 @@
if len(deletedDeployments) > 0 {
log.Debugf("will delete %d old bundles", len(deletedDeployments))
//TODO delete bundles for deleted deployments
- //h.bundleMan.deleteBundles(deletedDeployments)
+ h.bundleMan.deleteBundles(deletedDeployments)
}
}
diff --git a/listener_test.go b/listener_test.go
index ad0b258..d82ce1c 100644
--- a/listener_test.go
+++ b/listener_test.go
@@ -39,6 +39,7 @@
dummyBundleMan = &dummyBundleManager{
requestChan: make(chan *DownloadRequest),
depChan: make(chan *DataDeployment),
+ delChan: make(chan *DataDeployment),
}
testHandler = &apigeeSyncHandler{
dbMan: dummyDbMan,
@@ -124,11 +125,43 @@
apid.Events().Emit(APIGEE_SYNC_EVENT, changeList)
+ // verify
for i := 0; i < len(changes); i++ {
dep := <-dummyBundleMan.depChan
Expect(reflect.DeepEqual(deployments[dep.ID], *dep)).Should(BeTrue())
delete(deployments, dep.ID)
}
+ Expect(len(deployments)).Should(BeZero())
+ })
+
+ It("Delete event shoud deliver to the bundle manager", func() {
+ // emit change event
+ changes := make([]common.Change, 0)
+ deployments := make(map[string]bool)
+ for i := 0; i < 1+rand.Intn(10); i++ {
+ dep := makeTestDeployment()
+ change := common.Change{
+ Operation: common.Delete,
+ Table: CONFIG_METADATA_TABLE,
+ OldRow: rowFromDeployment(dep),
+ }
+ changes = append(changes, change)
+ deployments[dep.ID] = true
+ }
+
+ changeList := &common.ChangeList{
+ Changes: changes,
+ }
+
+ apid.Events().Emit(APIGEE_SYNC_EVENT, changeList)
+
+ // verify
+ for i := 0; i < len(changes); i++ {
+ dep := <-dummyBundleMan.delChan
+ Expect(deployments[dep.ID]).Should(BeTrue())
+ delete(deployments, dep.ID)
+ }
+ Expect(len(deployments)).Should(BeZero())
})
})
})
@@ -136,6 +169,7 @@
type dummyBundleManager struct {
requestChan chan *DownloadRequest
depChan chan *DataDeployment
+ delChan chan *DataDeployment
}
func (bm *dummyBundleManager) initializeBundleDownloading() {
@@ -156,6 +190,12 @@
}
}
+func (bm *dummyBundleManager) deleteBundles(deployments []DataDeployment) {
+ for i := range deployments {
+ bm.delChan <- &deployments[i]
+ }
+}
+
func (bm *dummyBundleManager) Close() {
}