| // Copyright 2017 Google Inc. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| package verifyApiKey |
| |
| import ( |
| "github.com/apid/apid-core" |
| "github.com/apid/apid-core/factory" |
| "github.com/apid/apidApiMetadata/common" |
| . "github.com/onsi/ginkgo" |
| . "github.com/onsi/gomega" |
| "io/ioutil" |
| "sync" |
| ) |
| |
| var _ = Describe("DataTest", func() { |
| |
| Context("query Db to get api key details", func() { |
| var dataTestTempDir string |
| var dbMan *DbManager |
| var _ = BeforeEach(func() { |
| var err error |
| dataTestTempDir, err = ioutil.TempDir(testTempDirBase, "sqlite3") |
| Expect(err).NotTo(HaveOccurred()) |
| s := factory.DefaultServicesFactory() |
| apid.Initialize(s) |
| config := apid.Config() |
| config.Set("local_storage_path", dataTestTempDir) |
| common.SetApidServices(s, s.Log()) |
| |
| dbMan = &DbManager{ |
| DbManager: common.DbManager{ |
| Data: s.Data(), |
| DbMux: sync.RWMutex{}, |
| CipherManager: &DummyCipherMan{}, |
| }, |
| } |
| dbMan.SetDbVersion(dataTestTempDir) |
| |
| }) |
| |
| It("should get company getApiKeyDetails for happy path", func() { |
| setupApikeyCompanyTestDb(dbMan.Db) |
| |
| dataWrapper := VerifyApiKeyRequestResponseDataWrapper{ |
| verifyApiKeyRequest: VerifyApiKeyRequest{ |
| OrganizationName: "apigee-mcrosrvc-client0001", |
| Key: "63tHSNLKJkcc6GENVWGT1Zw5gek7kVJ0", |
| }, |
| } |
| err := dbMan.getApiKeyDetails(&dataWrapper) |
| Expect(err).NotTo(HaveOccurred()) |
| |
| Expect(dataWrapper.ctype).Should(BeEquivalentTo("company")) |
| Expect(dataWrapper.tenant_id).Should(BeEquivalentTo("bc811169")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.ClientId.Status).Should(BeEquivalentTo("APPROVED")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.ClientId.ClientSecret).Should(BeEquivalentTo("Ui8dcyGW3lA04YdX")) |
| |
| Expect(dataWrapper.tempDeveloperDetails.Id).Should(BeEquivalentTo("7834c683-9453-4389-b816-34ca24dfccd9")) |
| Expect(dataWrapper.tempDeveloperDetails.UserName).Should(BeEquivalentTo("East India Company")) |
| Expect(dataWrapper.tempDeveloperDetails.FirstName).Should(BeEquivalentTo("DevCompany")) |
| Expect(dataWrapper.tempDeveloperDetails.LastName).Should(BeEquivalentTo("")) |
| Expect(dataWrapper.tempDeveloperDetails.Email).Should(BeEquivalentTo("")) |
| Expect(dataWrapper.tempDeveloperDetails.Status).Should(BeEquivalentTo("ACTIVE")) |
| Expect(dataWrapper.tempDeveloperDetails.CreatedAt).Should(BeEquivalentTo("2017-08-05 19:54:12.359+00:00")) |
| Expect(dataWrapper.tempDeveloperDetails.CreatedBy).Should(BeEquivalentTo("defaultUser")) |
| Expect(dataWrapper.tempDeveloperDetails.LastmodifiedAt).Should(BeEquivalentTo("2017-08-05 19:54:12.359+00:00")) |
| Expect(dataWrapper.tempDeveloperDetails.LastmodifiedBy).Should(BeEquivalentTo("defaultUser")) |
| |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.Id).Should(BeEquivalentTo("d371f05a-7c04-430c-b12d-26cf4e4d5d65")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.Name).Should(BeEquivalentTo("CompApp2")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.AccessType).Should(BeEquivalentTo("READ")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.CallbackUrl).Should(BeEquivalentTo("www.apple.com")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.DisplayName).Should(BeEquivalentTo("")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.Status).Should(BeEquivalentTo("APPROVED")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.AppFamily).Should(BeEquivalentTo("default")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.Company).Should(BeEquivalentTo("7834c683-9453-4389-b816-34ca24dfccd9")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.CreatedAt).Should(BeEquivalentTo("2017-08-07 17:00:54.25+00:00")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.CreatedBy).Should(BeEquivalentTo("defaultUser")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.LastmodifiedAt).Should(BeEquivalentTo("2017-08-07 17:09:08.259+00:00")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.LastmodifiedBy).Should(BeEquivalentTo("defaultUser")) |
| |
| }) |
| |
| It("should get developer ApiKeyDetails - happy path", func() { |
| setupApikeyDeveloperTestDb(dbMan.Db) |
| |
| dataWrapper := VerifyApiKeyRequestResponseDataWrapper{ |
| verifyApiKeyRequest: VerifyApiKeyRequest{ |
| OrganizationName: "apigee-mcrosrvc-client0001", |
| Key: "63tHSNLKJkcc6GENVWGT1Zw5gek7kVJ0", |
| }, |
| } |
| err := dbMan.getApiKeyDetails(&dataWrapper) |
| Expect(err).NotTo(HaveOccurred()) |
| |
| Expect(dataWrapper.ctype).Should(BeEquivalentTo("developer")) |
| Expect(dataWrapper.tenant_id).Should(BeEquivalentTo("bc811169")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.ClientId.Status).Should(BeEquivalentTo("APPROVED")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.ClientId.ClientSecret).Should(BeEquivalentTo("Ui8dcyGW3lA04YdX")) |
| |
| Expect(dataWrapper.tempDeveloperDetails.Id).Should(BeEquivalentTo("209ffd18-37e9-4a67-9e30-a5c40a534b6c")) |
| Expect(dataWrapper.tempDeveloperDetails.UserName).Should(BeEquivalentTo("wilson")) |
| Expect(dataWrapper.tempDeveloperDetails.FirstName).Should(BeEquivalentTo("Woodre")) |
| Expect(dataWrapper.tempDeveloperDetails.LastName).Should(BeEquivalentTo("Wilson")) |
| Expect(dataWrapper.tempDeveloperDetails.Email).Should(BeEquivalentTo("developer@apigee.com")) |
| Expect(dataWrapper.tempDeveloperDetails.Status).Should(BeEquivalentTo("ACTIVE")) |
| Expect(dataWrapper.tempDeveloperDetails.CreatedAt).Should(BeEquivalentTo("2017-08-08 17:24:09.008+00:00")) |
| Expect(dataWrapper.tempDeveloperDetails.CreatedBy).Should(BeEquivalentTo("defaultUser")) |
| Expect(dataWrapper.tempDeveloperDetails.LastmodifiedAt).Should(BeEquivalentTo("2017-08-08 17:24:09.008+00:00")) |
| Expect(dataWrapper.tempDeveloperDetails.LastmodifiedBy).Should(BeEquivalentTo("defaultUser")) |
| |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.Id).Should(BeEquivalentTo("d371f05a-7c04-430c-b12d-26cf4e4d5d65")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.Name).Should(BeEquivalentTo("DeveloperApp")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.AccessType).Should(BeEquivalentTo("READ")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.CallbackUrl).Should(BeEquivalentTo("www.apple.com")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.DisplayName).Should(BeEquivalentTo("")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.Status).Should(BeEquivalentTo("APPROVED")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.AppFamily).Should(BeEquivalentTo("default")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.Company).Should(BeEquivalentTo("")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.CreatedAt).Should(BeEquivalentTo("2017-08-07 17:00:54.25+00:00")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.CreatedBy).Should(BeEquivalentTo("defaultUser")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.LastmodifiedAt).Should(BeEquivalentTo("2017-08-07 17:09:08.259+00:00")) |
| Expect(dataWrapper.verifyApiKeySuccessResponse.App.LastmodifiedBy).Should(BeEquivalentTo("defaultUser")) |
| |
| }) |
| |
| It("should throw error when apikey not found", func() { |
| |
| setupApikeyCompanyTestDb(dbMan.Db) |
| dataWrapper := VerifyApiKeyRequestResponseDataWrapper{ |
| verifyApiKeyRequest: VerifyApiKeyRequest{ |
| OrganizationName: "apigee-mcrosrvc-client0001", |
| Key: "invalid-Jkcc6GENVWGT1Zw5gek7kVJ0", |
| }, |
| } |
| err := dbMan.getApiKeyDetails(&dataWrapper) |
| Expect(err).ShouldNot(BeNil()) |
| Expect(err.Error()).Should(BeEquivalentTo("InvalidApiKey")) |
| }) |
| |
| It("should get api products ", func() { |
| |
| setupApikeyCompanyTestDb(dbMan.Db) |
| |
| apiProducts := dbMan.getApiProductsForApiKey("63tHSNLKJkcc6GENVWGT1Zw5gek7kVJ0", "bc811169") |
| Expect(len(apiProducts)).Should(BeEquivalentTo(1)) |
| |
| Expect(apiProducts[0].Id).Should(BeEquivalentTo("24987a63-edb9-4d6b-9334-87e1d70df8e3")) |
| Expect(apiProducts[0].Name).Should(BeEquivalentTo("KeyProduct4")) |
| Expect(apiProducts[0].DisplayName).Should(BeEquivalentTo("Sandbox Diamond")) |
| Expect(apiProducts[0].Status).Should(BeEquivalentTo("")) |
| Expect(apiProducts[0].QuotaTimeunit).Should(BeEquivalentTo("")) |
| Expect(apiProducts[0].QuotaInterval).Should(BeEquivalentTo(0)) |
| Expect(apiProducts[0].QuotaLimit).Should(BeEquivalentTo("")) |
| |
| Expect(apiProducts[0].Resources).Should(BeEquivalentTo([]string{"/zoho", "/twitter", "/nike"})) |
| Expect(apiProducts[0].Apiproxies).Should(BeEquivalentTo([]string{"DevApplication", "KeysApplication"})) |
| Expect(apiProducts[0].Environments).Should(BeEquivalentTo([]string{"test"})) |
| Expect(apiProducts[0].Company).Should(BeEquivalentTo("")) |
| Expect(len(apiProducts[0].Attributes)).Should(BeEquivalentTo(0)) |
| |
| Expect(apiProducts[0].CreatedBy).Should(BeEquivalentTo("defaultUser")) |
| Expect(apiProducts[0].CreatedAt).Should(BeEquivalentTo("2017-08-08 02:53:32.726+00:00")) |
| Expect(apiProducts[0].LastmodifiedBy).Should(BeEquivalentTo("defaultUser")) |
| Expect(apiProducts[0].LastmodifiedAt).Should(BeEquivalentTo("2017-08-08 02:53:32.726+00:00")) |
| |
| }) |
| |
| It("should return empty array when no api products found", func() { |
| |
| setupApikeyCompanyTestDb(dbMan.Db) |
| apiProducts := dbMan.getApiProductsForApiKey("invalid-LKJkcc6GENVWGT1Zw5gek7kVJ0", "bc811169") |
| Expect(len(apiProducts)).Should(BeEquivalentTo(0)) |
| |
| }) |
| }) |
| }) |