Test for company related changes.
diff --git a/listener_test.go b/listener_test.go
index d285f7b..7316a35 100644
--- a/listener_test.go
+++ b/listener_test.go
@@ -11,7 +11,7 @@
var _ = Describe("listener", func() {
- Context("KMS create/updates verification via changes", func() {
+ Context("KMS create/updates verification via changes for Developer", func() {
It("Create KMS tables via changes, and Verify via verifyApiKey", func(done Done) {
var event = common.ChangeList{}
closed := 0
@@ -50,6 +50,169 @@
},
}
+ /* APP */
+ appItems := common.Row{
+ "id": {
+ Value: "ch_application_id_2",
+ },
+ "developer_id": {
+ Value: "ch_developer_id_2",
+ },
+ "status": {
+ Value: "Approved",
+ },
+ "tenant_id": {
+ Value: "tenant_id_0",
+ },
+ "_change_selector": {
+ Value: "test_org0",
+ },
+ "parent_id": {
+ Value: "ch_developer_id_2",
+ },
+ }
+
+ /* CRED */
+ credItems := common.Row{
+ "id": {
+ Value: "ch_app_credential_2",
+ },
+ "app_id": {
+ Value: "ch_application_id_2",
+ },
+ "tenant_id": {
+ Value: "tenant_id_0",
+ },
+ "status": {
+ Value: "Approved",
+ },
+ "_change_selector": {
+ Value: "test_org0",
+ },
+ }
+
+ /* APP_CRED_APIPRD_MAPPER */
+ mpItems := common.Row{
+ "apiprdt_id": {
+ Value: "ch_api_product_2",
+ },
+ "app_id": {
+ Value: "ch_application_id_2",
+ },
+ "appcred_id": {
+ Value: "ch_app_credential_2",
+ },
+ "status": {
+ Value: "Approved",
+ },
+ "_change_selector": {
+ Value: "test_org0",
+ },
+ "tenant_id": {
+ Value: "tenant_id_0",
+ },
+ }
+
+ event.Changes = []common.Change{
+ {
+ Table: "kms.api_product",
+ NewRow: srvItems,
+ Operation: 1,
+ },
+ {
+ Table: "kms.developer",
+ NewRow: devItems,
+ Operation: 1,
+ },
+ {
+ Table: "kms.app",
+ NewRow: appItems,
+ Operation: 1,
+ },
+ {
+ Table: "kms.app_credential",
+ NewRow: credItems,
+ Operation: 1,
+ },
+ {
+ Table: "kms.app_credential_apiproduct_mapper",
+ NewRow: mpItems,
+ Operation: 1,
+ },
+ }
+
+ h := &test_handler{
+ "checkDatabase post Insertion",
+ func(e apid.Event) {
+ defer GinkgoRecover()
+
+ // ignore the first event, let standard listener process it
+ changeSet := e.(*common.ChangeList)
+ if len(changeSet.Changes) > 0 || closed == 1 {
+ return
+ }
+ v := url.Values{
+ "key": []string{"ch_app_credential_2"},
+ "uriPath": []string{"/test"},
+ "scopeuuid": []string{"XYZ"},
+ "action": []string{"verify"},
+ }
+ rsp, err := verifyAPIKey(v)
+ Expect(err).ShouldNot(HaveOccurred())
+ var respj kmsResponseSuccess
+ json.Unmarshal(rsp, &respj)
+ Expect(respj.Type).Should(Equal("APIKeyContext"))
+ Expect(respj.RspInfo.Key).Should(Equal("ch_app_credential_2"))
+ closed = 1
+ close(done)
+ },
+ }
+
+ apid.Events().Listen("ApigeeSync", h)
+ apid.Events().Emit("ApigeeSync", &event)
+ apid.Events().Emit("ApigeeSync", &common.ChangeList{})
+ })
+ })
+
+ Context("KMS create/updates verification via changes for Company", func() {
+ It("Create KMS tables via changes, and Verify via verifyApiKey", func(done Done) {
+ var event = common.ChangeList{}
+ closed := 0
+ /* API Product */
+ srvItems := common.Row{
+ "id": {
+ Value: "ch_api_product_2",
+ },
+ "api_resources": {
+ Value: "{}",
+ },
+ "environments": {
+ Value: "{Env_0, Env_1}",
+ },
+ "tenant_id": {
+ Value: "tenant_id_0",
+ },
+ "_change_selector": {
+ Value: "test_org0",
+ },
+ }
+
+ /* DEVELOPER */
+ devItems := common.Row{
+ "id": {
+ Value: "ch_developer_id_2",
+ },
+ "status": {
+ Value: "Active",
+ },
+ "tenant_id": {
+ Value: "tenant_id_0",
+ },
+ "_change_selector": {
+ Value: "test_org0",
+ },
+ }
+ /* COMPANY */
companyItems := common.Row{
"id": {
Value: "ch_company_id_2",
@@ -70,7 +233,7 @@
Value: "test_company_display_name0",
},
}
-
+ /* COMPANY_DEVELOPER */
companyDeveloperItems := common.Row{
"id": {
Value: "ch_developer_id_2",
@@ -95,7 +258,7 @@
Value: "ch_application_id_2",
},
"developer_id": {
- Value: "ch_developer_id_2",
+ Value: "ch_company_id_2",
},
"status": {
Value: "Approved",
@@ -107,7 +270,7 @@
Value: "test_org0",
},
"parent_id": {
- Value: "ch_developer_id_2",
+ Value: "ch_company_id_2",
},
}
@@ -223,7 +386,7 @@
})
})
- It("Modify tables in KMS tables, and verify via verifyApiKey", func(done Done) {
+ It("Modify tables in KMS tables, and verify via verifyApiKey for Developer", func(done Done) {
closed := 0
var event = common.ChangeList{}
var event2 = common.ChangeList{}
@@ -281,8 +444,310 @@
"_change_selector": {
Value: "test_org0",
},
+ "parent_id": {
+ Value: "ch_developer_id_0",
+ },
}
+ /* CRED */
+ credItemsOld := common.Row{
+ "id": {
+ Value: "ch_app_credential_0",
+ },
+ "app_id": {
+ Value: "ch_application_id_0",
+ },
+ "tenant_id": {
+ Value: "tenant_id_0",
+ },
+ "status": {
+ Value: "Approved",
+ },
+ "_change_selector": {
+ Value: "test_org0",
+ },
+ }
+
+ /* APP_CRED_APIPRD_MAPPER */
+ mpItemsOld := common.Row{
+ "apiprdt_id": {
+ Value: "ch_api_product_0",
+ },
+ "app_id": {
+ Value: "ch_application_id_0",
+ },
+ "appcred_id": {
+ Value: "ch_app_credential_0",
+ },
+ "status": {
+ Value: "Approved",
+ },
+ "_change_selector": {
+ Value: "test_org0",
+ },
+ "tenant_id": {
+ Value: "tenant_id_0",
+ },
+ }
+
+ /* New to be replaced data */
+ /* API PRODUCT */
+ srvItemsNew := common.Row{
+ "id": {
+ Value: "ch_api_product_1",
+ },
+ "api_resources": {
+ Value: "{}",
+ },
+ "environments": {
+ Value: "{Env_0, Env_1}",
+ },
+ "tenant_id": {
+ Value: "tenant_id_0",
+ },
+ "_change_selector": {
+ Value: "test_org0",
+ },
+ }
+
+ /* DEVELOPER */
+ devItemsNew := common.Row{
+ "id": {
+ Value: "ch_developer_id_1",
+ },
+ "status": {
+ Value: "Active",
+ },
+ "tenant_id": {
+ Value: "tenant_id_0",
+ },
+ "_change_selector": {
+ Value: "test_org0",
+ },
+ }
+
+ /* APP */
+ appItemsNew := common.Row{
+ "id": {
+ Value: "ch_application_id_1",
+ },
+ "developer_id": {
+ Value: "ch_developer_id_1",
+ },
+ "status": {
+ Value: "Approved",
+ },
+ "tenant_id": {
+ Value: "tenant_id_0",
+ },
+ "_change_selector": {
+ Value: "test_org0",
+ },
+ "parent_id": {
+ Value: "ch_developer_id_1",
+ },
+ }
+
+ /* CRED */
+ credItemsNew := common.Row{
+ "id": {
+ Value: "ch_app_credential_1",
+ },
+ "app_id": {
+ Value: "ch_application_id_1",
+ },
+ "tenant_id": {
+ Value: "tenant_id_0",
+ },
+ "status": {
+ Value: "Approved",
+ },
+ "_change_selector": {
+ Value: "test_org0",
+ },
+ }
+
+ /* APP_CRED_APIPRD_MAPPER */
+ mpItemsNew := common.Row{
+ "apiprdt_id": {
+ Value: "ch_api_product_1",
+ },
+ "app_id": {
+ Value: "ch_application_id_1",
+ },
+ "appcred_id": {
+ Value: "ch_app_credential_1",
+ },
+ "status": {
+ Value: "Approved",
+ },
+ "_change_selector": {
+ Value: "test_org0",
+ },
+ "tenant_id": {
+ Value: "tenant_id_0",
+ },
+ }
+
+ event.Changes = []common.Change{
+ {
+ Table: "kms.api_product",
+ NewRow: srvItemsOld,
+ Operation: 1,
+ },
+ {
+ Table: "kms.developer",
+ NewRow: devItemsOld,
+ Operation: 1,
+ },
+
+ {
+ Table: "kms.app",
+ NewRow: appItemsOld,
+ Operation: 1,
+ },
+ {
+ Table: "kms.app_credential",
+ NewRow: credItemsOld,
+ Operation: 1,
+ },
+ {
+ Table: "kms.app_credential_apiproduct_mapper",
+ NewRow: mpItemsOld,
+ Operation: 1,
+ },
+ }
+
+ event2.Changes = []common.Change{
+ {
+ Table: "kms.api_product",
+ OldRow: srvItemsOld,
+ NewRow: srvItemsNew,
+ Operation: 2,
+ },
+ {
+ Table: "kms.developer",
+ OldRow: devItemsOld,
+ NewRow: devItemsNew,
+ Operation: 2,
+ },
+ {
+ Table: "kms.app",
+ OldRow: appItemsOld,
+ NewRow: appItemsNew,
+ Operation: 2,
+ },
+ {
+ Table: "kms.app_credential",
+ OldRow: credItemsOld,
+ NewRow: credItemsNew,
+ Operation: 2,
+ },
+ {
+ Table: "kms.app_credential_apiproduct_mapper",
+ OldRow: mpItemsOld,
+ NewRow: mpItemsNew,
+ Operation: 2,
+ },
+ }
+
+ h := &test_handler{
+ "checkDatabase post Insertion",
+ func(e apid.Event) {
+ defer GinkgoRecover()
+
+ // ignore the first event, let standard listener process it
+ changeSet := e.(*common.ChangeList)
+ if len(changeSet.Changes) > 0 || closed == 1 {
+ return
+ }
+ v := url.Values{
+ "key": []string{"ch_app_credential_1"},
+ "uriPath": []string{"/test"},
+ "scopeuuid": []string{"XYZ"},
+ "action": []string{"verify"},
+ }
+ rsp, err := verifyAPIKey(v)
+ Expect(err).ShouldNot(HaveOccurred())
+ var respj kmsResponseSuccess
+ json.Unmarshal(rsp, &respj)
+ Expect(respj.Type).Should(Equal("APIKeyContext"))
+ Expect(respj.RspInfo.Key).Should(Equal("ch_app_credential_1"))
+ closed = 1
+ close(done)
+ },
+ }
+
+ apid.Events().Listen("ApigeeSync", h)
+ apid.Events().Emit("ApigeeSync", &event)
+ apid.Events().Emit("ApigeeSync", &event2)
+ apid.Events().Emit("ApigeeSync", &common.ChangeList{})
+ })
+
+ It("Modify tables in KMS tables, and verify via verifyApiKey for Company", func(done Done) {
+ closed := 0
+ var event = common.ChangeList{}
+ var event2 = common.ChangeList{}
+
+ /* Orig data */
+ /* API Product */
+ srvItemsOld := common.Row{
+ "id": {
+ Value: "ch_api_product_0",
+ },
+ "api_resources": {
+ Value: "{}",
+ },
+ "environments": {
+ Value: "{Env_0, Env_1}",
+ },
+ "tenant_id": {
+ Value: "tenant_id_0",
+ },
+ "_change_selector": {
+ Value: "test_org0",
+ },
+ }
+
+ /* DEVELOPER */
+ devItemsOld := common.Row{
+ "id": {
+ Value: "ch_developer_id_0",
+ },
+ "status": {
+ Value: "Active",
+ },
+ "tenant_id": {
+ Value: "tenant_id_0",
+ },
+ "_change_selector": {
+ Value: "test_org0",
+ },
+ }
+
+ /* APP */
+ appItemsOld := common.Row{
+ "id": {
+ Value: "ch_application_id_0",
+ },
+ "developer_id": {
+ Value: "ch_company_id_0",
+ },
+ "status": {
+ Value: "Approved",
+ },
+ "tenant_id": {
+ Value: "tenant_id_0",
+ },
+ "_change_selector": {
+ Value: "test_org0",
+ },
+ "parent_id": {
+ Value: "ch_company_id_0",
+ },
+ }
+
+ /* COMPANY */
companyItemsOld := common.Row{
"id": {
Value: "ch_company_id_0",
@@ -304,6 +769,7 @@
},
}
+ /* COMPANY_DEVELOPER */
companyDeveloperItemsOld := common.Row{
"id": {
Value: "ch_developer_id_0",
@@ -444,7 +910,7 @@
Value: "ch_application_id_1",
},
"developer_id": {
- Value: "ch_developer_id_1",
+ Value: "ch_company_id_1",
},
"status": {
Value: "Approved",
@@ -456,7 +922,7 @@
Value: "test_org0",
},
"parent_id": {
- Value: "ch_developer_id_1",
+ Value: "ch_company_id_1",
},
}
@@ -616,6 +1082,7 @@
apid.Events().Emit("ApigeeSync", &event2)
apid.Events().Emit("ApigeeSync", &common.ChangeList{})
})
+
})
type test_handler struct {