示例#1
0
        public void TestBlockedInterface()
        {
            var policy = new SingleFileMetadataPolicy();
            var transform = new ILCompiler.Metadata.Transform<SingleFileMetadataPolicy>(policy);

            int count = 0;
            foreach (Cts.MetadataType type in _systemModule.GetAllTypes())
            {
                if (!policy.IsBlocked(type))
                {
                    transform.HandleType(type);
                    count++;
                }
            }

            Assert.Equal(1, transform.Scopes.Count());
            var transformedTypes = transform.Scopes.Single().GetAllTypes().ToList();
            
            Assert.Equal(count, transformedTypes.Count);

            Assert.Equal(1, _systemModule.GetAllTypes().Cast<Cts.MetadataType>().Single(t => t.Name == "__ComObject").ExplicitlyImplementedInterfaces.Length);
            Assert.Equal(0, transformedTypes.Single(t => t.Name.Value == "__ComObject").Interfaces.Count);
        }
示例#2
0
        public void TestBlockedInterface()
        {
            var policy    = new SingleFileMetadataPolicy();
            var transform = new ILCompiler.Metadata.Transform <SingleFileMetadataPolicy>(policy);

            int count = 0;

            foreach (Cts.MetadataType type in _systemModule.GetAllTypes())
            {
                if (!policy.IsBlocked(type))
                {
                    transform.HandleType(type);
                    count++;
                }
            }

            Assert.Equal(1, transform.Scopes.Count());
            var transformedTypes = transform.Scopes.Single().GetAllTypes().ToList();

            Assert.Equal(count, transformedTypes.Count);

            Assert.Equal(1, _systemModule.GetAllTypes().Cast <Cts.MetadataType>().Single(t => t.Name == "__ComObject").ExplicitlyImplementedInterfaces.Length);
            Assert.Equal(0, transformedTypes.Single(t => t.Name.Value == "__ComObject").Interfaces.Count);
        }