Files
tasks/common/namespace/nsmanager/attr_validator_test.go
zeekay 5a601d081b rebrand: go.temporal.io/server -> github.com/hanzoai/tasks
Full module path rebrand from Temporal to Hanzo Tasks:
- go.mod module: github.com/hanzoai/tasks
- All internal Go imports updated (1906 files)
- cmd/server renamed to cmd/tasksd
- Binary name: tasksd (was temporal-server)
- Docker images: hanzoai/tasks (was temporalio/server)
- README rewritten with Hanzo Tasks branding
- LLM.md created with integration notes
- Makefile, goreleaser, CI workflows updated
- go.temporal.io/sdk and go.temporal.io/api imports preserved (separate repos)

Fork of Temporal.io (MIT license).
2026-03-19 10:36:40 -07:00

162 lines
4.2 KiB
Go

package nsmanager
import (
"testing"
"github.com/stretchr/testify/suite"
"go.temporal.io/api/serviceerror"
persistencespb "github.com/hanzoai/tasks/api/persistence/v1"
"github.com/hanzoai/tasks/common/cluster"
"go.uber.org/mock/gomock"
)
type (
attrValidatorSuite struct {
suite.Suite
controller *gomock.Controller
mockClusterMetadata *cluster.MockMetadata
validator *Validator
}
)
func TestAttrValidatorSuite(t *testing.T) {
s := new(attrValidatorSuite)
suite.Run(t, s)
}
func (s *attrValidatorSuite) SetupSuite() {
}
func (s *attrValidatorSuite) TearDownSuite() {
}
func (s *attrValidatorSuite) SetupTest() {
s.controller = gomock.NewController(s.T())
s.mockClusterMetadata = cluster.NewMockMetadata(s.controller)
s.validator = NewValidator(s.mockClusterMetadata)
}
func (s *attrValidatorSuite) TearDownTest() {
s.controller.Finish()
}
func (s *attrValidatorSuite) TestClusterName() {
s.mockClusterMetadata.EXPECT().GetAllClusterInfo().Return(
cluster.TestAllClusterInfo,
).AnyTimes()
err := s.validator.validateClusterName("some random foo bar")
s.IsType(&serviceerror.InvalidArgument{}, err)
err = s.validator.validateClusterName(cluster.TestCurrentClusterName)
s.NoError(err)
err = s.validator.validateClusterName(cluster.TestAlternativeClusterName)
s.NoError(err)
}
func (s *attrValidatorSuite) TestValidateNamespaceReplicationConfigForLocalNamespace() {
s.mockClusterMetadata.EXPECT().GetCurrentClusterName().Return(
cluster.TestCurrentClusterName,
).AnyTimes()
s.mockClusterMetadata.EXPECT().GetAllClusterInfo().Return(
cluster.TestAllClusterInfo,
).AnyTimes()
err := s.validator.ValidateNamespaceReplicationConfigForLocalNamespace(
&persistencespb.NamespaceReplicationConfig{
ActiveClusterName: cluster.TestAlternativeClusterName,
Clusters: []string{
cluster.TestAlternativeClusterName,
},
},
)
s.IsType(&serviceerror.InvalidArgument{}, err)
err = s.validator.ValidateNamespaceReplicationConfigForLocalNamespace(
&persistencespb.NamespaceReplicationConfig{
ActiveClusterName: cluster.TestAlternativeClusterName,
Clusters: []string{
cluster.TestCurrentClusterName,
cluster.TestAlternativeClusterName,
},
},
)
s.IsType(&serviceerror.InvalidArgument{}, err)
err = s.validator.ValidateNamespaceReplicationConfigForLocalNamespace(
&persistencespb.NamespaceReplicationConfig{
ActiveClusterName: cluster.TestCurrentClusterName,
Clusters: []string{
cluster.TestCurrentClusterName,
cluster.TestAlternativeClusterName,
},
},
)
s.IsType(&serviceerror.InvalidArgument{}, err)
err = s.validator.ValidateNamespaceReplicationConfigForLocalNamespace(
&persistencespb.NamespaceReplicationConfig{
ActiveClusterName: cluster.TestCurrentClusterName,
Clusters: []string{
cluster.TestCurrentClusterName,
},
},
)
s.NoError(err)
}
func (s *attrValidatorSuite) TestValidateNamespaceReplicationConfigForGlobalNamespace() {
s.mockClusterMetadata.EXPECT().GetCurrentClusterName().Return(
cluster.TestCurrentClusterName,
).AnyTimes()
s.mockClusterMetadata.EXPECT().GetAllClusterInfo().Return(
cluster.TestAllClusterInfo,
).AnyTimes()
err := s.validator.ValidateNamespaceReplicationConfigForGlobalNamespace(
&persistencespb.NamespaceReplicationConfig{
ActiveClusterName: cluster.TestCurrentClusterName,
Clusters: []string{
cluster.TestCurrentClusterName,
},
},
)
s.NoError(err)
err = s.validator.ValidateNamespaceReplicationConfigForGlobalNamespace(
&persistencespb.NamespaceReplicationConfig{
ActiveClusterName: cluster.TestAlternativeClusterName,
Clusters: []string{
cluster.TestAlternativeClusterName,
},
},
)
s.NoError(err)
err = s.validator.ValidateNamespaceReplicationConfigForGlobalNamespace(
&persistencespb.NamespaceReplicationConfig{
ActiveClusterName: cluster.TestAlternativeClusterName,
Clusters: []string{
cluster.TestCurrentClusterName,
cluster.TestAlternativeClusterName,
},
},
)
s.NoError(err)
err = s.validator.ValidateNamespaceReplicationConfigForGlobalNamespace(
&persistencespb.NamespaceReplicationConfig{
ActiveClusterName: cluster.TestCurrentClusterName,
Clusters: []string{
cluster.TestCurrentClusterName,
cluster.TestAlternativeClusterName,
},
},
)
s.NoError(err)
}