@@ -695,6 +695,49 @@ func TestWorkflowExecutionEventHandler_ProcessEvent_no_error_events(t *testing.T
695695	}
696696}
697697
698+ func  TestGetVersion_validation (t  * testing.T ) {
699+ 	t .Run ("version < minSupported" , func (t  * testing.T ) {
700+ 		assert .PanicsWithValue (t , `Workflow code removed support of version 1. for \"test\" changeID. The oldest supported version is 2` , func () {
701+ 			validateVersion ("test" , 1 , 2 , 3 )
702+ 		})
703+ 	})
704+ 	t .Run ("version > maxSupported" , func (t  * testing.T ) {
705+ 		assert .PanicsWithValue (t , `Workflow code is too old to support version 3 for \"test\" changeID. The maximum supported version is 2` , func () {
706+ 			validateVersion ("test" , 3 , 1 , 2 )
707+ 		})
708+ 	})
709+ 	t .Run ("success" , func (t  * testing.T ) {
710+ 		validateVersion ("test" , 2 , 1 , 3 )
711+ 	})
712+ }
713+ 
714+ func  TestGetVersion (t  * testing.T ) {
715+ 	t .Run ("version exists" , func (t  * testing.T ) {
716+ 		weh  :=  testWorkflowExecutionEventHandler (t , newRegistry ())
717+ 		weh .changeVersions  =  map [string ]Version {
718+ 			"test" : 2 ,
719+ 		}
720+ 		res  :=  weh .GetVersion ("test" , 1 , 3 )
721+ 		assert .Equal (t , Version (2 ), res )
722+ 	})
723+ 	t .Run ("version doesn't exist in replay" , func (t  * testing.T ) {
724+ 		weh  :=  testWorkflowExecutionEventHandler (t , newRegistry ())
725+ 		weh .isReplay  =  true 
726+ 		res  :=  weh .GetVersion ("test" , DefaultVersion , 3 )
727+ 		assert .Equal (t , DefaultVersion , res )
728+ 		require .Contains (t , weh .changeVersions , "test" )
729+ 		assert .Equal (t , DefaultVersion , weh .changeVersions ["test" ])
730+ 	})
731+ 	t .Run ("version doesn't exist without replay" , func (t  * testing.T ) {
732+ 		weh  :=  testWorkflowExecutionEventHandler (t , newRegistry ())
733+ 		res  :=  weh .GetVersion ("test" , DefaultVersion , 3 )
734+ 		assert .Equal (t , Version (3 ), res )
735+ 		require .Contains (t , weh .changeVersions , "test" )
736+ 		assert .Equal (t , Version (3 ), weh .changeVersions ["test" ])
737+ 		assert .Equal (t , []byte (`["test-3"]` ), weh .workflowInfo .SearchAttributes .IndexedFields [CadenceChangeVersion ], "ensure search attributes are updated" )
738+ 	})
739+ }
740+ 
698741func  testWorkflowExecutionEventHandler (t  * testing.T , registry  * registry ) * workflowExecutionEventHandlerImpl  {
699742	return  newWorkflowExecutionEventHandler (
700743		testWorkflowInfo ,
0 commit comments