@@ -285,5 +285,51 @@ public async Task EndsWithIfActionTest()
285285 Assert . AreEqual ( ActionStatus . Succeeded , result . ActionStatus ) ;
286286 Assert . AreEqual ( "TerminateTrue" , result . NextAction ) ;
287287 }
288+
289+ [ Test ]
290+ public async Task NoElseTest ( )
291+ {
292+ var expressionParserMock = new Mock < IExpressionEngine > ( ) ;
293+ var log = TestLogger . Create < IfActionExecutor > ( ) ;
294+
295+ expressionParserMock . Setup ( x => x . ParseToValueContainer ( It . IsAny < string > ( ) ) )
296+ . Returns ( ( string s ) => new ValueContainer ( s ) ) ;
297+
298+ const string ifJson =
299+ "{\" actions\" :{\" TerminateTrue\" :{\" runAfter\" :{},\" type\" :\" Terminate\" ,\" inputs\" :{\" runStatus\" :\" Succeeded\" }}}," +
300+ "\" runAfter\" :{\" Status_Reason_-_Failed\" :[\" Succeeded\" ]}," +
301+ "\" expression\" :{\" and\" :[{\" endsWith\" :[\" Jane Doe\" ,\" Nope\" ]},{\" not\" :{\" endsWith\" :[\" John Doe\" ,\" John\" ]},}]},\" type\" :\" If\" }" ;
302+
303+ var ifAction = new IfActionExecutor ( expressionParserMock . Object , log ) ;
304+ ifAction . InitializeActionExecutor ( "IfActionTest" , JToken . Parse ( ifJson ) ) ;
305+
306+ var result = await ifAction . Execute ( ) ;
307+
308+ Assert . AreEqual ( ActionStatus . Succeeded , result . ActionStatus ) ;
309+ Assert . AreEqual ( null , result . NextAction ) ;
310+ }
311+
312+ [ Test ]
313+ public async Task EmptyActionTest ( )
314+ {
315+ var expressionParserMock = new Mock < IExpressionEngine > ( ) ;
316+ var log = TestLogger . Create < IfActionExecutor > ( ) ;
317+
318+ expressionParserMock . Setup ( x => x . ParseToValueContainer ( It . IsAny < string > ( ) ) )
319+ . Returns ( ( string s ) => new ValueContainer ( s ) ) ;
320+
321+ const string ifJson =
322+ "{\" actions\" :{}," +
323+ "\" runAfter\" :{\" Status_Reason_-_Failed\" :[\" Succeeded\" ]}," +
324+ "\" expression\" :{\" and\" :[{\" endsWith\" :[\" Jane Doe\" ,\" Doe\" ]},{\" not\" :{\" endsWith\" :[\" John Doe\" ,\" John\" ]},}]},\" type\" :\" If\" }" ;
325+
326+ var ifAction = new IfActionExecutor ( expressionParserMock . Object , log ) ;
327+ ifAction . InitializeActionExecutor ( "IfActionTest" , JToken . Parse ( ifJson ) ) ;
328+
329+ var result = await ifAction . Execute ( ) ;
330+
331+ Assert . AreEqual ( ActionStatus . Succeeded , result . ActionStatus ) ;
332+ Assert . AreEqual ( null , result . NextAction ) ;
333+ }
288334 }
289335}
0 commit comments