void ValidateHttpReceivers(Route route, int count, string url) { PluginRoute pluginRoute = route as PluginRoute; Assert.NotNull(pluginRoute); Assert.NotNull(pluginRoute.Receivers); Assert.True(pluginRoute.Receivers.Length == count); for (int i = 0; i < pluginRoute.Receivers.Length; ++i) { HttpReceiver httpReceiver = pluginRoute.Receivers[i] as HttpReceiver; Assert.NotNull(httpReceiver); Assert.NotNull(httpReceiver.Settings); if (i == 0) { Assert.True(httpReceiver.Settings.Url == url); } } }
void ValidateSmtpReceivers(Route route, int count, string server) { PluginRoute pluginRoute = route as PluginRoute; Assert.NotNull(pluginRoute); Assert.NotNull(pluginRoute.Receivers); Assert.True(pluginRoute.Receivers.Length == count); for (int i = 0; i < pluginRoute.Receivers.Length; ++i) { SmtpMessageForwarder smtp = pluginRoute.Receivers[i] as SmtpMessageForwarder; Assert.NotNull(smtp); Assert.NotNull(smtp.Settings); if (i == 0) { Assert.True(smtp.Settings.Server == server); } } }
//TODO: (erikpo) In the long term, we should get rid of this and build our own implementation of IRouteHandler to just call their method on the plugin directly public object CallMethod(FormCollection form) { PluginRoute route = ControllerContext.RouteData.Route as PluginRoute; if (route == null) { return(null); } Plugin plugin = pluginService.GetPlugin(new PluginAddress(route.PluginID)); plugin.FillContainer(pluginEngine); plugin.Container.ExecuteMethod(route.MethodName, ControllerContext.RequestContext, form); string redirectUri = form["redirectUri"]; if (string.IsNullOrEmpty(redirectUri)) { throw new ArgumentException("No redirectUri was specified in the form data"); } return(Redirect(redirectUri)); }
public void TestPluginValidation() { PluginRoute plugin = new PluginRoute(); Assert.Throws <SmtpAgentException>(() => plugin.Validate()); }