package rbac

import "testing"

func TestDedicatedCIDRPathPermissions(t *testing.T) {
	expected := map[string]string{
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cidrs":                  "orgs/{org_id}/projects/{project_id}/cidrs/create",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cidrs":                   "orgs/{org_id}/projects/{project_id}/cidrs/list",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cidrs/([0-9A-Za-z]+)":    "orgs/{org_id}/projects/{project_id}/cidrs/{cidr_id}/get",
		"patch:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cidrs/([0-9A-Za-z]+)":  "orgs/{org_id}/projects/{project_id}/cidrs/{cidr_id}/update",
		"delete:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cidrs/([0-9A-Za-z]+)": "orgs/{org_id}/projects/{project_id}/cidrs/{cidr_id}/delete",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/defaultCidr":             "orgs/{org_id}/projects/{project_id}/defaultCidr/get",
	}

	for path, permission := range expected {
		if actual := RBACPathPattern2ResourceMap[path]; actual != permission {
			t.Errorf("permission for %q = %q, want %q", path, actual, permission)
		}
	}
}
