public void Initialize()
        {
            var factories = new[] { MockRepository.GenerateStub <ITypeConverterFactory>(), MockRepository.GenerateStub <ITypeConverterFactory>() };

            var compoundFactory = new CompoundTypeConverterFactory(factories);

            Assert.That(compoundFactory.TypeConverterFactories, Is.Not.SameAs(factories));
            Assert.That(compoundFactory.TypeConverterFactories, Is.EqualTo(factories));
        }
        public void CreateTypeConverterOrDefault()
        {
            var intTypeConverter    = new TypeConverter();
            var doubleTypeConverter = new TypeConverter();

            var factories = new[] { MockRepository.GenerateStub <ITypeConverterFactory>(), MockRepository.GenerateStub <ITypeConverterFactory>() };

            factories[0].Stub(_ => _.CreateTypeConverterOrDefault(typeof(int))).Return(intTypeConverter);
            factories[1].Stub(_ => _.CreateTypeConverterOrDefault(typeof(double))).Return(doubleTypeConverter);

            var compoundFactory = new CompoundTypeConverterFactory(factories);

            Assert.That(compoundFactory.CreateTypeConverterOrDefault(typeof(int)), Is.SameAs(intTypeConverter));
            Assert.That(compoundFactory.CreateTypeConverterOrDefault(typeof(double)), Is.SameAs(doubleTypeConverter));
            Assert.That(compoundFactory.CreateTypeConverterOrDefault(typeof(object)), Is.Null);
        }