123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- // +build e2e
- // Copyright 2020-2021 InfluxData, Inc. All rights reserved.
- // Use of this source code is governed by MIT
- // license that can be found in the LICENSE file.
- package api_test
- import (
- "context"
- "os"
- "testing"
- influxdb2 "github.com/influxdata/influxdb-client-go/v2"
- "github.com/influxdata/influxdb-client-go/v2/domain"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
- )
- var authToken string
- var serverURL string
- func getEnvValue(key, defVal string) string {
- if val, ok := os.LookupEnv(key); ok {
- return val
- } else {
- return defVal
- }
- }
- func init() {
- authToken = getEnvValue("INFLUXDB2_TOKEN", "my-token")
- serverURL = getEnvValue("INFLUXDB2_URL", "http://localhost:8086")
- }
- func TestAuthorizationsAPI(t *testing.T) {
- client := influxdb2.NewClient(serverURL, authToken)
- authAPI := client.AuthorizationsAPI()
- listRes, err := authAPI.GetAuthorizations(context.Background())
- require.Nil(t, err)
- require.NotNil(t, listRes)
- assert.Len(t, *listRes, 1)
- orgName := "my-org"
- org, err := client.OrganizationsAPI().FindOrganizationByName(context.Background(), orgName)
- require.Nil(t, err)
- require.NotNil(t, org)
- assert.Equal(t, orgName, org.Name)
- permission := &domain.Permission{
- Action: domain.PermissionActionWrite,
- Resource: domain.Resource{
- Type: domain.ResourceTypeBuckets,
- },
- }
- permissions := []domain.Permission{*permission}
- auth, err := authAPI.CreateAuthorizationWithOrgID(context.Background(), *org.Id, permissions)
- require.Nil(t, err)
- require.NotNil(t, auth)
- assert.Equal(t, domain.AuthorizationUpdateRequestStatusActive, *auth.Status, *auth.Status)
- listRes, err = authAPI.GetAuthorizations(context.Background())
- require.Nil(t, err)
- require.NotNil(t, listRes)
- assert.Len(t, *listRes, 2)
- listRes, err = authAPI.FindAuthorizationsByUserName(context.Background(), "my-user")
- require.Nil(t, err)
- require.NotNil(t, listRes)
- assert.Len(t, *listRes, 2)
- listRes, err = authAPI.FindAuthorizationsByOrgID(context.Background(), *org.Id)
- require.Nil(t, err)
- require.NotNil(t, listRes)
- assert.Len(t, *listRes, 2)
- listRes, err = authAPI.FindAuthorizationsByOrgName(context.Background(), "my-org")
- require.Nil(t, err)
- require.NotNil(t, listRes)
- assert.Len(t, *listRes, 2)
- user, err := client.UsersAPI().FindUserByName(context.Background(), "my-user")
- require.Nil(t, err)
- require.NotNil(t, user)
- listRes, err = authAPI.FindAuthorizationsByUserID(context.Background(), *user.Id)
- require.Nil(t, err)
- require.NotNil(t, listRes)
- assert.Len(t, *listRes, 2)
- listRes, err = authAPI.FindAuthorizationsByOrgName(context.Background(), "not-existent-org")
- require.Nil(t, listRes)
- require.NotNil(t, err)
- //assert.Len(t, *listRes, 0)
- auth, err = authAPI.UpdateAuthorizationStatus(context.Background(), auth, domain.AuthorizationUpdateRequestStatusInactive)
- require.Nil(t, err)
- require.NotNil(t, auth)
- assert.Equal(t, domain.AuthorizationUpdateRequestStatusInactive, *auth.Status, *auth.Status)
- listRes, err = authAPI.GetAuthorizations(context.Background())
- require.Nil(t, err)
- require.NotNil(t, listRes)
- assert.Len(t, *listRes, 2)
- err = authAPI.DeleteAuthorization(context.Background(), auth)
- require.Nil(t, err)
- listRes, err = authAPI.GetAuthorizations(context.Background())
- require.Nil(t, err)
- require.NotNil(t, listRes)
- assert.Len(t, *listRes, 1)
- }
- func TestAuthorizationsAPI_Failing(t *testing.T) {
- client := influxdb2.NewClient(serverURL, authToken)
- authAPI := client.AuthorizationsAPI()
- invalidID := "xcv"
- notExistentID := "100000000000000"
- listRes, err := authAPI.FindAuthorizationsByUserName(context.Background(), "invalid-user")
- assert.NotNil(t, err)
- assert.Nil(t, listRes)
- listRes, err = authAPI.FindAuthorizationsByUserID(context.Background(), invalidID)
- assert.NotNil(t, err)
- assert.Nil(t, listRes)
- listRes, err = authAPI.FindAuthorizationsByOrgID(context.Background(), notExistentID)
- assert.NotNil(t, err)
- assert.Nil(t, listRes)
- listRes, err = authAPI.FindAuthorizationsByOrgName(context.Background(), "not-existing-org")
- assert.NotNil(t, err)
- assert.Nil(t, listRes)
- org, err := client.OrganizationsAPI().FindOrganizationByName(context.Background(), "my-org")
- require.Nil(t, err)
- require.NotNil(t, org)
- auth, err := authAPI.CreateAuthorizationWithOrgID(context.Background(), *org.Id, nil)
- assert.NotNil(t, err)
- assert.Nil(t, auth)
- permission := &domain.Permission{
- Action: domain.PermissionActionWrite,
- Resource: domain.Resource{
- Type: domain.ResourceTypeBuckets,
- },
- }
- permissions := []domain.Permission{*permission}
- auth, err = authAPI.CreateAuthorizationWithOrgID(context.Background(), notExistentID, permissions)
- assert.NotNil(t, err)
- assert.Nil(t, auth)
- auth, err = authAPI.UpdateAuthorizationStatusWithID(context.Background(), notExistentID, domain.AuthorizationUpdateRequestStatusInactive)
- assert.NotNil(t, err)
- assert.Nil(t, auth)
- err = authAPI.DeleteAuthorizationWithID(context.Background(), notExistentID)
- assert.NotNil(t, err)
- }
- func TestAuthorizationsAPI_requestFailing(t *testing.T) {
- client := influxdb2.NewClientWithOptions("htp://localhost:9910", authToken, influxdb2.DefaultOptions().SetHTTPRequestTimeout(1))
- authAPI := client.AuthorizationsAPI()
- listRes, err := authAPI.GetAuthorizations(context.Background())
- assert.NotNil(t, err)
- assert.Nil(t, listRes)
- permission := &domain.Permission{
- Action: domain.PermissionActionWrite,
- Resource: domain.Resource{
- Type: domain.ResourceTypeBuckets,
- },
- }
- permissions := []domain.Permission{*permission}
- auth, err := authAPI.CreateAuthorizationWithOrgID(context.Background(), "1000000000000000000", permissions)
- assert.NotNil(t, err)
- assert.Nil(t, auth)
- auth, err = authAPI.UpdateAuthorizationStatusWithID(context.Background(), "1000000000000000000", domain.AuthorizationUpdateRequestStatusInactive)
- assert.NotNil(t, err)
- assert.Nil(t, auth)
- err = authAPI.DeleteAuthorizationWithID(context.Background(), "1000000000000000000")
- assert.NotNil(t, err)
- }
|