public void ShowProtectedInnerClassFromDerivedClass() { string program = @"using System; class Derived : Outer { } class Outer { protected class Inner {} } "; TypeResolveResult trr = Resolve <TypeResolveResult>(program, "Outer", 3); ArrayList l = trr.GetCompletionData(trr.ResolvedClass.ProjectContent); Assert.IsTrue(IsInnerClassVisible(l)); }
public void DoNotShowInaccessibleInnerClass() { string program = @"using System; class C { } class Outer { private class Inner { } } "; TypeResolveResult trr = Resolve <TypeResolveResult>(program, "Outer", 3); ArrayList l = trr.GetCompletionData(trr.ResolvedClass.ProjectContent); Assert.IsFalse(IsInnerClassVisible(l)); }
public void DoNotShowProtectedInnerClassThroughUnrelatedClass() { string program = @"using System; class Unrelated { } class Derived : Outer { } class Outer { protected class Inner {} } "; TypeResolveResult trr = Resolve <TypeResolveResult>(program, "Derived", 3); ArrayList l = trr.GetCompletionData(trr.ResolvedClass.ProjectContent); Assert.IsFalse(IsInnerClassVisible(l)); }