public void ReflectingMetadataStream()
        {
            DefaultConfigurationService service = GenerateService();

            TestConfigurationStream configuration =
                service.GetConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>();

            CheckConfigurationStream(configuration);
        }
        public void CachingStream()
        {
            DefaultConfigurationService service = GenerateService();

            TestConfigurationStream configuration1 =
                service.GetConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>();
            TestConfigurationStream configuration2 =
                service.GetConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>();

            CheckConfigurationStream(configuration1, configuration2);
        }
        private static void CheckConfigurationStream(TestConfigurationStream configuration)
        {
            Assert.NotNull(configuration);
            TestConfiguration configurationProxy = new TestConfiguration
            {
                TestInt        = configuration.TestInt,
                TestListString = configuration.TestListString
            };

            CheckConfiguration(configurationProxy);
        }
        public void SpecificCacheClearingStream()
        {
            DefaultConfigurationService service = GenerateService();

            TestConfigurationStream configuration1 =
                service.GetConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>();

            service.ClearConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>();
            TestConfigurationStream configuration2 =
                service.GetConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>();

            CheckConfigurationStream(configuration1);
            CheckConfigurationStream(configuration2);
            Assert.Throws <EqualException>(() => Assert.Equal(configuration1, configuration2));
        }
        public void ProvidingMetadataStream()
        {
            DefaultConfigurationService service = GenerateService();

            TestConfigurationMetadataStream metadata      = new TestConfigurationMetadataStream();
            TestConfigurationStream         configuration =
                service.GetConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>(metadata);

            Assert.True(metadata.UsedAtLeastOnce);
            CheckConfigurationStream(configuration);

            service.ResetCachedConfigurations();
            TestConfigurationStream configuration2 =
                service.GetConfiguration <TestConfigurationStream, TestConfigurationMetadataStream>(metadata);

            CheckConfigurationStream(configuration2);
            Assert.NotEqual(configuration, configuration2);
            Assert.True(metadata.UsedAtLeastOnce);
            Assert.True(metadata.StreamGotDisposed);
        }
 private static void CheckConfigurationStream(TestConfigurationStream configuration1, TestConfigurationStream configuration2)
 {
     CheckConfigurationStream(configuration1);
     Assert.Equal(configuration1, configuration2);
 }