Example #1
0
        public void WhenISaveAFeatureOverride_ThenTheFeatureOverrideIsSaved()
        {
            var application = new Application {
                Name = "Test"
            };

            new CreateApplicationFake().Execute(application);

            var feature = new Feature {
                Name = "Test", ApplicationId = application.ApplicationId
            };

            new CreateFeatureFake().Execute(feature);

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

            new CreateFeatureOverrideFake().Execute(featureOverride);

            var features = new GetAllFeaturesByApplicationId().Execute(application.ApplicationId);

            Assert.That(features[0].FeatureOverrides[0].Hostname, Is.EqualTo("Test"));
            Assert.That(features[0].FeatureOverrides[0].IsEnabled, Is.True);
        }
Example #2
0
 private void Put(FeatureOverride featureOverride)
 {
     _browser.Put("/api/featureoverrides", with =>
     {
         with.Header("Content-Type", "application/json");
         with.Body(JsonConvert.SerializeObject(featureOverride));
     });
 }
Example #3
0
 public static Contracts.FeatureOverride ToContract(this FeatureOverride featureOverride)
 {
     return(new Contracts.FeatureOverride
     {
         FeatureOverrideId = featureOverride.FeatureOverrideId,
         FeatureId = featureOverride.FeatureId,
         Hostname = featureOverride.Hostname,
         IsEnabled = featureOverride.IsEnabled
     });
 }
Example #4
0
 public void Handle(CreateFeatureOverrideCommand command)
 {
     try
     {
         var featureOverride = new FeatureOverride {
             FeatureId = command.FeatureId, FeatureOverrideId = command.FeatureOverrideId, Hostname = command.Hostname, IsEnabled = command.IsEnabled
         };
         _createFeatureOverride.Execute(featureOverride);
         _eventDispatcher.Dispatch(new FeatureOverrideHasBeenCreated(featureOverride.FeatureOverrideId, featureOverride.FeatureId, featureOverride.Hostname, featureOverride.IsEnabled));
     }
     catch (CreateFeatureOverrideException exception)
     {
         _eventDispatcher.Dispatch(new FeatureErrorHasOccurred(exception.Message));
         throw;
     }
 }
        public async Task AddOverride(string featureName, ulong serverId, ulong ownerId)
        {
            if (_context.FeatureOverride.SingleOrDefault(x => x.ServerId == serverId &&
                                                         x.CommandType == featureName) != null)
            {
                return;
            }

            var featureOverride = new FeatureOverride
            {
                ServerId        = serverId,
                CommandIssuerId = ownerId,
                CommandType     = featureName
            };

            await _context.FeatureOverride.AddAsync(featureOverride);

            await _context.SaveChangesAsync();
        }
        /// ------------------------------------------------------------------------------------
        private void MigrateFeatureOverrides(string filePath)
        {
            var root = XElement.Load(filePath);

            if (!root.HasElements)
            {
                return;
            }

            var newOverrideList = new List <FeatureOverride>();

            var phoneElements = from e in root.Elements("PhoneInfo")
                                where (string)e.Attribute("articulatoryFeaturesChanged") == "true" ||
                                (string)e.Attribute("binaryFeaturesChanged") == "true"
                                select e;

            foreach (var element in phoneElements)
            {
                var foverride = new FeatureOverride {
                    Phone = element.Attribute("Phone").Value
                };

                if ((string)element.Attribute("articulatoryFeaturesChanged") == "true")
                {
                    foverride.AFeatureNames = GetFeatureNamesForType(element,
                                                                     "articulatoryFeatures", _defaultDescriptiveFeatures);
                }

                if ((string)element.Attribute("binaryFeaturesChanged") == "true")
                {
                    foverride.BFeatureNames = GetFeatureNamesForType(element,
                                                                     "binaryFeatures", _defaultDistinctiveFeatures);
                }

                if (foverride.AFeatureNames.Count() > 0 || foverride.BFeatureNames.Count() > 0)
                {
                    newOverrideList.Add(foverride);
                }
            }

            FeatureOverrides.BuildXmlForOverrides(newOverrideList, BFeatureCache.DefaultFeatureSetName).Save(filePath);
        }
Example #7
0
 public void Execute(FeatureOverride featureOverride)
 {
     using (var cnn = CreateConnection())
     {
         try
         {
             featureOverride.FeatureOverrideId =
                 cnn.Query <int>(@"INSERT INTO FeatureOverride (FeatureId, Hostname, IsEnabled)
                                  VALUES (@FeatureId, @Hostname, @IsEnabled);
                                  SELECT SCOPE_IDENTITY();", new
             {
                 featureOverride.FeatureId,
                 featureOverride.Hostname,
                 featureOverride.IsEnabled
             }).First();
         }
         catch (DbException exception)
         {
             throw new CreateFeatureOverrideException(exception);
         }
     }
 }
Example #8
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>());
        }