package executor

import (
	"context"
	"errors"
	"testing"

	"github.com/everything-on-mysql/cassandra-on-mysql/pkg/cql/cqlerrors"
)

func TestValidateUseKeyspaceBlocked(t *testing.T) {
	exec := &Executor{}
	err := exec.validateUseKeyspace(context.Background(), "", "", "system_auth")
	if err == nil {
		t.Fatalf("expected error for blocked keyspace")
	}
	var coder interface{ Code() int }
	if !errors.As(err, &coder) {
		t.Fatalf("expected cql error code, got %v", err)
	}
	if coder.Code() != cqlerrors.CodeUnauthorized {
		t.Fatalf("expected unauthorized error code, got %d", coder.Code())
	}
}

func TestValidateUseKeyspaceAllowedSystem(t *testing.T) {
	exec := &Executor{}
	if err := exec.validateUseKeyspace(context.Background(), "", "", "system"); err != nil {
		t.Fatalf("expected system keyspace to be allowed, got %v", err)
	}
}
