public void IsVisibleMethodBase_Public()
        {
            var baseline       = _baseline.GetType(TextileBlocksBoldPhraseBlockModifier);
            var baselineMethod = baseline.GetMethod("ModifyLine");
            var actual         = PublicInterfaceScanner.IsVisible(baselineMethod);

            Assert.AreEqual(true, actual);
        }
        public void IsVisibleMethodBase_ProtectedInternal()
        {
            var visibility            = _visibility.GetType("Textile.States.CodeFormatterState");
            var visibilityFixEntities = visibility.GetMethod
                                            ("FixEntities", NonPublicInstance, null, new[] { typeof(String) }, null);
            var actual = PublicInterfaceScanner.IsVisible(visibilityFixEntities);

            Assert.AreEqual(true, actual);
        }
        public void IsVisibleMethodBase_Protected()
        {
            var baseline            = _baseline.GetType(TextileBlocksPhraseBlockModifier);
            var baselineConstructor = baseline.GetConstructor
                                          (NonPublicInstance, null, Type.EmptyTypes, null);
            var actual = PublicInterfaceScanner.IsVisible(baselineConstructor);

            Assert.AreEqual(true, actual);
        }
        public void Describe_Type()
        {
            // arrange
            var type = typeof(Convert);
            // act
            var actual = PublicInterfaceScanner.Describe((MemberInfo)type);

            // assert
            Assert.AreEqual("System.Convert", actual);
        }
        public void Describe_MethodInfo()
        {
            // arrange
            var methodInfo = GetConvertToStringOverload(typeof(Int32));
            // act
            var actual = PublicInterfaceScanner.Describe((MemberInfo)methodInfo);

            // assert
            Assert.AreEqual("System.Convert public static System.String ToString(Int32)", actual);
        }
        public void IsVisibleMethodBase_Private()
        {
            var baseline       = _baseline.GetType("Textile.TextileFormatter");
            var oneString      = new[] { typeof(string) };
            var baselineMethod = baseline.GetMethod
                                     ("CleanWhiteSpace", NonPublicInstance, null, oneString, null);
            var actual = PublicInterfaceScanner.IsVisible(baselineMethod);

            Assert.AreEqual(false, actual);
        }
        public void Describe_Constructor()
        {
            // arrange
            var stringType           = typeof(String);
            var constructorCharCount = stringType.GetConstructor(new[] { typeof(Char), typeof(Int32) });
            // act
            var actual = PublicInterfaceScanner.Describe((MemberInfo)constructorCharCount);

            // assert
            Assert.AreEqual("System.String public Void .ctor(Char, Int32)", actual);
        }
        public void IsVisibleMethodBase_Internal()
        {
            var formatterStateType = _baseline.GetType("Textile.FormatterState");
            var baseline           = _baseline.GetType("Textile.TextileFormatter");
            var oneFormatterState  = new[] { formatterStateType };
            var baselineMethod     = baseline.GetMethod
                                         ("ChangeState", NonPublicInstance, null, oneFormatterState, null);
            var actual = PublicInterfaceScanner.IsVisible(baselineMethod);

            Assert.AreEqual(false, actual);
        }
        public void Describe_Event()
        {
            // arrange
            var processType   = typeof(Process);
            var disposedEvent = processType.GetEvent("Disposed");
            // act
            var actual = PublicInterfaceScanner.Describe((MemberInfo)disposedEvent);

            // assert
            Assert.AreEqual("System.Diagnostics.Process public System.EventHandler Disposed", actual);
        }
        public void Describe_Field()
        {
            // arrange
            var stringType = typeof(String);
            var field      = stringType.GetField("Empty");
            // act
            var actual = PublicInterfaceScanner.Describe((MemberInfo)field);

            // assert
            Assert.AreEqual("System.String public static System.String Empty", actual);
        }
        public void LoadPublicMembers_SameDomain()
        {
            // arrange
            var basePath     = Environment.CurrentDirectory;
            var baseFullPath = Path.Combine(basePath, "Textile-base.dll");
            var assemblyPath = new FileInfo(baseFullPath);
            var pis          = new PublicInterfaceScanner(assemblyPath);

            // act
            var actual = pis.LoadPublicMembers();

            // assert
            Assert.AreEqual(653, actual.Count);
            Assert.AreEqual("Textile.BlockModifier protected System.Object MemberwiseClone()", actual[0]);
            Assert.AreEqual("Textile.TextileFormatter public Void SwitchBlockModifier(System.Type, Boolean)", actual[652]);
        }
        public void LoadPublicMembers_SameDomain()
        {
            // arrange
            var basePath = Environment.CurrentDirectory;
            var baseFullPath = Path.Combine(basePath, "Textile-base.dll");
            var assemblyPath = new FileInfo(baseFullPath);
            var pis = new PublicInterfaceScanner(assemblyPath);

            // act
            var actual = pis.LoadPublicMembers();

            // assert
            Assert.AreEqual(653, actual.Count);
            Assert.AreEqual("Textile.BlockModifier protected System.Object MemberwiseClone()", actual[0]);
            Assert.AreEqual("Textile.TextileFormatter public Void SwitchBlockModifier(System.Type, Boolean)", actual[652]);
        }