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);
    }
Esempio n. 2
0
        public void ReturnProperName()
        {
            var name = "glimpse_config";

            var resource = new ConfigurationResource();

            Assert.Equal(name, ConfigurationResource.InternalName);
            Assert.Equal(name, resource.Name);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 10
0
        /// <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);
        }
Esempio n. 11
0
 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);
     }
 }
Esempio n. 12
0
        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);
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
        /// <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);
        }
Esempio n. 20
0
    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;
        }
    }
Esempio n. 21
0
        public void ReturnNoParameterKeys()
        {
            var resource = new ConfigurationResource();

            Assert.Empty(resource.Parameters);
        }