public void TestConvertTypeToTypeLink() { string type = "System.Collections.Generic.Dictionary<System.Int32[], System.Collections.Generic.List<System.String>>"; string ourType = "Vsxmd.Units.TestType"; var norm = NormalType.CreateNormalType(type); var subTypes = norm.SubTypes.ToList(); Assert.AreEqual(subTypes.Count, 2); Assert.AreEqual(norm.DisplayTypeName, "Dictionary"); Assert.AreEqual(norm.ShortTypeName, "Dictionary-2"); var subSub = subTypes.Last(); Assert.AreEqual(subSub.SubTypes.Count(), 1); MemberName name = new MemberName("T:Vsxmd.Units.AssemblyUnit"); Assert.AreEqual(norm.GetLink(name), "https://docs.microsoft.com/dotnet/api/System.Collections.Generic.Dictionary-2"); var ourNorm = NormalType.CreateNormalType(ourType); Assert.AreEqual(ourNorm.GetLink(name), "./../TestType/TestType.md"); //Assert.AreEqual(norm.ToMarkdownLink(name), "[Dictionary](https://docs.microsoft.com/dotnet/api/System.Collections.Generic.Dictionary-2)<[Int32[]](https://docs.microsoft.com/dotnet/api/System.Int32), [List](https://docs.microsoft.com/dotnet/api/System.Collections.Generic.List-1)<[String](https://docs.microsoft.com/dotnet/api/System.String)>>"); string ret = norm.ToString("Ns.Tn --- Ns.Tn-Gc<Rs{, }>Am"); }
//ToDo : Correct internal BaseMember GetBase(BaseMember member) { //Get a list of all members of this type TypeMember typeMem = _Members.OfType <TypeMember>().FirstOrDefault(x => x.TypeName == member.TypeName); List <string> bases = typeMem.Implements; bases.Add(typeMem.Base); IEnumerable <BaseMember> potentials = _Members.Where(x => bases.Any(y => x.ID.TypeName == NormalType.CreateNormalType(y).FileName && x.ID.FriendlyName == NormalType.CreateNormalType(y).FileName)); //If can't find any members of same type with same defintion (method, prop, field etc.), return null and allow calling member to handle. if (potentials.Count() == 0) { return(null); } // To do : resolve this for multi returns. return(potentials.First()); }