@@ -1052,6 +1052,72 @@ void CaptureSend(Activity[] arg)
10521052 Assert . Equal ( 200 , ( ( InvokeResponse ) activitiesToSend [ 0 ] . Value ) . Status ) ;
10531053 }
10541054
1055+ [ Fact ]
1056+ public async Task TestConfigFetch ( )
1057+ {
1058+ // Arrange
1059+ var activity = new Activity
1060+ {
1061+ Type = ActivityTypes . Invoke ,
1062+ Name = "config/fetch" ,
1063+ Value = JObject . Parse ( @"{""data"":{""key"":""value"",""type"":""config / fetch""},""context"":{""theme"":""default""}}" ) ,
1064+ } ;
1065+
1066+ Activity [ ] activitiesToSend = null ;
1067+ void CaptureSend ( Activity [ ] arg )
1068+ {
1069+ activitiesToSend = arg ;
1070+ }
1071+
1072+ var turnContext = new TurnContext ( new SimpleAdapter ( CaptureSend ) , activity ) ;
1073+
1074+ // Act
1075+ var bot = new TestActivityHandler ( ) ;
1076+ await ( ( IBot ) bot ) . OnTurnAsync ( turnContext ) ;
1077+
1078+ // Assert
1079+ Assert . Equal ( 2 , bot . Record . Count ) ;
1080+ Assert . Equal ( "OnInvokeActivityAsync" , bot . Record [ 0 ] ) ;
1081+ Assert . Equal ( "OnTeamsConfigFetchAsync" , bot . Record [ 1 ] ) ;
1082+ Assert . NotNull ( activitiesToSend ) ;
1083+ Assert . Single ( activitiesToSend ) ;
1084+ Assert . IsType < InvokeResponse > ( activitiesToSend [ 0 ] . Value ) ;
1085+ Assert . Equal ( 200 , ( ( InvokeResponse ) activitiesToSend [ 0 ] . Value ) . Status ) ;
1086+ }
1087+
1088+ [ Fact ]
1089+ public async Task TestConfigSubmit ( )
1090+ {
1091+ // Arrange
1092+ var activity = new Activity
1093+ {
1094+ Type = ActivityTypes . Invoke ,
1095+ Name = "config/submit" ,
1096+ Value = JObject . Parse ( @"{""data"":{""key"":""value"",""type"":""config / submit""},""context"":{""theme"":""default""}}" ) ,
1097+ } ;
1098+
1099+ Activity [ ] activitiesToSend = null ;
1100+ void CaptureSend ( Activity [ ] arg )
1101+ {
1102+ activitiesToSend = arg ;
1103+ }
1104+
1105+ var turnContext = new TurnContext ( new SimpleAdapter ( CaptureSend ) , activity ) ;
1106+
1107+ // Act
1108+ var bot = new TestActivityHandler ( ) ;
1109+ await ( ( IBot ) bot ) . OnTurnAsync ( turnContext ) ;
1110+
1111+ // Assert
1112+ Assert . Equal ( 2 , bot . Record . Count ) ;
1113+ Assert . Equal ( "OnInvokeActivityAsync" , bot . Record [ 0 ] ) ;
1114+ Assert . Equal ( "OnTeamsConfigSubmitAsync" , bot . Record [ 1 ] ) ;
1115+ Assert . NotNull ( activitiesToSend ) ;
1116+ Assert . Single ( activitiesToSend ) ;
1117+ Assert . IsType < InvokeResponse > ( activitiesToSend [ 0 ] . Value ) ;
1118+ Assert . Equal ( 200 , ( ( InvokeResponse ) activitiesToSend [ 0 ] . Value ) . Status ) ;
1119+ }
1120+
10551121 [ Fact ]
10561122 public async Task TestSigninVerifyState ( )
10571123 {
@@ -1609,6 +1675,20 @@ protected override Task<TabResponse> OnTeamsTabSubmitAsync(ITurnContext<IInvokeA
16091675 return Task . FromResult ( new TabResponse ( ) ) ;
16101676 }
16111677
1678+ protected override Task < ConfigResponseBase > OnTeamsConfigFetchAsync ( ITurnContext < IInvokeActivity > turnContext , JObject configRequest , CancellationToken cancellationToken )
1679+ {
1680+ ConfigResponseBase configResponse = new ConfigTaskResponse ( ) ;
1681+ Record . Add ( MethodBase . GetCurrentMethod ( ) . Name ) ;
1682+ return Task . FromResult ( configResponse ) ;
1683+ }
1684+
1685+ protected override Task < ConfigResponseBase > OnTeamsConfigSubmitAsync ( ITurnContext < IInvokeActivity > turnContext , JObject configRequest , CancellationToken cancellationToken )
1686+ {
1687+ ConfigResponseBase configResponse = new ConfigTaskResponse ( ) ;
1688+ Record . Add ( MethodBase . GetCurrentMethod ( ) . Name ) ;
1689+ return Task . FromResult ( configResponse ) ;
1690+ }
1691+
16121692 protected override Task OnEventActivityAsync ( ITurnContext < IEventActivity > turnContext , CancellationToken cancellationToken )
16131693 {
16141694 Record . Add ( MethodBase . GetCurrentMethod ( ) . Name ) ;
0 commit comments