Exemplo n.º 1
0
        public void WhenIGetAFeatureWithAHostnameOverride_ThenTheFeatureIsRetrieved()
        {
            var application = new Data.Entities.Application {
                Name = "TestApplication"
            };

            new CreateApplicationFake().Execute(application);
            var feature = new Data.Entities.Feature {
                ApplicationId = application.ApplicationId, Name = "MyTestFeature"
            };

            new CreateFeatureFake().Execute(feature);

            new CreateFeatureOverrideFake().Execute(new Data.Entities.FeatureOverride {
                FeatureId = feature.FeatureId, Hostname = Dns.GetHostName(), IsEnabled = true
            });

            var response = _browser.Get("/api/feature", with =>
            {
                with.Header("Accept", "application/json");
                with.Query("application", application.Name);
                with.Query("feature", feature.Name);
            });

            var result = JsonConvert.DeserializeObject <Contracts.Feature>(response.Body.AsString());

            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
            Assert.That(result.FeatureOverrides.Any(f => f.FeatureId == feature.FeatureId && f.IsEnabled), Is.True);
        }
Exemplo n.º 2
0
        public void WhenIDeleteAFeatureOverride_ThenTheFeatureOverrideIsRemovedAndSignalRClientsAreNotified()
        {
            var application = new Application {
                ApplicationId = 1, Name = "TestApplication1"
            };

            _createApplication.Execute(application);

            var feature = new Data.Entities.Feature {
                ApplicationId = application.ApplicationId, Name = "Feature1"
            };

            _createFeature.Execute(feature);

            var featureOverride = new Data.Entities.FeatureOverride {
                FeatureId = feature.FeatureId, Hostname = "Test", IsEnabled = true
            };

            _createFeatureOverride.Execute(featureOverride);

            _browser.Delete("/api/featureoverrides", with => { with.Query("id", "1"); });

            feature = _getFeature.Execute(feature.Name, application.Name);
            CollectionAssert.IsEmpty(feature.FeatureOverrides);

            _bootstrapper
            .Resolve <IMockClient>()
            .Received()
            .removeFeatureOverride(Arg.Any <dynamic>());
        }
Exemplo n.º 3
0
        public void WhenIPutAFeature_ThenTheFeatureOverrideIsUpdatedAndSignalRClientsAreNotified()
        {
            var application = new Application {
                ApplicationId = 1, Name = "TestApplication1"
            };

            _createApplication.Execute(application);

            var feature = new Data.Entities.Feature {
                ApplicationId = application.ApplicationId, Name = "Feature1"
            };

            _createFeature.Execute(feature);

            var featureOverride = new Data.Entities.FeatureOverride {
                FeatureId = feature.FeatureId, Hostname = "Test", IsEnabled = true
            };

            _createFeatureOverride.Execute(featureOverride);

            featureOverride.Hostname = "TEST123";

            Put(featureOverride.ToContract());

            feature = _getFeature.Execute(feature.Name, application.Name);
            Assert.That(feature.FeatureOverrides[0].Hostname, Is.EqualTo("TEST123"));

            _bootstrapper
            .Resolve <IMockClient>()
            .Received()
            .updateFeatureOverride(Arg.Any <dynamic>());
        }
        public void WhenIDeleteAFeatureOverride_ThenTheFeatureOverrideIsRemovedAndSignalRClientsAreNotified()
        {
            var application = new Application { ApplicationId = 1, Name = "TestApplication1" };
            _createApplication.Execute(application);

            var feature = new Data.Entities.Feature { ApplicationId = application.ApplicationId, Name = "Feature1" };
            _createFeature.Execute(feature);

            var featureOverride = new Data.Entities.FeatureOverride { FeatureId = feature.FeatureId, Hostname = "Test", IsEnabled = true };
            _createFeatureOverride.Execute(featureOverride);

            _browser.Delete("/api/featureoverrides", with => { with.Query("id", "1"); });

            feature = _getFeature.Execute(feature.Name, application.Name);
            CollectionAssert.IsEmpty(feature.FeatureOverrides);

            _bootstrapper
                .Resolve<IMockClient>()
                .Received()
                .removeFeatureOverride(Arg.Any<dynamic>());
        }
Exemplo n.º 5
0
 public void Execute(Data.Entities.Feature feature)
 {
     using (var cnn = CreateConnection())
     {
         try
         {
             cnn.Execute(@"UPDATE Feature
                           SET IsEnabled = @IsEnabled, Name = @Name
                           WHERE FeatureId = @FeatureId", new
             {
                 feature.IsEnabled,
                 feature.Name,
                 feature.FeatureId
             });
         }
         catch (DbException exception)
         {
             throw new UpdateFeatureException(exception);
         }
     }
 }
Exemplo n.º 6
0
 public void Execute(Data.Entities.Feature feature)
 {
     using (var cnn = CreateConnection())
     {
         try
         {
             feature.FeatureId = cnn.Query <int>(@"INSERT INTO Feature (IsEnabled, Name, ApplicationId)
                                                  VALUES (@IsEnabled, @Name, @ApplicationId);
                                                  SELECT SCOPE_IDENTITY();", new
             {
                 feature.IsEnabled,
                 feature.Name,
                 feature.ApplicationId
             }).First();
         }
         catch (DbException exception)
         {
             throw new CreateFeatureException(exception);
         }
     }
 }
Exemplo n.º 7
0
        public void WhenIPostAFeatureOverride_ThenItIsSavedAndSignalRClientsAreNotified()
        {
            var application = new Application {
                ApplicationId = 1, Name = "TestApplication1"
            };

            _createApplication.Execute(application);

            var feature = new Data.Entities.Feature {
                ApplicationId = application.ApplicationId, Name = "Feature1"
            };

            _createFeature.Execute(feature);

            var featureOverride = new FeatureOverride {
                FeatureId = feature.FeatureId, Hostname = "Test", IsEnabled = true
            };

            Post(featureOverride);

            var response = _browser.Get("/api/feature", with =>
            {
                with.Header("Accept", "application/json");
                with.Query("application", application.Name);
                with.Query("feature", feature.Name);
            });

            var result = JsonConvert.DeserializeObject <Contracts.Feature>(response.Body.AsString());

            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
            Assert.That(result.FeatureOverrides[0].IsEnabled, Is.True);

            _bootstrapper
            .Resolve <IMockClient>()
            .Received()
            .addFeatureOverride(Arg.Any <dynamic>());
        }
        public void WhenIPostAFeatureOverride_ThenItIsSavedAndSignalRClientsAreNotified()
        {
            var application = new Application { ApplicationId = 1, Name = "TestApplication1" };
            _createApplication.Execute(application);

            var feature = new Data.Entities.Feature { ApplicationId = application.ApplicationId, Name = "Feature1" };
            _createFeature.Execute(feature);

            var featureOverride = new FeatureOverride { FeatureId = feature.FeatureId, Hostname = "Test", IsEnabled = true };

            Post(featureOverride);

            var response = _browser.Get("/api/feature", with =>
            {
                with.Header("Accept", "application/json");
                with.Query("application", application.Name);
                with.Query("feature", feature.Name);
            });

            var result = JsonConvert.DeserializeObject<Contracts.Feature>(response.Body.AsString());
            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
            Assert.That(result.FeatureOverrides[0].IsEnabled, Is.True);

            _bootstrapper
                .Resolve<IMockClient>()
                .Received()
                .addFeatureOverride(Arg.Any<dynamic>());
        }
        public void WhenIPutAFeature_ThenTheFeatureOverrideIsUpdatedAndSignalRClientsAreNotified()
        {
            var application = new Application { ApplicationId = 1, Name = "TestApplication1" };
            _createApplication.Execute(application);

            var feature = new Data.Entities.Feature { ApplicationId = application.ApplicationId, Name = "Feature1" };
            _createFeature.Execute(feature);

            var featureOverride = new Data.Entities.FeatureOverride { FeatureId = feature.FeatureId, Hostname = "Test", IsEnabled = true };
            _createFeatureOverride.Execute(featureOverride);

            featureOverride.Hostname = "TEST123";

            Put(featureOverride.ToContract());

            feature = _getFeature.Execute(feature.Name, application.Name);
            Assert.That(feature.FeatureOverrides[0].Hostname, Is.EqualTo("TEST123"));

            _bootstrapper
                .Resolve<IMockClient>()
                .Received()
                .updateFeatureOverride(Arg.Any<dynamic>());
        }
Exemplo n.º 10
0
        public void WhenIGetAFeatureWithAHostnameOverride_ThenTheFeatureIsRetrieved()
        {
            var application = new Data.Entities.Application { Name = "TestApplication" };
            new CreateApplicationFake().Execute(application);
            var feature = new Data.Entities.Feature { ApplicationId = application.ApplicationId, Name = "MyTestFeature" };
            new CreateFeatureFake().Execute(feature);

            new CreateFeatureOverrideFake().Execute(new Data.Entities.FeatureOverride { FeatureId = feature.FeatureId, Hostname = Dns.GetHostName(), IsEnabled = true });

            var response = _browser.Get("/api/feature", with =>
            {
                with.Header("Accept", "application/json");
                with.Query("application", application.Name);
                with.Query("feature", feature.Name);
            });

            var result = JsonConvert.DeserializeObject<Contracts.Feature>(response.Body.AsString());
            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
            Assert.That(result.FeatureOverrides.Any(f => f.FeatureId == feature.FeatureId && f.IsEnabled), Is.True);
        }