public async Task FailsIfOneConfigsInCollectionIsInvalid()
        {
            var max    = 4;
            var sample = new SampleConfig
            {
                ListOfConfigs = new List <ListConfig>
                {
                    new ListConfig {
                        Name = "item one", Value = 5
                    },
                    new ListConfig {
                        Name = "item two", Value = 2
                    }
                }
            };

            modelBuilder.Collection(p => p.ListOfConfigs)
            .Property(p => p.Value)
            .WithMaxValue(max);
            var model  = modelBuilder.Build();
            var result = await target.Validate(sample, model, configIdentity);

            Assert.False(result.IsValid);
            Assert.Single(result.Errors);
            Assert.Equal(ValidationStrings.GreaterThanMax(nameof(ListConfig.Value), max), result.Errors.Single());
        }
        public async Task ReturnFailedIfValidationFailed()
        {
            var config = new SampleConfig
            {
                LlamaCapacity = 23
            };
            var options = new List <OptionFromConfigSet>
            {
                new OptionFromConfigSet {
                    Id = 1, Description = "One"
                }
            };

            var input = new UpdateConfigurationSetFromJsonUploadCommand(expectedIdentity, typeof(SampleConfigSet), jsonPayload);

            configurationSetUploadMapper.Setup(r => r.MapConfigurationSetUpload(input.JsonUpload, model))
            .Returns(() => BuildConfigs(config, options));
            var validationResult = new ValidationResult(new[] { "Error", "Error2" });

            configurationValidator.Setup(v => v.Validate(It.IsAny <object>(), It.IsAny <ConfigurationModel>(), expectedIdentity))
            .ReturnsAsync(() => validationResult);
            var result = await target.Handle(input);

            Assert.False(result.IsSuccessful);
            Assert.Equal(string.Join(Environment.NewLine, new ValidationResult(new[] { validationResult, validationResult }).Errors), result.ErrorMessage);
        }
        public async Task CheckOptionsAreUpdated()
        {
            var config = new SampleConfig
            {
                Option = new Option {
                    Id = 1, Description = "Not the right description"
                },
                MoarOptions = new List <Option>
                {
                    new Option {
                        Id = 3, Description = "fail"
                    },
                    OptionProvider.OptionTwo
                }
            };
            var instance = new ConfigInstance <SampleConfig>(config, identity.ClientId);

            mockConfigProvider.Setup(test => test.GetAsync(typeof(SampleConfig), identity))
            .Returns(() => Task.FromResult <ConfigInstance>(instance));
            var configSet = (TestConfiguationModule)await target.BuildConfigSet(typeof(TestConfiguationModule), identity);

            Assert.Equal(config.Option.Description, OptionProvider.OptionOne.Description);
            Assert.Equal(config.MoarOptions[0].Description, OptionProvider.OptionThree.Description);
            Assert.Equal(config.MoarOptions[1], OptionProvider.OptionTwo);
        }
        public ConfigurationSetFactoryTests()
        {
            identity = new ConfigurationIdentity("fbce468f-0950-4b5f-a7e1-8e24e746bb91");
            registry = new ConfigurationSetRegistry();
            registry.AddConfigurationSet(new TestConfiguationModule().BuildConfigurationSetModel());
            defaultOptions = new List <ExternalOption>
            {
                new ExternalOption {
                    Id = 1, Description = "testOne"
                }
            };

            additionalOption = new List <OptionDependentOnAnotherOption>
            {
                new OptionDependentOnAnotherOption {
                    Id = 1, ExternalOption = defaultOptions[0], Value = 23.3
                }
            };
            mockConfigProvider = new Mock <IConfigProvider>();
            mockConfigProvider.Setup(test => test.GetCollectionAsync(typeof(ExternalOption), It.IsAny <ConfigurationIdentity>()))
            .Returns(() => Task.FromResult <IEnumerable>(defaultOptions));
            mockConfigProvider.Setup(test => test.GetCollectionAsync(typeof(OptionDependentOnAnotherOption), It.IsAny <ConfigurationIdentity>()))
            .Returns(() => Task.FromResult <IEnumerable>(additionalOption));
            defaultConfig = new SampleConfig
            {
                LlamaCapacity  = 23,
                ExternalOption = defaultOptions[0]
            };
            var instance = new ConfigInstance <SampleConfig>(defaultConfig, identity.ClientId);

            mockConfigProvider.Setup(test => test.GetAsync(typeof(SampleConfig), identity))
            .Returns(() => Task.FromResult <ConfigInstance>(instance));
            target = new ConfigurationSetFactory(mockConfigProvider.Object, new TestOptionSetFactory(), registry);
        }
Пример #5
0
        public ConfigurationEditPayloadMapperTests()
        {
            target     = new ConfigurationEditPayloadMapper(new TestOptionSetFactory(), new PropertyTypeProvider());
            definition = new SampleConfigSet().BuildConfigurationSetModel();
            sample     = new SampleConfig
            {
                Choice        = Choice.OptionThree,
                IsLlamaFarmer = true,
                Decimal       = 0.23m,
                StartDate     = new DateTime(2013, 10, 10),
                LlamaCapacity = 47,
                Name          = "Name 1",
                Option        = OptionProvider.OptionOne,
                MoarOptions   = new List <Option> {
                    OptionProvider.OptionOne, OptionProvider.OptionThree
                },
                ListOfConfigs = new List <ListConfig> {
                    new ListConfig {
                        Name = "One", Value = 23
                    }
                }
            };

            updatedSample = new SampleConfig
            {
                Choice        = Choice.OptionTwo,
                IsLlamaFarmer = false,
                Decimal       = 0.213m,
                StartDate     = new DateTime(2013, 10, 11),
                LlamaCapacity = 147,
                Name          = "Name 2",
                Option        = OptionProvider.OptionTwo,
                MoarOptions   = new List <Option> {
                    OptionProvider.OptionTwo, OptionProvider.OptionThree
                },
                ListOfConfigs = new List <ListConfig> {
                    new ListConfig {
                        Name = "Two plus Two", Value = 5
                    }
                }
            };
            dynamic updatedValue = new ExpandoObject();

            updatedValue.Choice        = updatedSample.Choice;
            updatedValue.IsLlamaFarmer = updatedSample.IsLlamaFarmer;
            updatedValue.Decimal       = updatedSample.Decimal;
            updatedValue.StartDate     = updatedSample.StartDate;
            updatedValue.LlamaCapacity = updatedSample.LlamaCapacity;
            updatedValue.Name          = updatedSample.Name;
            updatedValue.Option        = updatedSample.Option.Id;
            updatedValue.MoarOptions   = updatedSample.MoarOptions.Select(s => s.Id).ToList();
            updatedValue.ListOfConfigs = updatedSample.ListOfConfigs;
            var serilaisationSetting = new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
            var json = JsonConvert.SerializeObject(updatedValue, serilaisationSetting);

            updatedObject = JObject.Parse(json);
        }
Пример #6
0
        public void Before()
        {
            var config = new SampleConfig();

            this.reducer    = new SampleReducer(config);
            this.sceneState = new SceneState <SampleScene>();
            this.pageState  = new PageState <SamplePage>();
        }
Пример #7
0
        public void JsonTest()
        {
            var    config         = SampleConfig;
            string jsonConfig     = SampleConfig.ToJson();
            var    configFromJson = Config.FromJson(jsonConfig);

            Assert.IsTrue(config.COMPort == configFromJson.COMPort);
        }
 private bool DoesMatch(ConfigInstance c, SampleConfig testConfig)
 {
     if (c is ConfigInstance <SampleConfig> castConfig)
     {
         return(testConfig.LlamaCapacity == castConfig.Configuration.LlamaCapacity);
     }
     return(false);
 }
Пример #9
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            var applicationId  = "3E37AC18-A00F-47A5-B84E-C79E0823F6D4";
            var application2Id = "6A302E7D-05E9-4188-9612-4A2920E5C1AE";

            // Add framework services.
            services.AddMvc();
            services.AddConfigServer()
            .UseConfigSet <SampleConfigSet>()
            .UseInMemoryProvider()
            .UseLocalConfigServerClient(applicationId)
            .WithConfig <SampleConfig>();
            services.AddTransient <IOptionProvider, OptionProvider>();

            var optionProvider = new OptionProvider();
            var config         = new SampleConfig
            {
                LlamaCapacity = 23,
                Name          = "Name",
                Decimal       = 23.47m,
                StartDate     = new DateTime(2013, 10, 10),
                IsLlamaFarmer = false,
                Option        = optionProvider.GetOptions().First(),
                MoarOptions   = optionProvider.GetOptions().Take(2).ToList(),
                ListOfConfigs = new List <ListConfig>
                {
                    new ListConfig {
                        Name = "Value One", Value = 1
                    },
                    new ListConfig {
                        Name = "Value Two", Value = 2
                    }
                }
            };
            var config2 = new SampleConfig
            {
                LlamaCapacity = 41,
                Name          = "Name 2",
                Decimal       = 41.47m,
                StartDate     = new DateTime(2013, 11, 11),
                IsLlamaFarmer = true,
                Option        = optionProvider.GetOptions().First(),
                MoarOptions   = optionProvider.GetOptions().Take(2).ToList(),
            };
            var serviceProvider = services.BuildServiceProvider();
            var configRepo      = serviceProvider.GetService <IConfigRepository>();

            configRepo.UpdateClientAsync(new ConfigurationClient {
                ClientId = applicationId, Name = "Mvc App", Description = "Embeded Application"
            }).Wait();
            configRepo.UpdateClientAsync(new ConfigurationClient {
                ClientId = application2Id, Name = "Mvc App 2", Description = "Second Application"
            }).Wait();

            configRepo.UpdateConfigAsync(new ConfigInstance <SampleConfig>(config, applicationId)).Wait();
            configRepo.UpdateConfigAsync(new ConfigInstance <SampleConfig>(config2, application2Id)).Wait();
        }
Пример #10
0
        internal ExtensionImageVersion(XElement xml)
        {
            var azureNamespace = XmlNamespaces.WindowsAzure;

            xml.HydrateObject(azureNamespace, this);

            PublicConfigurationSchema  = PublicConfigurationSchema.FromBase64String();
            PrivateConfigurationSchema = PrivateConfigurationSchema.FromBase64String();
            SampleConfig = SampleConfig.FromBase64String();
        }
Пример #11
0
        public void GetPageScenesTest()
        {
            var config = new SampleConfig();

            Assert.AreEqual(new[]
            {
                SampleScene.PageScene1,
                SampleScene.PageScene2,
            }, config.GetPageScenes());
        }
        public FooController(
            IFooService fooService,
            IOptions <SampleConfig> sampleConfig,
            ILogger <FooController> logger)
        {
            _fooService = fooService;
            _logger     = logger;

            // Example: Use IOptions pattern
            _sampleConfig = sampleConfig.Value;
        }
Пример #13
0
        internal AvailableExtensionImage(XElement xml, Subscription subscription)
        {
            Subscription = subscription;
            var azureNamespace = XmlNamespaces.WindowsAzure;

            xml.HydrateObject(azureNamespace, this);

            PublicConfigurationSchema  = PublicConfigurationSchema.FromBase64String();
            PrivateConfigurationSchema = PrivateConfigurationSchema.FromBase64String();
            SampleConfig = SampleConfig.FromBase64String();

            Versions = new LatentSequence <ExtensionImageVersion>(GetExtensionImageVersionsAsync);
        }
Пример #14
0
        public void ShouldSave()
        {
            //Given
            var instance = CreateInstance();
            var value = new SampleConfig {Value = "value"};

            //When
            var serializedValue = instance.Serialize(value);
            var result = instance.Deserialize<SampleConfig>(serializedValue);

            //Then
            result.Value.ShouldBe(value.Value);
        }
Пример #15
0
        public void ShouldSaveGenericMetadata()
        {
            //Given
            var instance = CreateInstance();
            var sampleConfig = new SampleConfig {Value = "value"};
            var serializedMetadata = instance.Serialize(sampleConfig);
            var metadata = instance.Deserialize<PoeConfigMetadata<SampleConfig>>(serializedMetadata);

            //When
            var result = instance.Serialize(metadata);

            //Then
            result.ShouldBe(serializedMetadata);
        }
Пример #16
0
        public void SucceedsIfOptionFound()
        {
            var sample = new SampleConfig
            {
                Option = OptionProvider.OptionOne
            };

            modelBuilder.PropertyWithOptions <SampleConfig, Option, OptionProvider>(p => p.Option, provider => provider.GetOptions(), o => o.Id, o => o.Description);

            var model  = modelBuilder.Build();
            var result = target.Validate(sample, model);

            Assert.True(result.IsValid);
        }
        public async Task SucceedsIfEqualToMax_decimal()
        {
            var max    = 3m;
            var sample = new SampleConfig
            {
                Decimal = max
            };

            modelBuilder.Property(k => k.Decimal).WithMaxValue(max);
            var model  = modelBuilder.Build();
            var result = await target.Validate(sample, model, configIdentity);

            Assert.True(result.IsValid);
        }
Пример #18
0
        public void SucceedsIfEqualToMin_decimal()
        {
            var min    = 3m;
            var sample = new SampleConfig
            {
                Decimal = min
            };

            modelBuilder.Property(k => k.Decimal).WithMinValue(min);
            var model  = modelBuilder.Build();
            var result = target.Validate(sample, model);

            Assert.True(result.IsValid);
        }
Пример #19
0
        public void InitializeConfigWithoutSetName()
        {
            // Initialize config file
            Configuration = G9ConfigManagementSingleton <SampleConfig> .GetInstance();

            // Initialize config
            var sampleConfig = new SampleConfig();

            // Check config file name
            Assert.AreEqual(Configuration.ConfigFileName, nameof(SampleConfig));

            // Check version
            Assert.AreEqual(Configuration.Configuration.ConfigVersion, sampleConfig.ConfigVersion);
        }
Пример #20
0
        public async Task CallsUpdateWithRegularConfig()
        {
            var config = new SampleConfig
            {
                LlamaCapacity = 23
            };
            var existingInstance = new ConfigInstance <SampleConfig>(new SampleConfig(), expectedIdentity);
            var input            = new UpdateConfigurationFromJsonUploadCommand(expectedIdentity, typeof(SampleConfig), JsonConvert.SerializeObject(config));

            var result = await target.Handle(input);

            Assert.True(result.IsSuccessful);
            configRepository.Verify(repo => repo.UpdateConfigAsync(It.Is <ConfigInstance>(c => c.ConfigurationIdentity == existingInstance.ConfigurationIdentity && config.LlamaCapacity == ((ConfigInstance <SampleConfig>)c).Configuration.LlamaCapacity)));
        }
Пример #21
0
        public void ShouldReadWithDefaultValues()
        {
            var @default = new SampleConfig
            {
                PiValue = 3.14159254f
            };

            var objectInstance = TomlConfig
                                 .FromStream(Resources.Load("read.toml"))
                                 .ReadWithDefault(@default);

            Check.That(objectInstance.PiValue)
            .IsEqualTo(@default.PiValue);
        }
        public async Task SucceedsIfEqualToMax_date()
        {
            var max    = new DateTime(2013, 10, 10);
            var sample = new SampleConfig
            {
                StartDate = max
            };

            modelBuilder.Property(k => k.StartDate).WithMaxValue(max);
            var model  = modelBuilder.Build();
            var result = await target.Validate(sample, model, configIdentity);

            Assert.True(result.IsValid);
        }
        public async Task SucceedsIfEqualToLength()
        {
            var max    = 3;
            var sample = new SampleConfig
            {
                Name = "two"
            };

            modelBuilder.Property(k => k.Name).WithMaxLength(max);
            var model  = modelBuilder.Build();
            var result = await target.Validate(sample, model, configIdentity);

            Assert.True(result.IsValid);
        }
        public async Task SucceedsIfPaternMatches()
        {
            var pattern = @"^\d{3}";
            var sample  = new SampleConfig
            {
                Name = "920wt"
            };

            modelBuilder.Property(k => k.Name).WithPattern(pattern);
            var model  = modelBuilder.Build();
            var result = await target.Validate(sample, model, configIdentity);

            Assert.True(result.IsValid);
        }
Пример #25
0
        public void SucceedsIfEqualToMax_int()
        {
            var max    = 3;
            var sample = new SampleConfig
            {
                LlamaCapacity = max
            };

            modelBuilder.Property(k => k.LlamaCapacity).WithMaxValue(max);
            var model  = modelBuilder.Build();
            var result = target.Validate(sample, model);

            Assert.True(result.IsValid);
        }
        public async Task SucceedsIfOptionFound()
        {
            var sample = new SampleConfig
            {
                OptionFromConfigSet = OptionFromConfigSet.OptionOne
            };

            modelBuilder.PropertyWithOption(p => p.OptionFromConfigSet, (SampleConfigSet set) => set.Options);

            var model  = modelBuilder.Build();
            var result = await target.Validate(sample, model, configIdentity);

            Assert.True(result.IsValid);
        }
        public async Task SucceedsIfEqualToMin_int()
        {
            var min    = 3;
            var sample = new SampleConfig
            {
                LlamaCapacity = min
            };

            modelBuilder.Property(k => k.LlamaCapacity).WithMinValue(min);
            var model  = modelBuilder.Build();
            var result = await target.Validate(sample, model, configIdentity);

            Assert.True(result.IsValid);
        }
Пример #28
0
        public void SucceedsIfEqualToMin_date()
        {
            var min    = new DateTime(2013, 10, 10);
            var sample = new SampleConfig
            {
                StartDate = min
            };

            modelBuilder.Property(k => k.StartDate).WithMinValue(min);
            var model  = modelBuilder.Build();
            var result = target.Validate(sample, model);

            Assert.True(result.IsValid);
        }
Пример #29
0
        public ActionResult Api(string apiId)
        {
            if (!String.IsNullOrEmpty(apiId))
            {
                SampleConfig.Register(Configuration);
                var apiModel = Configuration.GetHelpPageApiModel(apiId);
                if (apiModel != null)
                {
                    return(View(apiModel));
                }
            }

            return(View(ErrorViewName));
        }
Пример #30
0
        public async Task RaisesEvent()
        {
            var config = new SampleConfig
            {
                LlamaCapacity = 23
            };
            var existingInstance = new ConfigInstance <SampleConfig>(new SampleConfig(), expectedIdentity);
            var input            = new UpdateConfigurationFromJsonUploadCommand(expectedIdentity, typeof(SampleConfig), JsonConvert.SerializeObject(config));

            configurationService.Setup(r => r.GetAsync(input.ConfigurationType, input.Identity))
            .ReturnsAsync(() => existingInstance);

            var result = await target.Handle(input);

            eventService.Verify(repo => repo.Publish(It.Is <ConfigurationUpdatedEvent>(c => c.ConfigurationType == existingInstance.ConfigType && c.Identity == expectedIdentity)));
        }
Пример #31
0
 /// <summary>
 ///     Creates a new sample.
 /// </summary>
 /// <param name="length">The sample's length, in bytes. </param>
 /// <param name="freq">The default sample rate. </param>
 /// <param name="channels">The number of channels... 1 = mono, 2 = stereo, etc. </param>
 /// <param name="max">
 ///     Maximum number of simultaneous playbacks... 1 (min) - 65535 (max)... use one of the
 ///     SampleConfig.OverXX flags to choose the override decider, in the case of there being no free channel available for
 ///     playback (ie. the sample is already playing max times).
 /// </param>
 /// <param name="config">Some configures of sample.</param>
 /// <exception cref="BassNotLoadedException">
 ///     Bass DLL not loaded, you must use <see cref="Initialize" /> to load Bass DLL
 ///     first.
 /// </exception>
 /// <exception cref="BassErrorException">
 ///     Some error occur to call a Bass function, check the error code and error message
 ///     to get more error information.
 /// </exception>
 public AudioSample(uint length, uint freq, uint channels, uint max, SampleConfig config) : this()
 {
     Handle = AudioSampleModule.SampleCreateFunction.CheckResult(
         AudioSampleModule.SampleCreateFunction.Delegate(length, freq, channels, max, config));
 }