Ejemplo n.º 1
0
        public async Task happy_path_test_version1()
        {
            _server.Given(
                Request
                .Create()
                .WithPath("/features")
                .WithHeader("Accept", "application/json")
                .UsingGet())
            .RespondWith(
                Response
                .Create()
                .WithStatusCode(200)
                .WithHeader("Content-Type", "application/json")
                .WithBodyFromFile("resources/features-v1.json")
                );

            var uri               = new Uri("http://localhost:" + _server.Ports.First());
            var config            = UnleashConfig.TheBuilder().AppName("test").UnleashAPI(uri).Build();
            var httpToggleFetcher = new HttpToggleFetcher(config);
            var response          = await httpToggleFetcher.FetchToggles();

            var featureX = response.ToggleCollection.GetToggle("featureX");

            Assert.True(featureX.IsEnabled);
        }
Ejemplo n.º 2
0
        public async Task should_handle_errors()
        {
            var httpCodes = new[] { 400, 401, 403, 404, 500, 503 };

            foreach (var httpCode in httpCodes)
            {
                _server.Given(
                    Request
                    .Create()
                    .WithPath("/features")
                    .WithHeader("Accept", "application/json")
                    .UsingGet())
                .RespondWith(
                    Response
                    .Create()
                    .WithStatusCode(httpCode)
                    .WithHeader("Content-Type", "application/json")
                    );


                var uri               = new Uri("http://localhost:" + _server.Ports.First());
                var config            = UnleashConfig.TheBuilder().AppName("test").UnleashAPI(uri).Build();
                var httpToggleFetcher = new HttpToggleFetcher(config);
                var response          = await httpToggleFetcher.FetchToggles();

                Assert.False(response.IsChanged);
            }
        }
Ejemplo n.º 3
0
        public void no_backup_file_and_no_repository_available_should_give_empty_repo()
        {
            var config = UnleashConfig.TheBuilder()
                         .AppName("test")
                         .UnleashAPI("http://localhost:4242/api/")
                         .Build();
            var toggleFetcher       = new HttpToggleFetcher(config);
            var toggleBackupHandler = new ToggleBackupHandlerFile(config);
            var toggleRepository    = new FeatureToggleRepository(config, new MockExecutor(), toggleFetcher, toggleBackupHandler);

            Assert.Null(toggleRepository.GetToggle("unknownFeature"));
        }
Ejemplo n.º 4
0
        public void given_empty_body()
        {
            _server.Given(
                Request
                .Create()
                .WithPath("/features")
                .WithHeader("Accept", "application/json")
                .UsingGet())
            .RespondWith(
                Response
                .Create()
                .WithStatusCode(200)
                .WithHeader("Content-Type", "application/json")
                );


            var uri               = new Uri("http://localhost:" + _server.Ports.First());
            var config            = UnleashConfig.TheBuilder().AppName("test").UnleashAPI(uri).Build();
            var httpToggleFetcher = new HttpToggleFetcher(config);

            Assert.ThrowsAnyAsync <Exception>(async() => await httpToggleFetcher.FetchToggles());
        }