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); }