Adds tests to ensure sync does not panic when various endpoints are unreachable
diff --git a/apigeeSync_suite_test.go b/apigeeSync_suite_test.go
index 51a40b3..92ddecd 100644
--- a/apigeeSync_suite_test.go
+++ b/apigeeSync_suite_test.go
@@ -148,6 +148,10 @@
var _ = BeforeEach(func() {
apid.Events().Close()
+ config.Set(configProxyServerBaseURI, testServer.URL)
+ config.Set(configSnapServerBaseURI, testServer.URL)
+ config.Set(configChangeServerBaseURI, testServer.URL)
+
token = ""
downloadDataSnapshot = false
downloadBootSnapshot = false
diff --git a/apigee_sync_test.go b/apigee_sync_test.go
index d6520be..8ae7837 100644
--- a/apigee_sync_test.go
+++ b/apigee_sync_test.go
@@ -5,6 +5,7 @@
"github.com/apigee-labs/transicator/common"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
+ "time"
)
var _ = Describe("listener", func() {
@@ -26,4 +27,73 @@
bootstrap()
})
-})
+
+
+ It("should not panic when auth server when host lookup fails", func(done Done) {
+ defer GinkgoRecover()
+
+ Expect(func() {
+ config.Set(configProxyServerBaseURI, "http://lookup-failure-auth-url")
+ go getBearerToken()}).ToNot(Panic())
+
+ time.Sleep(200 * time.Millisecond)
+ close(done)
+ })
+ It("should not panic when auth server when url contains bad schema", func(done Done) {
+ defer GinkgoRecover()
+
+ Expect(func() {
+ config.Set(configProxyServerBaseURI, "bad-schema-auth-url")
+ go getBearerToken()}).ToNot(Panic())
+
+ time.Sleep(200 * time.Millisecond)
+ close(done)
+ })
+
+
+ It("should not panic when ss server when host lookup fails", func(done Done) {
+ defer GinkgoRecover()
+
+ Expect(func() {
+ config.Set(configSnapServerBaseURI, "http://lookup-failure-ss-url")
+ go downloadSnapshot()}).ToNot(Panic())
+
+ time.Sleep(200 * time.Millisecond)
+ close(done)
+ })
+ It("should not panic when ss server when url contains bad schema", func(done Done) {
+ defer GinkgoRecover()
+
+ Expect(func() {
+ config.Set(configSnapServerBaseURI, "bad-schema-ss-url")
+ go downloadSnapshot()}).ToNot(Panic())
+
+ time.Sleep(200 * time.Millisecond)
+ close(done)
+ })
+
+ It("should not panic when change server host lookup fails", func(done Done) {
+ defer GinkgoRecover()
+
+ Expect(func() {
+ config.Set(configChangeServerBaseURI, "http://lookup-failure-cs-url")
+ downloadDataSnapshot = true;
+ token = "prevent acces token call"
+ go updatePeriodicChanges()}).ToNot(Panic())
+
+ time.Sleep(200 * time.Millisecond)
+ close(done)
+ })
+ It("should not panic when change server url contains bad schema", func(done Done) {
+ defer GinkgoRecover()
+
+ Expect(func() {
+ config.Set(configChangeServerBaseURI, "bad-schema-cs-url")
+ downloadDataSnapshot = true;
+ token = "prevent getBearerToken call"
+ go updatePeriodicChanges()}).ToNot(Panic())
+
+ time.Sleep(200 * time.Millisecond)
+ close(done)
+ })
+})
\ No newline at end of file