using UnityEngine;

namespace NaughtyAttributes.Test
{
    public class ValidateInputTest : MonoBehaviour
    {
        [ValidateInput("NotZero0", "int0 must not be zero")]
        public int int0;

        private bool NotZero0(int value)
        {
            return value != 0;
        }

        public ValidateInputNest1 nest1;

        public ValidateInputInheritedNest inheritedNest;
    }

    [System.Serializable]
    public class ValidateInputNest1
    {
        [ValidateInput("NotZero1")]
        [AllowNesting] // Because it's nested we need to explicitly allow nesting
        public int int1;

        private bool NotZero1(int value)
        {
            return value != 0;
        }

        public ValidateInputNest2 nest2;
    }

    [System.Serializable]
    public class ValidateInputNest2
    {
        [ValidateInput("NotZero2")]
        [AllowNesting] // Because it's nested we need to explicitly allow nesting
        public int int2;

        private bool NotZero2(int value)
        {
            return value != 0;
        }
    }

    [System.Serializable]
    public class ValidateInputInheritedNest : ValidateInputNest1
    {
    }
}