Example #1
0
        public void TestDictionaryDescriptor()
        {
            var attributeRegistry = new AttributeRegistry();
            var descriptor        = new DictionaryDescriptor(attributeRegistry, typeof(Dictionary <int, string>), false);

            descriptor.Initialize();

            Assert.AreEqual(0, descriptor.Count);
            Assert.True(descriptor.IsPureDictionary);
            Assert.AreEqual(typeof(int), descriptor.KeyType);
            Assert.AreEqual(typeof(string), descriptor.ValueType);

            descriptor = new DictionaryDescriptor(attributeRegistry, typeof(NonPureDictionary), false);
            descriptor.Initialize();
            Assert.AreEqual(1, descriptor.Count);
            Assert.False(descriptor.IsPureDictionary);
            Assert.AreEqual(typeof(float), descriptor.KeyType);
            Assert.AreEqual(typeof(object), descriptor.ValueType);
        }
        public void TestDictionaryDescriptor()
        {
            var attributeRegistry = new AttributeRegistry();
            var factory           = new TypeDescriptorFactory(attributeRegistry);
            var descriptor        = new DictionaryDescriptor(factory, typeof(Dictionary <int, string>), false,
                                                             new DefaultNamingConvention());

            descriptor.Initialize(new DefaultKeyComparer());

            Assert.AreEqual(0, descriptor.Count);
            Assert.True(descriptor.IsPureDictionary);
            Assert.AreEqual(typeof(int), descriptor.KeyType);
            Assert.AreEqual(typeof(string), descriptor.ValueType);

            descriptor = new DictionaryDescriptor(factory, typeof(NonPureDictionary), false,
                                                  new DefaultNamingConvention());
            descriptor.Initialize(new DefaultKeyComparer());
            Assert.AreEqual(1, descriptor.Count);
            Assert.False(descriptor.IsPureDictionary);
            Assert.AreEqual(typeof(float), descriptor.KeyType);
            Assert.AreEqual(typeof(object), descriptor.ValueType);
        }