public void TestThatAllPoorlyOrderedActionHaveMatches() { ActionPostUser = new Action(0, "POST", "/users", "register(body:Vlingo.Xoom.Http.Tests.Sample.User.UserData userData)", null); ActionPatchUserContact = new Action(1, "PATCH", "/users/{userId}/contact", "changeContact(string userId, body:Vlingo.Xoom.Http.Tests.Sample.User.ContactData contactData)", null); ActionPatchUserName = new Action(2, "PATCH", "/users/{userId}/name", "changeName(string userId, body:Vlingo.Xoom.Http.Tests.Sample.User.NameData nameData)", null); ActionGetUsers = new Action(3, "GET", "/users", "queryUsers()", null); ActionGetUser = new Action(4, "GET", "/users/{userId}", "queryUser(string userId)", null); var actionGetUserEmailAddress = new Action(5, "GET", "/users/{userId}/emailAddresses/{emailAddressId}", "queryUserEmailAddress(string userId, string emailAddressId)", null); //============================================================= // this test assures that the optional feature used in the // Action.MatchResults constructor is enabled and short circuits // a match if any parameters contain a "/", which would normally // mean that the Action that appeared to match didn't have // enough Matchable PathSegments. Look for the following in // Action.MatchResult(): disallowPathParametersWithSlash // see the above testThatAllWellOrderedActionHaveMatches() for // a better ordering of actions and one that does not use the // disallowPathParametersWithSlash option. // See also: vlingo-http.properties // userResource.NAME.disallowPathParametersWithSlash = true/false //============================================================= var actions = new List <Action> { ActionPostUser, ActionPatchUserContact, ActionPatchUserName, ActionGetUsers, // order is problematic unless parameter matching short circuit used ActionGetUser, actionGetUserEmailAddress }; var resource = ConfigurationResource.NewResourceFor("user", ResourceHandlerType, 5, actions, ConsoleLogger.TestInstance()); var actionGetUsersMatch = resource.MatchWith(Method.Get, "/users".ToMatchableUri()); Assert.True(actionGetUsersMatch.IsMatched); Assert.Equal(ActionGetUsers, actionGetUsersMatch.Action); var actionGetUserMatch = resource.MatchWith(Method.Get, "/users/1234567".ToMatchableUri()); Assert.True(actionGetUserMatch.IsMatched); Assert.Equal(ActionGetUser, actionGetUserMatch.Action); var actionGetUserEmailAddressMatch = resource.MatchWith(Method.Get, "/users/1234567/emailAddresses/890".ToMatchableUri()); Assert.True(actionGetUserEmailAddressMatch.IsMatched); Assert.Equal(actionGetUserEmailAddress, actionGetUserEmailAddressMatch.Action); var actionPatchUserNameMatch = resource.MatchWith(Method.Patch, "/users/1234567/name".ToMatchableUri()); Assert.True(actionPatchUserNameMatch.IsMatched); Assert.Equal(ActionPatchUserName, actionPatchUserNameMatch.Action); var actionPostUserMatch = resource.MatchWith(Method.Post, "/users".ToMatchableUri()); Assert.True(actionPostUserMatch.IsMatched); Assert.Equal(ActionPostUser, actionPostUserMatch.Action); }
public void ReturnProperName() { var name = "glimpse_config"; var resource = new ConfigurationResource(); Assert.Equal(name, ConfigurationResource.InternalName); Assert.Equal(name, resource.Name); }
public void Execute() { var contextMock = new Mock <IResourceContext>(); var configMock = new Mock <IGlimpseConfiguration>(); var resource = new ConfigurationResource(); var result = resource.Execute(contextMock.Object, configMock.Object); var htmlResourceResult = result as HtmlResourceResult; Assert.NotNull(result); }
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)); }
static void Main(string[] args) { OldExampleModule oldExampleModule = new OldExampleModule(); oldExampleModule.Load(); // Injeção de dependencia IConfigurationResource configurationResource = new ConfigurationResource(); IModuleResource moduleResource = new ModuleResource(); NewExampleModule newExampleModule = new NewExampleModule(configurationResource, moduleResource); newExampleModule.Load(); }
public void TestUpdateResponse() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); twilioRestClient.Request(Arg.Any <Request>()) .Returns(new Response( System.Net.HttpStatusCode.OK, "{\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"default_chat_service_sid\": \"ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"default_messaging_service_sid\": \"MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"default_inactive_timer\": \"PT1M\",\"default_closed_timer\": \"PT10M\",\"url\": \"https://conversations.twilio.com/v1/Configuration\",\"links\": {\"service\": \"https://conversations.twilio.com/v1/Services/ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Configuration\",\"webhooks\": \"https://conversations.twilio.com/v1/Configuration/Webhooks\"}}" )); var response = ConfigurationResource.Update(client: twilioRestClient); Assert.NotNull(response); }
public void TestUpdateResponse() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); twilioRestClient.Request(Arg.Any <Request>()) .Returns(new Response( System.Net.HttpStatusCode.OK, "{\"chat_service_sid\": \"ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"default_conversation_creator_role_sid\": \"RLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"default_conversation_role_sid\": \"RLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"default_chat_service_role_sid\": \"RLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"reachability_enabled\": false,\"url\": \"https://conversations.twilio.com/v1/Services/ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Configuration\",\"links\": {\"notifications\": \"https://conversations.twilio.com/v1/Services/ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Configuration/Notifications\"}}" )); var response = ConfigurationResource.Update("ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient); Assert.NotNull(response); }
public void TestCreateResponse() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); twilioRestClient.Request(Arg.Any <Request>()) .Returns(new Response( System.Net.HttpStatusCode.Created, "{\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"date_created\": \"2016-08-01T22:10:40Z\",\"date_updated\": \"2016-08-01T22:10:40Z\",\"attributes\": {\"main_attribute\": \"some_attribute\"},\"status\": \"ok\",\"taskrouter_workspace_sid\": \"WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"taskrouter_target_workflow_sid\": \"WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"taskrouter_target_taskqueue_sid\": \"WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"taskrouter_taskqueues\": [{\"sid\": \"WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab\",\"targettable\": true},{\"sid\": \"WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac\",\"targettable\": false}],\"taskrouter_skills\": [{\"name\": \"sales\",\"multivalue\": false,\"minimum\": 0,\"maximum\": 0},{\"name\": \"support\",\"multivalue\": true,\"minimum\": 0,\"maximum\": 10}],\"taskrouter_worker_channels\": {\"agent\": [{\"name\": \"default\",\"availability\": true,\"capacity\": 1},{\"name\": \"voice\",\"availability\": false,\"capacity\": 2}],\"supervisor\": [{\"name\": \"default\",\"availability\": true,\"capacity\": 2}]},\"taskrouter_worker_attributes\": {\"agent\": {\"region\": \"us-east\"},\"supervisor\": {\"region\": \"us\"}},\"taskrouter_offline_activity_sid\": \"WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"runtime_domain\": \"https://flex.twilio.com\",\"messaging_service_instance_sid\": \"MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"chat_service_instance_sid\": \"ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"ui_language\": \"en\",\"ui_attributes\": {},\"ui_dependencies\": {},\"ui_version\": \"1.0\",\"service_version\": \"1.0\",\"call_recording_enabled\": true,\"call_recording_webhook_url\": \"https://www.example.com/call-recording\",\"crm_enabled\": true,\"crm_type\": \"custom\",\"crm_callback_url\": \"https://crm.com/a\",\"crm_fallback_url\": \"https://crm.com/b\",\"crm_attributes\": {\"crm_attribute\": \"some_crm\"},\"public_attributes\": {\"public\": \"test\"},\"plugin_service_enabled\": true,\"plugin_service_attributes\": {\"agent-logger\": \"^3.10.5\",\"typewriter\": \"^7.0.1\"},\"integrations\": [{\"name\": \"twilio\",\"type\": \"http\",\"active\": true,\"config\": \"{\\\"callback\\\":\\\"twilio.com/cb\\\",\\\"allowed_methods\\\":[\\\"GET\\\",\\\"POST\\\"]}\",\"logo\": \"logo1\",\"author\": \"somebody1\"},{\"name\": \"twilio-stage\",\"type\": \"http\",\"active\": false,\"config\": \"{\\\"callback\\\":\\\"twilio.com/cb\\\",\\\"allowed_methods\\\":[\\\"GET\\\",\\\"POST\\\"]}\"}],\"wfm_integrations\": [{\"name\": \"teleopti\",\"type\": \"flex_wfm\",\"active\": true,\"config\": \"{\\\"rta_callback_url\\\":\\\"https://twilio.com\\\",\\\"rta_feed_enabled\\\": true, \\\"historical_feed_enabled\\\": true}\",\"logo\": \"logo1\",\"author\": \"somebody1\"},{\"name\": \"teleopti-stage\",\"type\": \"flex_wfm\",\"active\": false,\"config\": \"{\\\"rta_callback_url\\\":\\\"https://twilio.com\\\",\\\"rta_feed_enabled\\\": true, \\\"historical_feed_enabled\\\": true}\"}],\"outbound_call_flows\": {\"default\": {\"caller_id\": \"+12345\",\"queue_sid\": \"WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"location\": \"EE\",\"workflow_sid\": \"WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"}},\"queue_stats_configuration\": {\"default\": {\"service_level_threshold\": 20,\"short_abandoned_threshold\": 5,\"reset_timezone\": \"America/New_York\",\"reset_time\": \"00:00\"},\"queue_configurations\": [{\"queue_sid\": \"WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"reset_timezone\": \"Europe/Tallinn\",\"reset_time\": \"01:00\"},{\"queue_sid\": \"WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab\",\"reset_timezone\": \"Europe/Paris\",\"reset_time\": \"02:00\"}],\"queue_channel_configurations\": [{\"queue_sid\": \"WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"channel_sid\": \"TCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"service_level_threshold\": 10,\"short_abandoned_threshold\": 10},{\"queue_sid\": \"WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab\",\"channel_sid\": \"TCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab\",\"service_level_threshold\": 30,\"short_abandoned_threshold\": 15}]},\"serverless_service_sids\": [\"ZSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"ZSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab\"],\"url\": \"https://flex-api.twilio.com/v1/Configuration\"}" )); var response = ConfigurationResource.Create(client: twilioRestClient); Assert.NotNull(response); }
public void TestFetchResponse() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); twilioRestClient.Request(Arg.Any <Request>()) .Returns(new Response( System.Net.HttpStatusCode.OK, "{\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"date_created\": \"2016-08-01T22:10:40Z\",\"date_updated\": \"2016-08-01T22:10:40Z\",\"attributes\": {\"main_attribute\": \"some_attribute\"},\"status\": \"ok\",\"taskrouter_workspace_sid\": \"WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"taskrouter_target_workflow_sid\": \"WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"taskrouter_target_taskqueue_sid\": \"WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"taskrouter_taskqueues\": [{\"sid\": \"WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab\",\"targettable\": true},{\"sid\": \"WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac\",\"targettable\": false}],\"taskrouter_skills\": [{\"name\": \"sales\",\"multivalue\": false,\"minimum\": 0,\"maximum\": 0},{\"name\": \"support\",\"multivalue\": true,\"minimum\": 0,\"maximum\": 10}],\"taskrouter_worker_channels\": {\"agent\": [{\"name\": \"default\",\"availability\": true,\"capacity\": 1},{\"name\": \"voice\",\"availability\": false,\"capacity\": 2}],\"supervisor\": [{\"name\": \"default\",\"availability\": true,\"capacity\": 2}]},\"taskrouter_worker_attributes\": {\"agent\": {\"region\": \"us-east\"},\"supervisor\": {\"region\": \"us\"}},\"taskrouter_offline_activity_sid\": \"WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"runtime_domain\": \"https://flex.twilio.com\",\"messaging_service_instance_sid\": \"MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"chat_service_instance_sid\": \"ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"ui_language\": \"en\",\"ui_attributes\": {},\"ui_version\": \"1.0\",\"service_version\": \"1.0\",\"call_recording_enabled\": true,\"call_recording_webhook_url\": \"https://www.example.com/call-recording\",\"crm_enabled\": true,\"crm_type\": \"custom\",\"crm_callback_url\": \"https://crm.com/a\",\"crm_fallback_url\": \"https://crm.com/b\",\"crm_attributes\": {\"crm_attribute\": \"some_crm\"},\"public_attributes\": {\"public\": \"test\"},\"plugin_service_enabled\": true,\"plugin_service_attributes\": {\"agent-logger\": \"^3.10.5\",\"typewriter\": \"^7.0.1\"},\"integrations\": [{\"name\": \"twilio\",\"type\": \"http\",\"active\": true,\"config\": \"{\\\"callback\\\":\\\"twilio.com/cb\\\",\\\"allowed_methods\\\":[\\\"GET\\\",\\\"POST\\\"]}\",\"logo\": \"logo1\",\"author\": \"somebody1\"},{\"name\": \"twilio-stage\",\"type\": \"http\",\"active\": false,\"config\": \"{\\\"callback\\\":\\\"twilio.com/cb\\\",\\\"allowed_methods\\\":[\\\"GET\\\",\\\"POST\\\"]}\"}],\"url\": \"https://flex-api.twilio.com/v1/Configuration\"}" )); var response = ConfigurationResource.Fetch(client: twilioRestClient); Assert.NotNull(response); }
/// <summary> /// Get the PsAzureAdvisorConfigurationData for the current subscription. /// </summary> /// <returns>A PsAzureAdvisorConfigurationData</returns> private PsAzureAdvisorConfigurationData GetConfigurationDataForCurrentSubscription() { PsAzureAdvisorConfigurationData returnConfigurationData = null; ConfigurationResource configResourceClient = new ConfigurationResource(); List <PsAzureAdvisorConfigurationData> psConfigDataList = configResourceClient.GetAllConfiguratioFromClient(this.ResourceAdvisorClient); foreach (PsAzureAdvisorConfigurationData entry in psConfigDataList) { if (entry.Name.Equals(this.ResourceAdvisorClient.SubscriptionId)) { returnConfigurationData = entry; } } return(returnConfigurationData); }
private static IConfigurationResource ResourceFor( string resourceName, Type resourceHandlerClass, int handlerPoolSize, IList <Action> resourceActions, ILogger logger) { try { var resource = ConfigurationResource.NewResourceFor(resourceName, resourceHandlerClass, handlerPoolSize, resourceActions, logger); return(resource); } catch (Exception e) { throw new InvalidOperationException($"ConfigurationResource cannot be created for: {resourceHandlerClass.Name}", e); } }
public void TestThatResourcesBuildFluently() { var resources = Resources .Are(ConfigurationResource <UserResource> .Defining("user", typeof(UserResource), 10, Actions.CanBe("POST", "/users", "register(body:Vlingo.Http.Tests.Sample.User.UserData userData)") .Also("PATCH", "/users/{userId}/contact", "changeContact(string userId, body:Vlingo.Http.Tests.Sample.User.ContactData contactData)") .Also("PATCH", "/users/{userId}/name", "changeName(string userId, body:Vlingo.Http.Tests.Sample.User.NameData nameData)") .Also("GET", "/users/{userId}", "queryUser(string userId)") .Also("GET", "/users", "queryUsers()") .ThatsAll()), ConfigurationResource <ProfileResource> .Defining("profile", typeof(ProfileResource), 5, Actions.CanBe("PUT", "/users/{userId}/profile", "define(string userId, body:Vlingo.Http.Tests.Sample.User.ProfileData profileData)", "Vlingo.Http.Tests.Sample.User.ProfileDataMapper") .Also("GET", "/users/{userId}/profile", "query(string userId)", "Vlingo.Http.Tests.Sample.User.ProfileDataMapper") .ThatsAll())); Assert.NotNull(resources.ResourceOf("user")); Assert.NotNull(resources.ResourceOf("profile")); }
public void TestCreateRequest() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); var request = new Request( HttpMethod.Post, Twilio.Rest.Domain.FlexApi, "/v1/Configuration", "" ); twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content")); try { ConfigurationResource.Create(client: twilioRestClient); Assert.Fail("Expected TwilioException to be thrown for 500"); } catch (ApiException) {} twilioRestClient.Received().Request(request); }
public void TestThatServerStartsWithFilters() { var world = World.StartWithDefaults("filters"); var resource = ConfigurationResource.Defining("profile", typeof(ProfileResource), 5, Actions.CanBe("PUT", "/users/{userId}/profile", "define(string userId, body:Vlingo.Http.Tests.Sample.User.ProfileData profileData)", "Vlingo.Http.Tests.Sample.User.ProfileDataMapper") .Also("GET", "/users/{userId}/profile", "query(string userId)", "Vlingo.Http.Tests.Sample.User.ProfileDataMapper").ThatsAll(), world.DefaultLogger); var server = ServerFactory.StartWith( world.Stage, Resources.Are(resource), Filters.Are(new [] { new RequestFilter1() }, Filters.NoResponseFilters()), 8081, Configuration.SizingConf.DefineConf(), Configuration.TimingConf.DefineConf()); Assert.NotNull(server); }
public void TestFetchRequest() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); var request = new Request( HttpMethod.Get, Twilio.Rest.Domain.Conversations, "/v1/Services/ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Configuration", "" ); twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content")); try { ConfigurationResource.Fetch("ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient); Assert.Fail("Expected TwilioException to be thrown for 500"); } catch (ApiException) {} twilioRestClient.Received().Request(request); }
/// <summary> /// Sets the configuration of the current subscription with the given user configuration. /// </summary> /// <param name="configData">Configuration Properties</param> /// <returns>List of PsAzureAdvisorConfigurationData</returns> internal List <PsAzureAdvisorConfigurationData> CreateConfigurationBySubscription(ConfigData configData) { List <PsAzureAdvisorConfigurationData> results = new List <PsAzureAdvisorConfigurationData>(); ConfigurationResource configResourceClient = new ConfigurationResource(); AzureOperationResponse <ARMErrorResponseBody> response = null; List <PsAzureAdvisorConfigurationData> psConfigDataList = null; response = this.ResourceAdvisorClient.Configurations.CreateInSubscriptionWithHttpMessagesAsync(configData).Result; psConfigDataList = configResourceClient.GetAllConfiguratioFromClient(this.ResourceAdvisorClient); foreach (PsAzureAdvisorConfigurationData entry in psConfigDataList) { if (entry.Name.Equals(this.ResourceAdvisorClient.SubscriptionId)) { results.Add(entry); } } return(results); }
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()); }
/// <summary> /// Executes the cmdlet. /// </summary> public override void ExecuteCmdlet() { ConfigurationResource configResourceClient = new ConfigurationResource(); IEnumerable <ConfigData> responseData = null; List <PsAzureAdvisorConfigurationData> returnPsConfigData = new List <PsAzureAdvisorConfigurationData>(); if (string.IsNullOrEmpty(this.ResourceGroupName)) { returnPsConfigData = configResourceClient.GetAllConfiguratioFromClient(this.ResourceAdvisorClient); } else { responseData = this.ResourceAdvisorClient.Configurations.ListByResourceGroupWithHttpMessagesAsync(this.ResourceGroupName).Result.Body; // Parse the response data from the API to PS object foreach (ConfigData configData in responseData) { returnPsConfigData.Add(PsAzureAdvisorConfigurationData.GetFromConfigurationData(configData)); } } this.WriteObject(returnPsConfigData, true); }
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; } }
public void ReturnNoParameterKeys() { var resource = new ConfigurationResource(); Assert.Empty(resource.Parameters); }