Exemple #1
0
        public void DotNetReferenceClassGeneric_FromAssembly_Indexer()
        {
            //arrange
            Type       type       = typeof(ClassGeneric <>);
            DotNetType dotNetType = DotNetType.FromVisualStudioXml(XElement.Parse("<member name='T:DataFilesTest.DotNetReferenceClassGenericTests.ClassGeneric`1'></member>", LoadOptions.PreserveWhitespace));

            dotNetType.AddMember(DotNetProperty.FromVisualStudioXml(XElement.Parse("<member name='P:DataFilesTest.DotNetReferenceClassGenericTests.ClassGeneric`1.Item(`0)'></member>", LoadOptions.PreserveWhitespace)));
            //act
            dotNetType.AddAssemblyInfo(type, dotNetType.Name);
            //assert
            Assert.IsTrue(dotNetType.Properties[0] is DotNetIndexer);
            DotNetIndexer indexer = (dotNetType.Properties[0] as DotNetIndexer);

            Assert.AreEqual(1, indexer.Parameters.Count());
            Assert.AreEqual("Apple", indexer.Parameters[0].TypeName);
        }
        public void DotNetIndexer_Assembly_MatchesPermission()
        {
            //arrange
            Type       type       = typeof(A);
            DotNetType dotNetType = DotNetType.FromVisualStudioXml(XElement.Parse("<member name='T:DataFilesTest.DotNetIndexerTests.A'></member>", LoadOptions.PreserveWhitespace));

            dotNetType.AddMember(DotNetProperty.FromVisualStudioXml(XElement.Parse("<member name='P:DataFilesTest.DotNetIndexerTests.A.Item(System.String)'></member>", LoadOptions.PreserveWhitespace)));
            dotNetType.AddAssemblyInfo(type, dotNetType.Name);
            XElement permissionElement = XElement.Parse("<permission cref='P:DataFilesTest.DotNetIndexerTests.A.Item(System.String)'></permission>", LoadOptions.PreserveWhitespace);
            DotNetCommentQualifiedLinkedGroup permissionComment = DotNetCommentQualifiedLinkedGroup.FromVisualStudioXml(permissionElement);
            //act
            DotNetIndexer indexerResult = dotNetType.Properties.OfType <DotNetIndexer>().Cast <DotNetIndexer>().First();
            bool          matchesResult = indexerResult.Matches(permissionComment);

            //assert
            Assert.IsTrue(matchesResult);
        }
        public void DotNetIndexer_Assembly_MultipleIndexers()
        {
            //arrange
            Type       type       = typeof(A);
            DotNetType dotNetType = DotNetType.FromVisualStudioXml(XElement.Parse("<member name='T:A'></member>", LoadOptions.PreserveWhitespace));

            dotNetType.AddMember(DotNetProperty.FromVisualStudioXml(XElement.Parse("<member name='P:A.Item(System.String)'></member>", LoadOptions.PreserveWhitespace)));
            dotNetType.AddMember(DotNetProperty.FromVisualStudioXml(XElement.Parse("<member name='P:A.Item(System.Int32)'></member>", LoadOptions.PreserveWhitespace)));
            //act
            dotNetType.AddAssemblyInfo(type, dotNetType.Name);
            //assert
            Assert.IsTrue(dotNetType.Properties[0] is DotNetIndexer);
            DotNetIndexer indexer = (dotNetType.Properties[0] as DotNetIndexer);

            Assert.AreEqual(1, indexer.Parameters.Count());
            Assert.AreEqual("key", indexer.Parameters[0].Name);

            Assert.IsTrue(dotNetType.Properties[1] is DotNetIndexer);
            indexer = (dotNetType.Properties[1] as DotNetIndexer);
            Assert.AreEqual(1, indexer.Parameters.Count());
            Assert.AreEqual("i", indexer.Parameters[0].Name);
        }