public void Unwrap_RecursiveNull()
        {
            var typedArgument = GetTypedArgument(MethodBase.GetCurrentMethod());

            var result = CustomAttributeTypedArgumentUtility.Unwrap(typedArgument);

            Assert.That(result, Is.EqualTo(new[] { "1", "2", null }));
        }
        public void Unwrap_Null()
        {
            var typedArgument = GetTypedArgument(MethodBase.GetCurrentMethod());

            var result = CustomAttributeTypedArgumentUtility.Unwrap(typedArgument);

            Assert.That(result, Is.Null);
        }
        public void Unwrap_Enum()
        {
            var typedArgument = GetTypedArgument(MethodBase.GetCurrentMethod());

            var result = CustomAttributeTypedArgumentUtility.Unwrap(typedArgument);

            Assert.That(result, Is.EqualTo(MyEnum.C));
        }
        public void Unwrap_Array()
        {
            var typedArgument = GetTypedArgument(MethodBase.GetCurrentMethod());

            var result = CustomAttributeTypedArgumentUtility.Unwrap(typedArgument);

            Assert.That(result, Is.TypeOf <int[]>());
            Assert.That(result, Is.EqualTo(new[] { 1, 2, 3 }));
        }
        public void Unwrap_Recursive()
        {
            var typedArgument = GetTypedArgument(MethodBase.GetCurrentMethod());

            var result = CustomAttributeTypedArgumentUtility.Unwrap(typedArgument);

            Assert.That(result, Is.TypeOf <object[]>());
            var array = ((object[])result);

            Assert.That(array[2], Is.TypeOf <MyEnum[]>());
            Assert.That(array[4], Is.TypeOf <int[]>());
            Assert.That(array, Is.EqualTo(new object[] { "s", 7, new[] { MyEnum.B, MyEnum.A }, typeof(int), new[] { 4, 5 } }));
        }