@@ -30,6 +30,7 @@ import (
30
30
"testing"
31
31
32
32
"github.com/golang/mock/gomock"
33
+ "github.com/google/uuid"
33
34
"github.com/stretchr/testify/require"
34
35
"github.com/stretchr/testify/suite"
35
36
enumspb "go.temporal.io/api/enums/v1"
@@ -684,18 +685,44 @@ func (s *namespaceValidatorSuite) Test_Intercept_SearchAttributeRequests() {
684
685
}
685
686
}
686
687
687
- func (s * namespaceValidatorSuite ) Test_LengthValidationIntercept () {
688
+ func (s * namespaceValidatorSuite ) Test_NamespaceValidateIntercept () {
688
689
nvi := NewNamespaceValidatorInterceptor (
689
690
s .mockRegistry ,
690
691
dynamicconfig .GetBoolPropertyFn (false ),
691
692
dynamicconfig .GetIntPropertyFn (10 ))
692
693
serverInfo := & grpc.UnaryServerInfo {
693
694
FullMethod : "/temporal/random" ,
694
695
}
696
+ requestNamespace := namespace .FromPersistentState (
697
+ & persistence.GetNamespaceResponse {
698
+ Namespace : & persistencespb.NamespaceDetail {
699
+ Config : & persistencespb.NamespaceConfig {},
700
+ ReplicationConfig : & persistencespb.NamespaceReplicationConfig {},
701
+ Info : & persistencespb.NamespaceInfo {
702
+ Id : uuid .New ().String (),
703
+ Name : "namespace" ,
704
+ State : enumspb .NAMESPACE_STATE_REGISTERED ,
705
+ },
706
+ },
707
+ })
708
+ requestNamespaceTooLong := namespace .FromPersistentState (
709
+ & persistence.GetNamespaceResponse {
710
+ Namespace : & persistencespb.NamespaceDetail {
711
+ Config : & persistencespb.NamespaceConfig {},
712
+ ReplicationConfig : & persistencespb.NamespaceReplicationConfig {},
713
+ Info : & persistencespb.NamespaceInfo {
714
+ Id : uuid .New ().String (),
715
+ Name : "namespaceTooLong" ,
716
+ State : enumspb .NAMESPACE_STATE_REGISTERED ,
717
+ },
718
+ },
719
+ })
720
+ s .mockRegistry .EXPECT ().GetNamespace (namespace .Name ("namespace" )).Return (requestNamespace , nil ).AnyTimes ()
721
+ s .mockRegistry .EXPECT ().GetNamespace (namespace .Name ("namespaceTooLong" )).Return (requestNamespaceTooLong , nil ).AnyTimes ()
695
722
696
723
req := & workflowservice.StartWorkflowExecutionRequest {Namespace : "namespace" }
697
724
handlerCalled := false
698
- _ , err := nvi .LengthValidationIntercept (context .Background (), req , serverInfo , func (ctx context.Context , req interface {}) (interface {}, error ) {
725
+ _ , err := nvi .NamespaceValidateIntercept (context .Background (), req , serverInfo , func (ctx context.Context , req interface {}) (interface {}, error ) {
699
726
handlerCalled = true
700
727
return & workflowservice.StartWorkflowExecutionResponse {}, nil
701
728
})
@@ -704,10 +731,82 @@ func (s *namespaceValidatorSuite) Test_LengthValidationIntercept() {
704
731
705
732
req = & workflowservice.StartWorkflowExecutionRequest {Namespace : "namespaceTooLong" }
706
733
handlerCalled = false
707
- _ , err = nvi .LengthValidationIntercept (context .Background (), req , serverInfo , func (ctx context.Context , req interface {}) (interface {}, error ) {
734
+ _ , err = nvi .NamespaceValidateIntercept (context .Background (), req , serverInfo , func (ctx context.Context , req interface {}) (interface {}, error ) {
708
735
handlerCalled = true
709
736
return & workflowservice.StartWorkflowExecutionResponse {}, nil
710
737
})
711
738
s .False (handlerCalled )
712
739
s .Error (err )
713
740
}
741
+
742
+ func (s * namespaceValidatorSuite ) TestSetNamespace () {
743
+ namespaceRequestName := uuid .New ().String ()
744
+ namespaceEntryName := uuid .New ().String ()
745
+ namespaceEntry := namespace .FromPersistentState (
746
+ & persistence.GetNamespaceResponse {
747
+ Namespace : & persistencespb.NamespaceDetail {
748
+ Config : & persistencespb.NamespaceConfig {},
749
+ ReplicationConfig : & persistencespb.NamespaceReplicationConfig {},
750
+ Info : & persistencespb.NamespaceInfo {
751
+ Id : uuid .New ().String (),
752
+ Name : namespaceEntryName ,
753
+ State : enumspb .NAMESPACE_STATE_REGISTERED ,
754
+ },
755
+ },
756
+ })
757
+
758
+ nvi := NewNamespaceValidatorInterceptor (
759
+ s .mockRegistry ,
760
+ dynamicconfig .GetBoolPropertyFn (false ),
761
+ dynamicconfig .GetIntPropertyFn (10 ),
762
+ )
763
+
764
+ queryReq := & workflowservice.RespondQueryTaskCompletedRequest {}
765
+ nvi .setNamespace (namespaceEntry , queryReq )
766
+ s .Equal (namespaceEntryName , queryReq .Namespace )
767
+ queryReq .Namespace = namespaceRequestName
768
+ nvi .setNamespace (namespaceEntry , queryReq )
769
+ s .Equal (namespaceRequestName , queryReq .Namespace )
770
+
771
+ completeWorkflowTaskReq := & workflowservice.RespondWorkflowTaskCompletedRequest {}
772
+ nvi .setNamespace (namespaceEntry , completeWorkflowTaskReq )
773
+ s .Equal (namespaceEntryName , completeWorkflowTaskReq .Namespace )
774
+ completeWorkflowTaskReq .Namespace = namespaceRequestName
775
+ nvi .setNamespace (namespaceEntry , completeWorkflowTaskReq )
776
+ s .Equal (namespaceRequestName , completeWorkflowTaskReq .Namespace )
777
+
778
+ failWorkflowTaskReq := & workflowservice.RespondWorkflowTaskFailedRequest {}
779
+ nvi .setNamespace (namespaceEntry , failWorkflowTaskReq )
780
+ s .Equal (namespaceEntryName , failWorkflowTaskReq .Namespace )
781
+ failWorkflowTaskReq .Namespace = namespaceRequestName
782
+ nvi .setNamespace (namespaceEntry , failWorkflowTaskReq )
783
+ s .Equal (namespaceRequestName , failWorkflowTaskReq .Namespace )
784
+
785
+ heartbeatActivityTaskReq := & workflowservice.RecordActivityTaskHeartbeatRequest {}
786
+ nvi .setNamespace (namespaceEntry , heartbeatActivityTaskReq )
787
+ s .Equal (namespaceEntryName , heartbeatActivityTaskReq .Namespace )
788
+ heartbeatActivityTaskReq .Namespace = namespaceRequestName
789
+ nvi .setNamespace (namespaceEntry , heartbeatActivityTaskReq )
790
+ s .Equal (namespaceRequestName , heartbeatActivityTaskReq .Namespace )
791
+
792
+ cancelActivityTaskReq := & workflowservice.RespondActivityTaskCanceledRequest {}
793
+ nvi .setNamespace (namespaceEntry , cancelActivityTaskReq )
794
+ s .Equal (namespaceEntryName , cancelActivityTaskReq .Namespace )
795
+ cancelActivityTaskReq .Namespace = namespaceRequestName
796
+ nvi .setNamespace (namespaceEntry , cancelActivityTaskReq )
797
+ s .Equal (namespaceRequestName , cancelActivityTaskReq .Namespace )
798
+
799
+ completeActivityTaskReq := & workflowservice.RespondActivityTaskCompletedRequest {}
800
+ nvi .setNamespace (namespaceEntry , completeActivityTaskReq )
801
+ s .Equal (namespaceEntryName , completeActivityTaskReq .Namespace )
802
+ completeActivityTaskReq .Namespace = namespaceRequestName
803
+ nvi .setNamespace (namespaceEntry , completeActivityTaskReq )
804
+ s .Equal (namespaceRequestName , completeActivityTaskReq .Namespace )
805
+
806
+ failActivityTaskReq := & workflowservice.RespondActivityTaskFailedRequest {}
807
+ nvi .setNamespace (namespaceEntry , failActivityTaskReq )
808
+ s .Equal (namespaceEntryName , failActivityTaskReq .Namespace )
809
+ failActivityTaskReq .Namespace = namespaceRequestName
810
+ nvi .setNamespace (namespaceEntry , failActivityTaskReq )
811
+ s .Equal (namespaceRequestName , failActivityTaskReq .Namespace )
812
+ }
0 commit comments