예제 #1
0
    public bool PosTest2()
    {
        bool retVal = true;

        const string c_TEST_ID   = "P002";
        string       c_TEST_DESC = "PosTest2: Get a friend assembly name that is an emtpy string.";
        string       errorDesc;

        string assemblyName;
        string actualFriendAssemblyName;

        assemblyName = string.Empty;
        TestLibrary.TestFramework.BeginScenario(c_TEST_DESC);
        try
        {
            InternalsVisibleToAttribute internalIsVisibleTo = new InternalsVisibleToAttribute(assemblyName);
            actualFriendAssemblyName = internalIsVisibleTo.AssemblyName;
            if (actualFriendAssemblyName != assemblyName)
            {
                errorDesc = "The friend assembly name is not an empty string as expected, Actually\"" +
                            actualFriendAssemblyName + "\"";
                TestLibrary.TestFramework.LogError("003" + " TestId-" + c_TEST_ID, errorDesc);
                retVal = false;
            }
        }
        catch (Exception e)
        {
            errorDesc = "Unexpected exception: " + e;
            TestLibrary.TestFramework.LogError("004" + " TestId-" + c_TEST_ID, errorDesc);
            retVal = false;
        }

        return(retVal);
    }
    public bool PosTest1()
    {
        bool retVal = true;

        const string c_TEST_ID = "P001";
        string c_TEST_DESC = "PosTest1: Get a normal friend assembly name.";
        string errorDesc;

        string assemblyName;
        string actualFriendAssemblyName;
        assemblyName = "myTestCase.dll";
        TestLibrary.TestFramework.BeginScenario(c_TEST_DESC);
        try
        {
            InternalsVisibleToAttribute internalIsVisibleTo = new InternalsVisibleToAttribute(assemblyName);
            actualFriendAssemblyName = internalIsVisibleTo.AssemblyName;
            if (actualFriendAssemblyName != assemblyName)
            {
                errorDesc = "The friend assembly name is not the value \"" + assemblyName + 
                            "\" as expected, Actually\"" + actualFriendAssemblyName + "\"";
                TestLibrary.TestFramework.LogError("001" + " TestId-" + c_TEST_ID, errorDesc);
                retVal = false;
            }
        }
        catch (Exception e)
        {
            errorDesc = "Unexpected exception: " + e;
            TestLibrary.TestFramework.LogError("002" + " TestId-" + c_TEST_ID, errorDesc);
            retVal = false;
        }

        return retVal;
    }
예제 #3
0
        ICollection <AssemblyName> LoadInternalsVisibleTo()
        {
            var result = new List <AssemblyName>();

            Assembly assembly = Assembly;

            if (assembly == null)
            {
                return(result);
            }
            if (assembly.ReflectionOnly)
            {
                EnsureReflectionOnlyAttributeData();
                foreach (var cad in _attributeData)
                {
                    if (LooseTypeExtensions.AssemblyQualifiedNameEquals(cad.Constructor.DeclaringType, typeof(InternalsVisibleToAttribute)))
                    {
                        string assemblyName = cad.ConstructorArguments[0].Value as string;
                        LoadInternalsVisibleToHelper(result, assemblyName, assembly);
                    }
                }
            }
            else
            {
                Attribute[] attributes = Attribute.GetCustomAttributes(assembly, typeof(InternalsVisibleToAttribute));
                for (int i = 0; i < attributes.Length; i++)
                {
                    InternalsVisibleToAttribute ivAttrib = (InternalsVisibleToAttribute)attributes[i];
                    LoadInternalsVisibleToHelper(result, ivAttrib.AssemblyName, assembly);
                }
            }
            return(result);
        }
예제 #4
0
    public bool PosTest1()
    {
        bool retVal = true;

        const string c_TEST_ID   = "P001";
        string       c_TEST_DESC = "PosTest1: Get a normal friend assembly name.";
        string       errorDesc;

        string assemblyName;
        string actualFriendAssemblyName;

        assemblyName = "myTestCase.dll";
        TestLibrary.TestFramework.BeginScenario(c_TEST_DESC);
        try
        {
            InternalsVisibleToAttribute internalIsVisibleTo = new InternalsVisibleToAttribute(assemblyName);
            actualFriendAssemblyName = internalIsVisibleTo.AssemblyName;
            if (actualFriendAssemblyName != assemblyName)
            {
                errorDesc = "The friend assembly name is not the value \"" + assemblyName +
                            "\" as expected, Actually\"" + actualFriendAssemblyName + "\"";
                TestLibrary.TestFramework.LogError("001" + " TestId-" + c_TEST_ID, errorDesc);
                retVal = false;
            }
        }
        catch (Exception e)
        {
            errorDesc = "Unexpected exception: " + e;
            TestLibrary.TestFramework.LogError("002" + " TestId-" + c_TEST_ID, errorDesc);
            retVal = false;
        }

        return(retVal);
    }
예제 #5
0
    public bool PosTest4()
    {
        bool retVal = true;

        const string c_TEST_ID   = "P004";
        string       c_TEST_DESC = "PosTest4: Get a friend assembly name containing special characters.";
        string       errorDesc;

        string assemblyName;
        string actualFriendAssemblyName;

        assemblyName = "::B:" + System.IO.Path.DirectorySeparatorChar + "\n\v\r\t\0myTestCase.dll";
        TestLibrary.TestFramework.BeginScenario(c_TEST_DESC);
        try
        {
            InternalsVisibleToAttribute internalIsVisibleTo = new InternalsVisibleToAttribute(assemblyName);
            actualFriendAssemblyName = internalIsVisibleTo.AssemblyName;
            if (actualFriendAssemblyName != assemblyName)
            {
                errorDesc = "The friend assembly name is not the value \"" + assemblyName +
                            "\" as expected, Actually\"" + actualFriendAssemblyName + "\"";
                TestLibrary.TestFramework.LogError("007" + " TestId-" + c_TEST_ID, errorDesc);
                retVal = false;
            }
        }
        catch (Exception e)
        {
            errorDesc = "Unexpected exception: " + e;
            TestLibrary.TestFramework.LogError("008" + " TestId-" + c_TEST_ID, errorDesc);
            retVal = false;
        }

        return(retVal);
    }
        [Test] // .ctor (String)
        public void Constructor1()
        {
            InternalsVisibleToAttribute ivt;
            string aname;

            aname = "Mono";
            ivt   = new InternalsVisibleToAttribute(aname);
            Assert.IsTrue(ivt.AllInternalsVisible, "#A:AllInternalsVisible");
            Assert.AreSame(aname, ivt.AssemblyName, "#A:AssemblyName");
            Assert.AreEqual(ivt.GetType(), ivt.TypeId, "#A:TypeId");

            aname = typeof(int).Assembly.FullName;
            ivt   = new InternalsVisibleToAttribute(aname);
            Assert.IsTrue(ivt.AllInternalsVisible, "#B:AllInternalsVisible");
            Assert.AreSame(aname, ivt.AssemblyName, "#B:AssemblyName");
            Assert.AreEqual(ivt.GetType(), ivt.TypeId, "#B:TypeId");

            aname = string.Empty;
            ivt   = new InternalsVisibleToAttribute(aname);
            Assert.IsTrue(ivt.AllInternalsVisible, "#C:AllInternalsVisible");
            Assert.AreSame(aname, ivt.AssemblyName, "#C:AssemblyName");
            Assert.AreEqual(ivt.GetType(), ivt.TypeId, "#C:TypeId");

            aname = null;
            ivt   = new InternalsVisibleToAttribute(aname);
            Assert.IsTrue(ivt.AllInternalsVisible, "#D:AllInternalsVisible");
            Assert.IsNull(ivt.AssemblyName, "#D:AssemblyName");
            Assert.AreEqual(ivt.GetType(), ivt.TypeId, "#D:TypeId");
        }
        public void AllInternalsVisible()
        {
            InternalsVisibleToAttribute ivt = new InternalsVisibleToAttribute("Mono");

            ivt.AllInternalsVisible = false;
            Assert.IsFalse(ivt.AllInternalsVisible, "#1");
            ivt.AllInternalsVisible = true;
            Assert.IsTrue(ivt.AllInternalsVisible, "#2");
        }
예제 #8
0
        private bool InternalsVisible(Assembly assembly)
        {
            if (Helpers.IsNullOrEmpty(this.assemblyName))
            {
                return(false);
            }
            if (this.knownTrustedAssemblies != null && this.knownTrustedAssemblies.IndexOfReference(assembly) >= 0)
            {
                return(true);
            }
            if (this.knownUntrustedAssemblies != null && this.knownUntrustedAssemblies.IndexOfReference(assembly) >= 0)
            {
                return(false);
            }
            bool flag = false;
            Type type = this.MapType(typeof(InternalsVisibleToAttribute));

            if (type == null)
            {
                return(false);
            }
            object[] customAttributes = assembly.GetCustomAttributes(type, false);
            int      num = 0;

            while (num < (int)customAttributes.Length)
            {
                InternalsVisibleToAttribute internalsVisibleToAttribute = (InternalsVisibleToAttribute)customAttributes[num];
                if (internalsVisibleToAttribute.AssemblyName == this.assemblyName || internalsVisibleToAttribute.AssemblyName.StartsWith(string.Concat(this.assemblyName, ",")))
                {
                    flag = true;
                    break;
                }
                else
                {
                    num++;
                }
            }
            if (!flag)
            {
                if (this.knownUntrustedAssemblies == null)
                {
                    this.knownUntrustedAssemblies = new BasicList();
                }
                this.knownUntrustedAssemblies.Add(assembly);
            }
            else
            {
                if (this.knownTrustedAssemblies == null)
                {
                    this.knownTrustedAssemblies = new BasicList();
                }
                this.knownTrustedAssemblies.Add(assembly);
            }
            return(flag);
        }
예제 #9
0
        public static void InternalsVisibleToAttributeTests()
        {
            var attr1 = new InternalsVisibleToAttribute("MyAssembly");

            Assert.Equal("MyAssembly", attr1.AssemblyName);
            Assert.True(attr1.AllInternalsVisible);
            attr1.AllInternalsVisible = false;
            Assert.False(attr1.AllInternalsVisible);

            var attr2 = new InternalsVisibleToAttribute(null);

            Assert.Null(attr2.AssemblyName);
        }
        private static ICommonAttribute CreateCommonInternalsVisibleToAttribute(string internalsVisibleToAssemblyName)
        {
            var internalsVisibleToAttribute = new InternalsVisibleToAttribute(internalsVisibleToAssemblyName);

            var customAttribute         = CreateMockFor <CustomAttribute>();
            var customAttributeArgument = new CustomAttributeArgument(CreateMockFor <TypeReference>().Object, internalsVisibleToAssemblyName);

            customAttribute.Setup(attribute => attribute.ConstructorArguments).Returns(new Collection <CustomAttributeArgument>(new[] { customAttributeArgument }));

            var commonAttribute = CreateMockFor <ICommonAttribute>();

            commonAttribute.Setup(attribute => attribute.MonoCecil).Returns(() => customAttribute.Object);
            commonAttribute.Setup(attribute => attribute.Reflection).Returns(() => internalsVisibleToAttribute);
            commonAttribute.Setup(attribute => attribute.Type).Returns(() => typeof(InternalsVisibleToAttribute));
            commonAttribute.Setup(attribute => attribute.FullName).Returns(() => typeof(InternalsVisibleToAttribute).FullName);

            return(commonAttribute.Object);
        }
    public bool PosTest1()
    {
        bool retVal = true;

        TestLibrary.TestFramework.BeginScenario("PosTest1: Call the constructor directly");

        try
        {
            InternalsVisibleToAttribute internalsVisibleToAttribute = new InternalsVisibleToAttribute(c_ASSEMBLY_NAME);
            if (internalsVisibleToAttribute == null)
            {
                TestLibrary.TestFramework.LogError("001", "The Constructor did not create a new instance as expected");
                retVal = false;
            }
        }
        catch (Exception e)
        {
            TestLibrary.TestFramework.LogError("002", "Unexpected exception: " + e);
            retVal = false;
        }

        return retVal;
    }
    public bool PosTest1()
    {
        bool retVal = true;

        TestLibrary.TestFramework.BeginScenario("PosTest1: Call the constructor directly");

        try
        {
            InternalsVisibleToAttribute internalsVisibleToAttribute = new InternalsVisibleToAttribute(c_ASSEMBLY_NAME);
            if (internalsVisibleToAttribute == null)
            {
                TestLibrary.TestFramework.LogError("001", "The Constructor did not create a new instance as expected");
                retVal = false;
            }
        }
        catch (Exception e)
        {
            TestLibrary.TestFramework.LogError("002", "Unexpected exception: " + e);
            retVal = false;
        }

        return(retVal);
    }
예제 #13
0
 private static bool VisibleToDynamicProxy(InternalsVisibleToAttribute attribute)
 {
     return(attribute.AssemblyName.Contains(ModuleScope.DEFAULT_ASSEMBLY_NAME));
 }
    public bool PosTest2()
    {
        bool retVal = true;

        const string c_TEST_ID = "P002";
        string c_TEST_DESC = "PosTest2: Get a friend assembly name that is an emtpy string.";
        string errorDesc;

        string assemblyName;
        string actualFriendAssemblyName;
        assemblyName = string.Empty;
        TestLibrary.TestFramework.BeginScenario(c_TEST_DESC);
        try
        {
            InternalsVisibleToAttribute internalIsVisibleTo = new InternalsVisibleToAttribute(assemblyName);
            actualFriendAssemblyName = internalIsVisibleTo.AssemblyName;
            if (actualFriendAssemblyName != assemblyName)
            {
                errorDesc = "The friend assembly name is not an empty string as expected, Actually\"" +
                            actualFriendAssemblyName + "\"";
                TestLibrary.TestFramework.LogError("003" + " TestId-" + c_TEST_ID, errorDesc);
                retVal = false;
            }
        }
        catch (Exception e)
        {
            errorDesc = "Unexpected exception: " + e;
            TestLibrary.TestFramework.LogError("004" + " TestId-" + c_TEST_ID, errorDesc);
            retVal = false;
        }

        return retVal;
    }
    public bool PosTest4()
    {
        bool retVal = true;

        const string c_TEST_ID = "P004";
        string c_TEST_DESC = "PosTest4: Get a friend assembly name containing special characters.";
        string errorDesc;

        string assemblyName;
        string actualFriendAssemblyName;
        assemblyName = "::B:" + System.IO.Path.DirectorySeparatorChar + "\n\v\r\t\0myTestCase.dll";
        TestLibrary.TestFramework.BeginScenario(c_TEST_DESC);
        try
        {
            InternalsVisibleToAttribute internalIsVisibleTo = new InternalsVisibleToAttribute(assemblyName);
            actualFriendAssemblyName = internalIsVisibleTo.AssemblyName;
            if (actualFriendAssemblyName != assemblyName)
            {
                errorDesc = "The friend assembly name is not the value \"" + assemblyName +
                            "\" as expected, Actually\"" + actualFriendAssemblyName + "\"";
                TestLibrary.TestFramework.LogError("007" + " TestId-" + c_TEST_ID, errorDesc);
                retVal = false;
            }
        }
        catch (Exception e)
        {
            errorDesc = "Unexpected exception: " + e;
            TestLibrary.TestFramework.LogError("008" + " TestId-" + c_TEST_ID, errorDesc);
            retVal = false;
        }

        return retVal;
    }