public bool PosTest1()
    {
        bool retVal = true;

        const string c_TEST_ID = "P001";
        const string c_TEST_DESC = "PosTest1: Intinalize the conditional attribute using not empty string.";
        string errorDesc;

        string conditionalString;

        conditionalString = "CLR_API_Test";
        TestLibrary.TestFramework.BeginScenario(c_TEST_DESC);
        try
        {
            ConditionalAttribute conditionalAtt = new ConditionalAttribute(conditionalString);
            if (conditionalAtt.ConditionString != conditionalString)
            {
                errorDesc = string.Format("Faile to initialize the conditional attribute using string \"{0}\"", conditionalString);
                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;
    }
    public bool PosTest1()
    {
        bool retVal = true;

        const string c_TEST_ID = "P001";
        const string c_TEST_DESC = "PosTest1: Get unempty ConditionString";
        string errorDesc;

        string expectedCondition;
        string actualCondition;
        expectedCondition = "CLR_Test_Case";
        ConditionalAttribute conditionalAtt = new ConditionalAttribute(expectedCondition);
        
        TestLibrary.TestFramework.BeginScenario(c_TEST_DESC);
        try
        {
            actualCondition = conditionalAtt.ConditionString;
            if (actualCondition != expectedCondition)
            {
                errorDesc = "The value of property ConditionString of instance of class ConditionalAttribute is not " +
                            "the value \"" + expectedCondition + "\" as expected: Actually\"" + actualCondition +
                            "\"";
                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;
    }
Exemplo n.º 3
0
        public static void Test_Getting_Attribute_Instance()
        {
            // ??? no idea how to get this code work...???
            // GetCustomAttributes(MemberInfo, Type): Retrieves an array of the custom attributes applied to a member of a type.  First(): returns the first element of a sequence
            ConditionalAttribute conditionalAttribute = (ConditionalAttribute)Attribute.GetCustomAttributes(typeof(C2_Listing59), typeof(ConditionalAttribute)).First();

            // use GetCustomAttributes below can retrieve the Conditional("CONDITION1") from C2_Listing59
            Console.WriteLine("The conditionalAttribute is:{0}", conditionalAttribute.ConditionString);
            Console.ReadLine();
        }
        public ConditionalBinding(ConditionalAttribute attribute, int level)
            : base(attribute, level)
        {
            ConditionalValue = attribute.Value;

            if (ConditionalValue != null)
            {
                _conditionalValueType = ConditionalValue.GetType();
            }
        }
Exemplo n.º 5
0
        public static void Ctor()
        {
            var attribute0 = new ConditionalAttribute(null);

            Assert.Null(attribute0.ConditionString);

            var attribute = new ConditionalAttribute("CONDITION");

            Assert.Equal("CONDITION", attribute.ConditionString);
        }
Exemplo n.º 6
0
 public Conditional BuildConditional(string methodName, ModelId modelId, ConditionalAttribute attribute)
 {
     return(new Conditional()
     {
         ModelId = modelId,
         Name = methodName,
         ConditionalId = attribute.ConditionalId,
         DisplayName = attribute.DisplayName,
         Description = attribute.Description
     });
 }
Exemplo n.º 7
0
        public void Main()
        {
            ConditionalAttribute conditionaAttribute =
                (ConditionalAttribute)Attribute.GetCustomAttribute(
                    typeof(Listing_62),
                    typeof(ConditionalAttribute));

            string condition = conditionaAttribute.ConditionString;

            Console.WriteLine(condition);
        }
Exemplo n.º 8
0
    public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
    {
        ConditionalAttribute attr = (ConditionalAttribute)attribute;

        string validation = attr.validation;

        var p = property.serializedObject.FindProperty(validation);

        if (p.boolValue)
        {
            EditorGUI.PropertyField(position, property, label);
        }
    }
        private void ConditionalAttributeExample()
        {
            Console.WriteLine("Conditional Attribute Example");
            ConditionalAttribute conditionalAttribute = (ConditionalAttribute)Attribute.GetCustomAttribute(typeof(ConditionalClass), typeof(ConditionalAttribute));

            if (null != conditionalAttribute)
            {
                string condition = conditionalAttribute.ConditionString;
                Console.WriteLine(condition);
            }
            else
            {
                Console.WriteLine("No condition attribute found");
            }

            Console.WriteLine("Conditional attributes can be applied to methods or attribute class");
        }
Exemplo n.º 10
0
        static void Main(string[] args)
        {
            Console.WriteLine("Using Serializable attribute: Line 44");
            Console.WriteLine("Creating custom attribute: Line 56");
            Console.WriteLine("Conditional Attribute:");

            //Condition1 defined in line 1
            MyMethod();

            //Reading attributes using reflection
            if (Attribute.IsDefined(typeof(Person), typeof(SerializableAttribute)))
            {
                Console.WriteLine("The Person is using the Serializable attribute");
            }

            //You can retrieve the specific instance of an attribute so that you can look at its properties.
            ConditionalAttribute conditionalAttribute =
                (ConditionalAttribute)Attribute.GetCustomAttribute(
                    typeof(Person),
                    typeof(ConditionalAttribute));

            //Will return CONDITION1
            //string condition = conditionalAttribute.ConditionString;
            //Console.WriteLine(condition);

            Console.WriteLine("Using Reflection: Line 92");
            GetObjectType();

            //Using reflection to inspect field/value
            int    i = 45;
            object o = i;

            DumpObject(o);

            //using Reflection to execute a method
            ExecuteMethod();

            //Lambda Expressions
            lambda();

            //Expression trees
            Console.WriteLine("Creating a 'Hello World!' app through expression trees!");
            ExpressionTrees();
        }
Exemplo n.º 11
0
        public static void ExampleGetAttribute()
        {
            if (Attribute.IsDefined(typeof(Person), typeof(SerializableAttribute)))
            {
            }

            //ConditionalAttribute conditionalAttribute =
            //   (ConditionalAttribute)Attribute.GetCustomAttribute(typeof(Person), typeof(ConditionalAttribute));
            Person     p           = new Person();
            MethodInfo methodInfo2 = p.GetType().GetMethod("MyMethod");
            //MethodBase method = MethodBase.GetMethodFromHandle();
            ConditionalAttribute attr = (ConditionalAttribute)methodInfo2.GetCustomAttributes(typeof(ConditionalAttribute), true)[0];

            Console.WriteLine("==============================");
            Console.WriteLine(attr);
            Console.WriteLine("==============================");
            //IVESTIGATE
            //string condition = conditionalAttribute.ConditionString; // returns CONDITION1
            //Console.WriteLine(condition);
        }
Exemplo n.º 12
0
        public bool CheckCall(string message)
        {
            bool found = false;

            foreach (var tuple in _chatBindMethods)
            {
                var collection            = tuple.Item1;
                var method                = tuple.Item2;
                var chatAttributes        = method.GetCustomAttributes <ChatAttribute>();
                var conditionalAttributes = method.GetCustomAttributes <ConditionalAttribute>();

                foreach (var chatAttribute in chatAttributes)
                {
                    if (chatAttribute.IsActive(Core) && ConditionalAttribute.CanExecute(conditionalAttributes))
                    {
                        var match = Regex.Match(message, $"^{chatAttribute.Regex}");
                        if (match.Success)
                        {
                            var groups = new List <string>();
                            for (int i = 0; i < match.Groups.Count; i++)
                            {
                                groups.Add(match.Groups[i].Value);
                            }

                            if (chatAttribute.IsAsync(method))
                            {
                                Task.Run(async() => await method.InvokeAsync(collection, new object[] { groups.ToArray() }));
                            }
                            else
                            {
                                method.Invoke(collection, new object[] { groups.ToArray() });
                            }

                            found = true;
                        }
                    }
                }
            }

            return(found);
        }
Exemplo n.º 13
0
        //[Conditional("Condition1"), Conditional("Condition2")]
        //static void Conditionable()
        //{
        //    string myField = "Stuff";
        //}

        static void Main(string[] args)
        {
            if (Attribute.IsDefined(typeof(Person), typeof(SerializableAttribute)))
            {
                Console.WriteLine("Serializable class");
            }

            //this breaks, but compiler did not like placing Conditional Attribute on the class itself.
            ConditionalAttribute conditionalAttribute =
                (ConditionalAttribute)Attribute.GetCustomAttribute(
                    typeof(ConditionalClass),
                    typeof(ConditionalAttribute));
            string condition = conditionalAttribute.ConditionString;

            Console.WriteLine(condition);

            Console.WriteLine("Hello World!");


            Console.ReadKey();
        }
Exemplo n.º 14
0
    private bool CheckField(SerializedProperty condition, ConditionalAttribute attr)
    {
        if (condition.propertyType == SerializedPropertyType.ObjectReference)
        {
            return(condition.objectReferenceValue != null);
        }

        if (condition.propertyType == SerializedPropertyType.Boolean)
        {
            return(condition.boolValue);
        }

        if (condition.propertyType == SerializedPropertyType.Integer)
        {
            return(condition.intValue == (int)attr.TestValue);
        }

        if (condition.propertyType == SerializedPropertyType.Enum)
        {
            return(condition.enumValueIndex == (int)attr.TestValue);
        }

        return(false);
    }
    public bool PosTest2()
    {
        bool retVal = true;

        const string c_TEST_ID   = "P002";
        const string c_TEST_DESC = "PosTest2: Get empty ConditionString";
        string       errorDesc;

        string expectedCondition;
        string actualCondition;

        expectedCondition = string.Empty;
        ConditionalAttribute conditionalAtt = new ConditionalAttribute(expectedCondition);

        TestLibrary.TestFramework.BeginScenario(c_TEST_DESC);
        try
        {
            actualCondition = conditionalAtt.ConditionString;
            if (actualCondition != expectedCondition)
            {
                errorDesc = "The value of property ConditionString of instance of class ConditionalAttribute is not " +
                            "the value string.Empty as expected: Actually\"" + actualCondition +
                            "\"";
                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);
    }
Exemplo n.º 16
0
        public bool CheckCall(string command)
        {
            var args = command.Split(' ');

            if (args.Length == 0)
            {
                return(false);
            }

            foreach (var tuple in _textBindMethods)
            {
                var collection            = tuple.Item1;
                var method                = tuple.Item2;
                var textAttributes        = method.GetCustomAttributes <TextAttribute>();
                var conditionalAttributes = method.GetCustomAttributes <ConditionalAttribute>();

                foreach (var textAttribute in textAttributes)
                {
                    if (String.Compare(textAttribute.Command, args[0], true) == 0)
                    {
                        if (textAttribute.IsActive(Core) && ConditionalAttribute.CanExecute(conditionalAttributes))
                        {
                            var argsList = new List <string>(args.Skip(1));
                            if (argsList.Count >= textAttribute.ArgumentCount)
                            {
                                if (method.ReturnType == typeof(bool) || method.ReturnType == typeof(Task <bool>))
                                {
                                    if (textAttribute.IsAsync(method))
                                    {
                                        Task.Run(async() =>
                                        {
                                            var returnValue = await method.InvokeAsync <bool>(collection, new object[] { argsList.ToArray() });

                                            if (!returnValue)
                                            {
                                                ChatUtil.ShowUsage($"Benutzung: {args[0]} {textAttribute.Arguments}");
                                            }
                                        });
                                    }
                                    else
                                    {
                                        Task.Run(() =>
                                        {
                                            var returnValue = (bool)method.Invoke(collection, new object[] { argsList.ToArray() });

                                            if (!returnValue)
                                            {
                                                ChatUtil.ShowUsage($"Benutzung: {args[0]} {textAttribute.Arguments}");
                                            }
                                        });
                                    }
                                }
                                else
                                {
                                    if (textAttribute.IsAsync(method))
                                    {
                                        Task.Run(async() => await method.InvokeAsync(collection, new object[] { argsList.ToArray() }));
                                    }
                                    else
                                    {
                                        Task.Run(() => method.Invoke(collection, new object[] { argsList.ToArray() }));
                                    }
                                }
                            }
                            else
                            {
                                ChatUtil.ShowUsage($"Benutzung: {args[0]} {textAttribute.Arguments}");
                            }


                            return(true);
                        }
                    }
                }
            }

            return(false);
        }
Exemplo n.º 17
0
 //Listing 2-62 Getting a specific attribute instance
 static void GettingSpecificAttributeInstance()
 {
     ConditionalAttribute conditionalAttribute = (ConditionalAttribute)Attribute.GetCustomAttributes(
         typeof(ConditionalAttribute)).First();
 }
Exemplo n.º 18
0
        bool ShouldDraw(SerializedProperty property)
        {
            ConditionalAttribute attribute = this.attribute as ConditionalAttribute;

            return(property.serializedObject.FindProperty(attribute.conditionProperty).boolValue);
        }
Exemplo n.º 19
0
        private bool SetupCondition(VisualElement element, SerializedProperty property, ConditionalAttribute conditionalAttribute)
        {
            switch (conditionalAttribute.Type)
            {
            case ConditionalAttribute.TestType.Bool:
                return(ReflectionHelper.SetupValueSourceCallback(conditionalAttribute.ValueSource, fieldInfo.DeclaringType, property, element, true, true, value => UpdateBoolVisibility(element, value, conditionalAttribute.BoolTest)));

            case ConditionalAttribute.TestType.Int:
                return(ReflectionHelper.SetupValueSourceCallback(conditionalAttribute.ValueSource, fieldInfo.DeclaringType, property, element, 0, true, value => UpdateNumberVisibility(element, value, conditionalAttribute.IntValue, conditionalAttribute.NumberTest)));

            case ConditionalAttribute.TestType.Float:
                return(ReflectionHelper.SetupValueSourceCallback(conditionalAttribute.ValueSource, fieldInfo.DeclaringType, property, element, 0.0f, true, value => UpdateNumberVisibility(element, value, conditionalAttribute.FloatValue, conditionalAttribute.NumberTest)));

            case ConditionalAttribute.TestType.String:
                return(ReflectionHelper.SetupValueSourceCallback(conditionalAttribute.ValueSource, fieldInfo.DeclaringType, property, element, string.Empty, true, value => UpdateStringVisibility(element, value, conditionalAttribute.StringValue, conditionalAttribute.StringTest)));

            case ConditionalAttribute.TestType.Enum:
                return(ReflectionHelper.SetupValueSourceCallback(conditionalAttribute.ValueSource, fieldInfo.DeclaringType, property, element, default(Enum), true, value => UpdateEnumVisibility(element, value, conditionalAttribute.IntValue, conditionalAttribute.EnumTest)));

            case ConditionalAttribute.TestType.Object:
                return(ReflectionHelper.SetupValueSourceCallback(conditionalAttribute.ValueSource, fieldInfo.DeclaringType, property, element, (Object)null, true, value => UpdateObjectVisibility(element, value, conditionalAttribute.ObjectTest)));
            }

            return(false);
        }
Exemplo n.º 20
0
        public void gettingAnAttributeInstance()
        {
            ConditionalAttribute cAt = (ConditionalAttribute)Attribute.GetCustomAttribute(typeof(conditionalClass), typeof(ConditionalAttribute));

            var name = cAt.ConditionString;
        }
Exemplo n.º 21
0
 public static void RunMain()
 {
     ConditionalAttribute conditionalAttribute =
         (ConditionalAttribute)Attribute.GetCustomAttribute(typeof(ConditionalClass), typeof(ConditionalAttribute));
     string condition = conditionalAttribute.ConditionString; // returns CONDITION1 // not throw error, will figure it out soon
 }
Exemplo n.º 22
0
    public bool PosTest2()
    {
        bool retVal = true;

        const string c_TEST_ID = "P002";
        const string c_TEST_DESC = "PosTest2: Intinalize the conditional attribute using string.Empty.";
        string errorDesc;

        string conditionalString;

        conditionalString = string.Empty;
        TestLibrary.TestFramework.BeginScenario(c_TEST_DESC);
        try
        {
            ConditionalAttribute conditionalAtt = new ConditionalAttribute(conditionalString);
            if (conditionalAtt.ConditionString != conditionalString)
            {
                errorDesc = "Failed to initialize the conditional attribute using an empty string(string.Empty)";
                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;
    }