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); }
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>()); }
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>()); }
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); } } }
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); } } }
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>()); }
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); }