@@ -46,16 +46,30 @@ private static void AssertEqual(string expected, string actual)
46
46
}
47
47
48
48
[ Theory ]
49
- [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , true ) ]
50
- [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , false ) ]
51
- [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , true ) ]
52
- [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , false ) ]
53
- [ InlineData ( ConnectorCompatibility . CdpCompatibility , true ) ]
54
- [ InlineData ( ConnectorCompatibility . CdpCompatibility , false ) ]
55
- public void MSNWeather_OptionSets ( ConnectorCompatibility connectorCompatibility , bool supportXMsEnumValues )
49
+ [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , true , false ) ]
50
+ [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , false , false ) ]
51
+ [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , true , true ) ]
52
+ [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , false , true ) ]
53
+ [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , true , false ) ]
54
+ [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , false , false ) ]
55
+ [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , true , true ) ]
56
+ [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , false , true ) ]
57
+ [ InlineData ( ConnectorCompatibility . CdpCompatibility , true , false ) ]
58
+ [ InlineData ( ConnectorCompatibility . CdpCompatibility , false , false ) ]
59
+ [ InlineData ( ConnectorCompatibility . CdpCompatibility , true , true ) ]
60
+ [ InlineData ( ConnectorCompatibility . CdpCompatibility , false , true ) ]
61
+ public void MSNWeather_OptionSets ( ConnectorCompatibility connectorCompatibility , bool supportXMsEnumValues , bool returnEnumsAsPrimitive )
56
62
{
57
63
using var testConnector = new LoggingTestServer ( @"Swagger\MSNWeather.json" , _output ) ;
58
- List < ConnectorFunction > functions = OpenApiParser . GetFunctions ( new ConnectorSettings ( "MSNWeather" ) { Compatibility = connectorCompatibility , SupportXMsEnumValues = supportXMsEnumValues } , testConnector . _apiDocument ) . ToList ( ) ;
64
+ List < ConnectorFunction > functions = OpenApiParser . GetFunctions (
65
+ new ConnectorSettings ( "MSNWeather" )
66
+ {
67
+ Compatibility = connectorCompatibility ,
68
+ SupportXMsEnumValues = supportXMsEnumValues ,
69
+ ReturnEnumsAsPrimitive = returnEnumsAsPrimitive
70
+ } ,
71
+ testConnector . _apiDocument ) . ToList ( ) ;
72
+
59
73
ConnectorFunction currentWeather = functions . First ( f => f . Name == "CurrentWeather" ) ;
60
74
61
75
Assert . Equal ( 2 , currentWeather . RequiredParameters . Length ) ;
@@ -69,35 +83,56 @@ public void MSNWeather_OptionSets(ConnectorCompatibility connectorCompatibility,
69
83
70
84
if ( connectorCompatibility == ConnectorCompatibility . CdpCompatibility || supportXMsEnumValues )
71
85
{
72
- Assert . Equal ( FormulaType . OptionSetValue , currentWeather . RequiredParameters [ 1 ] . FormulaType ) ;
86
+ if ( returnEnumsAsPrimitive )
87
+ {
88
+ Assert . Equal ( FormulaType . String , currentWeather . RequiredParameters [ 1 ] . FormulaType ) ;
89
+ }
90
+ else
91
+ {
92
+ Assert . Equal ( FormulaType . OptionSetValue , currentWeather . RequiredParameters [ 1 ] . FormulaType ) ;
93
+ }
73
94
74
95
// Dictionary is used here, so we need to reorder
75
96
Assert . Equal ( "Imperial,Metric" , string . Join ( "," , currentWeather . RequiredParameters [ 1 ] . ConnectorType . Enum . OrderBy ( kvp => kvp . Key ) . Select ( kvp => kvp . Key ) ) ) ;
76
97
Assert . Equal ( "I,C" , string . Join ( "," , currentWeather . RequiredParameters [ 1 ] . ConnectorType . Enum . OrderBy ( kvp => kvp . Key ) . Select ( kvp => ( kvp . Value as StringValue ) . Value ) ) ) ;
77
98
78
- Assert . Equal ( "Imperial,Metric" , string . Join ( "," , currentWeather . RequiredParameters [ 1 ] . ConnectorType . EnumDisplayNames ) ) ;
99
+ Assert . Equal ( "Imperial,Metric" , string . Join ( "," , currentWeather . RequiredParameters [ 1 ] . ConnectorType . EnumDisplayNames ) ) ;
79
100
}
80
101
else
81
102
{
82
- Assert . Equal ( FormulaType . String , currentWeather . RequiredParameters [ 1 ] . FormulaType ) ;
103
+ Assert . Equal ( FormulaType . String , currentWeather . RequiredParameters [ 1 ] . FormulaType ) ;
83
104
}
84
105
85
106
Assert . Equal ( "I,C" , string . Join ( "," , currentWeather . RequiredParameters [ 1 ] . ConnectorType . EnumValues . Select ( fv => ( fv as StringValue ) . Value ) ) ) ;
86
107
}
87
108
88
109
[ Theory ]
89
- [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , true ) ]
90
- [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , false ) ]
91
- [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , true ) ]
92
- [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , false ) ]
93
- [ InlineData ( ConnectorCompatibility . CdpCompatibility , true ) ]
94
- [ InlineData ( ConnectorCompatibility . CdpCompatibility , false ) ]
110
+ [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , true , false ) ]
111
+ [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , false , false ) ]
112
+ [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , true , true ) ]
113
+ [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , false , true ) ]
114
+ [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , true , false ) ]
115
+ [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , false , false ) ]
116
+ [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , true , true ) ]
117
+ [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , false , true ) ]
118
+ [ InlineData ( ConnectorCompatibility . CdpCompatibility , true , false ) ]
119
+ [ InlineData ( ConnectorCompatibility . CdpCompatibility , false , false ) ]
120
+ [ InlineData ( ConnectorCompatibility . CdpCompatibility , true , true ) ]
121
+ [ InlineData ( ConnectorCompatibility . CdpCompatibility , false , true ) ]
95
122
96
123
// Option set with numeric logical names
97
- public void DimeScheduler_OptionSets ( ConnectorCompatibility connectorCompatibility , bool supportXMsEnumValues )
124
+ public void DimeScheduler_OptionSets ( ConnectorCompatibility connectorCompatibility , bool supportXMsEnumValues , bool returnEnumsAsPrimitive )
98
125
{
99
126
using var testConnector = new LoggingTestServer ( @"Swagger\Dime.Scheduler.json" , _output ) ;
100
- List < ConnectorFunction > functions = OpenApiParser . GetFunctions ( new ConnectorSettings ( "DimeScheduler" ) { Compatibility = connectorCompatibility , SupportXMsEnumValues = supportXMsEnumValues } , testConnector . _apiDocument ) . ToList ( ) ;
127
+ List < ConnectorFunction > functions = OpenApiParser . GetFunctions (
128
+ new ConnectorSettings ( "DimeScheduler" )
129
+ {
130
+ Compatibility = connectorCompatibility ,
131
+ SupportXMsEnumValues = supportXMsEnumValues ,
132
+ ReturnEnumsAsPrimitive = returnEnumsAsPrimitive
133
+ } ,
134
+ testConnector . _apiDocument ) . ToList ( ) ;
135
+
101
136
ConnectorFunction actionUriUpsert = functions . First ( f => f . Name == "actionUriUpsert" ) ;
102
137
103
138
Assert . Equal ( 5 , actionUriUpsert . OptionalParameters . Length ) ;
@@ -106,35 +141,54 @@ public void DimeScheduler_OptionSets(ConnectorCompatibility connectorCompatibili
106
141
107
142
if ( connectorCompatibility == ConnectorCompatibility . CdpCompatibility || supportXMsEnumValues )
108
143
{
109
- Assert . Equal ( FormulaType . OptionSetValue , actionUriUpsert . OptionalParameters [ 2 ] . FormulaType ) ;
144
+ if ( returnEnumsAsPrimitive )
145
+ {
146
+ Assert . Equal ( FormulaType . Decimal , actionUriUpsert . OptionalParameters [ 2 ] . FormulaType ) ;
147
+ }
148
+ else
149
+ {
150
+ Assert . Equal ( FormulaType . OptionSetValue , actionUriUpsert . OptionalParameters [ 2 ] . FormulaType ) ;
151
+ }
110
152
111
153
// Dictionary is used here, so we need to reorder
112
154
Assert . Equal ( "Planning Board,Appointment,Task,Map" , string . Join ( "," , actionUriUpsert . OptionalParameters [ 2 ] . ConnectorType . Enum . Select ( kvp => kvp . Key ) ) ) ;
113
155
Assert . Equal ( "0,1,2,3" , string . Join ( "," , actionUriUpsert . OptionalParameters [ 2 ] . ConnectorType . Enum . Select ( kvp => ( kvp . Value as DecimalValue ) . Value ) ) ) ;
114
156
115
- Assert . Equal ( "Planning Board,Appointment,Task,Map" , string . Join ( "," , actionUriUpsert . OptionalParameters [ 2 ] . ConnectorType . EnumDisplayNames ) ) ;
157
+ Assert . Equal ( "Planning Board,Appointment,Task,Map" , string . Join ( "," , actionUriUpsert . OptionalParameters [ 2 ] . ConnectorType . EnumDisplayNames ) ) ;
116
158
}
117
159
else
118
160
{
119
- Assert . Equal ( FormulaType . Decimal , actionUriUpsert . OptionalParameters [ 2 ] . FormulaType ) ;
161
+ Assert . Equal ( FormulaType . Decimal , actionUriUpsert . OptionalParameters [ 2 ] . FormulaType ) ;
120
162
}
121
163
122
164
Assert . Equal ( "0,1,2,3" , string . Join ( "," , actionUriUpsert . OptionalParameters [ 2 ] . ConnectorType . EnumValues . Select ( fv => ( fv as DecimalValue ) . Value ) ) ) ;
123
165
}
124
166
125
167
[ Theory ]
126
- [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , true ) ]
127
- [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , false ) ]
128
- [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , true ) ]
129
- [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , false ) ]
130
- [ InlineData ( ConnectorCompatibility . CdpCompatibility , true ) ]
131
- [ InlineData ( ConnectorCompatibility . CdpCompatibility , false ) ]
132
-
133
- // Option set with numeric logical names
134
- public void ACSL_OptionSets ( ConnectorCompatibility connectorCompatibility , bool supportXMsEnumValues )
168
+ [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , true , false ) ]
169
+ [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , false , false ) ]
170
+ [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , true , true ) ]
171
+ [ InlineData ( ConnectorCompatibility . SwaggerCompatibility , false , true ) ]
172
+ [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , true , false ) ]
173
+ [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , false , false ) ]
174
+ [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , true , true ) ]
175
+ [ InlineData ( ConnectorCompatibility . PowerAppsCompatibility , false , true ) ]
176
+ [ InlineData ( ConnectorCompatibility . CdpCompatibility , true , false ) ]
177
+ [ InlineData ( ConnectorCompatibility . CdpCompatibility , false , false ) ]
178
+ [ InlineData ( ConnectorCompatibility . CdpCompatibility , true , true ) ]
179
+ [ InlineData ( ConnectorCompatibility . CdpCompatibility , false , true ) ]
180
+ public void ACSL_OptionSets ( ConnectorCompatibility connectorCompatibility , bool supportXMsEnumValues , bool returnEnumsAsPrimitive )
135
181
{
136
182
using var testConnector = new LoggingTestServer ( @"Swagger\Azure Cognitive Service for Language v2.2.json" , _output ) ;
137
- List < ConnectorFunction > functions = OpenApiParser . GetFunctions ( new ConnectorSettings ( "ACSL" ) { Compatibility = connectorCompatibility , SupportXMsEnumValues = supportXMsEnumValues } , testConnector . _apiDocument ) . ToList ( ) ;
183
+ List < ConnectorFunction > functions = OpenApiParser . GetFunctions (
184
+ new ConnectorSettings ( "ACSL" )
185
+ {
186
+ Compatibility = connectorCompatibility ,
187
+ SupportXMsEnumValues = supportXMsEnumValues ,
188
+ ReturnEnumsAsPrimitive = returnEnumsAsPrimitive
189
+ } ,
190
+ testConnector . _apiDocument ) . ToList ( ) ;
191
+
138
192
ConnectorFunction analyzeConversationTranscriptSubmitJob = functions . Single ( f => f . Name == "AnalyzeConversationTranscriptSubmitJob" ) ;
139
193
140
194
// AnalyzeConversationTranscript_SubmitJob defined at line 1226 of swagger file
@@ -143,19 +197,19 @@ public void ACSL_OptionSets(ConnectorCompatibility connectorCompatibility, bool
143
197
// conversations parameter at line 2577, defined at line 2580(TranscriptConversation)
144
198
// conversationItems parameter at line 2585, defined at line 2624(TranscriptConversationItem)
145
199
// role parameter at line 2641 is having extension x-ms-enum with modelAsString set to true
146
- ConnectorType connectorType = analyzeConversationTranscriptSubmitJob . RequiredParameters [ 0 ] . ConnectorType ;
200
+ ConnectorType connectorType = analyzeConversationTranscriptSubmitJob . RequiredParameters [ 0 ] . ConnectorType ;
147
201
ConnectorType role = connectorType . Fields [ 0 ] . Fields [ 0 ] . Fields [ 0 ] . Fields [ connectorCompatibility == ConnectorCompatibility . Default ? 4 : 3 ] ;
148
202
Assert . Equal ( "role" , role . Name ) ;
149
203
150
204
// Type is always a string here as to be an optionset, we need (ConnectorCompatibility = CdpCompatibility or SupportXMsEnumValues = true) AND (modelAsString = false)
151
205
Assert . Equal ( FormulaType . String , role . FormulaType ) ;
152
206
Assert . True ( role . IsEnum ) ;
153
-
207
+
154
208
Assert . Equal < object > (
155
209
connectorCompatibility != ConnectorCompatibility . Default
156
210
? "![conversations:![conversationItems:*[audioTimings:*[duration:w, offset:w, word:s], id:s, itn:s, language:s, lexical:s, maskedItn:s, participantId:s, role:s, text:s], domain:s, language:s]]"
157
- : "![conversations:![conversationItems:*[audioTimings:*[duration:w, offset:w, word:s], id:s, itn:s, language:s, lexical:s, maskedItn:s, modality:s, participantId:s, role:s, text:s], domain:s, language:s]]" ,
158
- connectorType . FormulaType . _type . ToString ( ) ) ;
211
+ : "![conversations:![conversationItems:*[audioTimings:*[duration:w, offset:w, word:s], id:s, itn:s, language:s, lexical:s, maskedItn:s, modality:s, participantId:s, role:s, text:s], domain:s, language:s]]" ,
212
+ connectorType . FormulaType . _type . ToString ( ) ) ;
159
213
160
214
if ( connectorCompatibility == ConnectorCompatibility . CdpCompatibility || supportXMsEnumValues )
161
215
{
@@ -1969,16 +2023,16 @@ public async Task SendEmail()
1969
2023
public async Task AiSensitivityTest ( )
1970
2024
{
1971
2025
using LoggingTestServer testConnector = new LoggingTestServer ( @"Swagger\SendMail.json" , _output ) ;
1972
- OpenApiDocument apiDoc = testConnector . _apiDocument ;
1973
-
2026
+ OpenApiDocument apiDoc = testConnector . _apiDocument ;
2027
+
1974
2028
ConnectorSettings connectorSettings = new ConnectorSettings ( "exob" )
1975
- {
2029
+ {
1976
2030
Compatibility = ConnectorCompatibility . SwaggerCompatibility ,
1977
2031
AllowUnsupportedFunctions = true ,
1978
2032
IncludeInternalFunctions = true ,
1979
- ReturnUnknownRecordFieldsAsUntypedObjects = true
2033
+ ReturnUnknownRecordFieldsAsUntypedObjects = true
1980
2034
} ;
1981
-
2035
+
1982
2036
List < ConnectorFunction > functions = OpenApiParser . GetFunctions ( connectorSettings , apiDoc ) . OrderBy ( f => f . Name ) . ToList ( ) ;
1983
2037
1984
2038
ConnectorFunction sendmail = functions . First ( f => f . Name == "SendEmailV3" ) ;
0 commit comments