blob: 131ce4e45809664b32612b137e2d2ea8265ada76 [file] [log] [blame] [edit]
package apidVerifyApiKey
import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/30x/apid-core"
"github.com/30x/apid-core/factory"
"io/ioutil"
"net/http"
"net/http/httptest"
"os"
"testing"
)
var (
testTempDir string
testServer *httptest.Server
)
var _ = BeforeSuite(func() {
apid.Initialize(factory.DefaultServicesFactory())
config := apid.Config()
var err error
testTempDir, err = ioutil.TempDir("", "api_test")
Expect(err).NotTo(HaveOccurred())
config.Set("data_path", testTempDir)
apid.InitializePlugins("")
db, err := apid.Data().DB()
Expect(err).NotTo(HaveOccurred())
setDB(db)
createTables(db)
createApidClusterTables(db)
addScopes(db)
testServer = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
if req.URL.Path == apiPath {
handleRequest(w, req)
}
}))
createTestData(db)
})
var _ = AfterSuite(func() {
apid.Events().Close()
if testServer != nil {
testServer.Close()
}
os.RemoveAll(testTempDir)
})
func TestVerifyAPIKey(t *testing.T) {
RegisterFailHandler(Fail)
RunSpecs(t, "VerifyAPIKey Suite")
}
func createTestData(db apid.DB) {
txn, err := db.Begin()
Expect(err).ShouldNot(HaveOccurred())
// api products
for i := 0; i < 10; i++ {
generateTestApiProduct(i, txn)
}
// developers
for i := 0; i < 10; i++ {
generateTestDeveloper(i, txn)
}
// application
var j, k int
for i := 0; i < 10; i++ {
for j = k; j < 10+k; j++ {
generateTestApp(j, i, txn)
}
k = j
}
// app credentials
for i := 0; i < 10; i++ {
generateTestAppCreds(i, txn)
}
// api product mapper
for i := 0; i < 10; i++ {
generateTestApiProductMapper(i, txn)
}
// Following are data for company
// api products
for i := 100; i < 110; i++ {
generateTestApiProduct(i, txn)
}
// companies
for i := 100; i < 110; i++ {
generateTestCompany(i, txn)
}
// company developers
for i := 100; i < 110; i++ {
generateTestCompanyDeveloper(i, txn)
}
// application
k = 100
for i := 100; i < 110; i++ {
for j = k; j < 100+k; j++ {
generateTestAppCompany(j, i, txn)
}
k = j
}
// app credentials
for i := 100; i < 110; i++ {
generateTestAppCreds(i, txn)
}
// api product mapper
for i := 100; i < 110; i++ {
generateTestApiProductMapper(i, txn)
}
txn.Commit()
var count int64
db.QueryRow("select count(*) from EDGEX_DATA_SCOPE").Scan(&count)
log.Info("Found ", count)
}