public void TestThatWrongIdOrderBreaks() { var actionPostUser = new Action(3, "POST", "/users", "register(body:Vlingo.Http.Tests.Sample.User.UserData userData)", null); var actionPatchUserContact = new Action(1, "PATCH", "/users/{userId}/contact", "changeContact(string userId, body:Vlingo.Http.Tests.Sample.User.ContactData contactData)", null); var actions = new List <Action> { actionPostUser, actionPatchUserContact }; var resourceHandlerClass = ConfigurationResource <UserResource> .NewResourceHandlerTypeFor("Vlingo.Http.Tests.Sample.User.UserResource"); Assert.Throws <ArgumentException>(() => ConfigurationResource <UserResource> .NewResourceFor("user", resourceHandlerClass, 5, actions)); }
public ResourceTestFixtures(ITestOutputHelper output) { var converter = new Converter(output); Console.SetOut(converter); World = World.Start(WorldName); ActionPostUser = new Action(0, "POST", "/users", "Register(body:Vlingo.Xoom.Http.Tests.Sample.User.UserData userData)", "Vlingo.Xoom.Http.Tests.Sample.User.UserDataMapper"); ActionPatchUserContact = new Action(1, "PATCH", "/users/{userId}/contact", "changeContact(string userId, body:Vlingo.Xoom.Http.Tests.Sample.User.ContactData contactData)", "Vlingo.Xoom.Http.Tests.Sample.User.UserDataMapper"); ActionPatchUserName = new Action(2, "PATCH", "/users/{userId}/name", "changeName(string userId, body:Vlingo.Xoom.Http.Tests.Sample.User.NameData nameData)", "Vlingo.Xoom.Http.Tests.Sample.User.UserDataMapper"); ActionGetUser = new Action(3, "GET", "/users/{userId}", "queryUser(string userId)", "Vlingo.Xoom.Http.Tests.Sample.User.UserDataMapper"); ActionGetUsers = new Action(4, "GET", "/users", "queryUsers()", "Vlingo.Xoom.Http.Tests.Sample.User.UserDataMapper"); ActionGetUserError = new Action(5, "GET", "/users/{userId}/error", "queryUserError(string userId)", "Vlingo.Xoom.Http.Tests.Sample.User.UserDataMapper"); ActionPutUser = new Action(6, "PUT", "/users/{userId}", "changeUser(string userId, body:Vlingo.Xoom.Http.Tests.Sample.User.UserData userData)", "Vlingo.Xoom.Http.Tests.Sample.User.UserDataMapper"); var actions = new List <Action> { ActionPostUser, ActionPatchUserContact, ActionPatchUserName, ActionGetUser, ActionGetUsers, ActionGetUserError, ActionPutUser }; ResourceHandlerType = ConfigurationResource.NewResourceHandlerTypeFor("Vlingo.Xoom.Http.Tests.Sample.User.UserResource"); Resource = ConfigurationResource.NewResourceFor("user", ResourceHandlerType, 7, actions, World.DefaultLogger); Resource.AllocateHandlerPool(World.Stage); var oneResource = new Dictionary <string, IResource>(1); oneResource.Add(Resource.Name, Resource); Resources = new Resources(oneResource); Dispatcher = new TestDispatcher(Resources, World.DefaultLogger); }
public ResourceDispatcherGeneratorTest(ITestOutputHelper output) { var converter = new Converter(output); Console.SetOut(converter); var actionPostUser = new Action(0, "POST", "/users", "register(body:Vlingo.Xoom.Http.Tests.Sample.User.UserData userData)", null); var actionPatchUserContact = new Action(1, "PATCH", "/users/{userId}/contact", "changeContact(string userId, body:Vlingo.Xoom.Http.Tests.Sample.User.ContactData contactData)", null); var actionPatchUserName = new Action(2, "PATCH", "/users/{userId}/name", "changeName(string userId, body:Vlingo.Xoom.Http.Tests.Sample.User.NameData nameData)", null); var actionGetUser = new Action(3, "GET", "/users/{userId}", "queryUser(string userId)", null); var actionGetUsers = new Action(4, "GET", "/users", "queryUsers()", null); var actionQueryUserError = new Action(5, "GET", "/users/{userId}/error", "queryUserError(string userId)", null); var actionPutUser = new Action(6, "PUT", "/users/{userId}", "changeUser(string userId, body:Vlingo.Xoom.Http.Tests.Sample.User.UserData userData)", null); _actions = new List <Action> { actionPostUser, actionPatchUserContact, actionPatchUserName, actionGetUser, actionGetUsers, actionQueryUserError, actionPutUser }; Type resourceHandlerClass; try { resourceHandlerClass = Type.GetType("Vlingo.Xoom.Http.Tests.Sample.User.UserResource"); } catch (Exception) { resourceHandlerClass = ConfigurationResource.NewResourceHandlerTypeFor("Vlingo.Xoom.Http.Tests.Sample.User.UserResource"); } _resource = ConfigurationResource.NewResourceFor("user", resourceHandlerClass, 5, _actions, ConsoleLogger.TestInstance()); }
private static IConfigurationResource LoadResource(HttpProperties properties, string resourceNameKey, ILogger logger) { var resourceName = resourceNameKey.Substring(ResourceNamePrefix.Length); var resourceActionNames = ActionNamesFrom(properties.GetProperty(resourceNameKey), resourceNameKey); var resourceHandlerKey = $"resource.{resourceName}.handler"; var resourceHandlerClassname = properties.GetProperty(resourceHandlerKey); var handlerPoolKey = $"resource.{resourceName}.pool"; var maybeHandlerPoolSize = int.Parse(properties.GetProperty(handlerPoolKey, "1") ?? "1"); var handlerPoolSize = maybeHandlerPoolSize <= 0 ? 1 : maybeHandlerPoolSize; try { var resourceActions = ResourceActionsOf(properties, resourceName, resourceActionNames); var resourceHandlerClass = ConfigurationResource.NewResourceHandlerTypeFor(resourceHandlerClassname); return(ResourceFor(resourceName, resourceHandlerClass !, handlerPoolSize, resourceActions, logger)); } catch (Exception e) { Console.WriteLine("vlingo-net/http: Failed to load resource: " + resourceName + " because: " + e.Message); throw; } }