protected void AddTestMethodAttribute(MultiDirectionTestMethodAttribute testMethodAttribute)
        {
            if (testMethodAttribute == null)
            {
                throw new ArgumentNullException("testMethodAttribute");
            }

            this.testMethodAttributes.Add(testMethodAttribute);
        }
        protected void AddTestMethodAttribute(MultiDirectionTestMethodAttribute testMethodAttribute)
        {
            if (testMethodAttribute == null)
            {
                throw new ArgumentNullException("testMethodAttribute");
            }

            this.testMethodAttributes.Add(testMethodAttribute);
        }
        private void ParseMultiDirectionAttribute(MultiDirectionTestMethodAttribute multiDirectionAttr)
        {
            foreach (var direction in multiDirectionAttr.ExtractDirections())
            {
                if (this.transferDirections.Contains(direction) && direction.Tags.Any())
                {
                    this.transferDirections.Remove(direction);
                }

                this.transferDirections.Add(direction);
            }
        }
        private void ParseMultiDirectionAttribute(MultiDirectionTestMethodAttribute multiDirectionAttr)
        {
            foreach (var direction in multiDirectionAttr.ExtractDirections())
            {
                if (this.transferDirections.Contains(direction) && direction.Tags.Any())
                {
                    this.transferDirections.Remove(direction);
                }

                this.transferDirections.Add(direction);
            }
        }
        public MultiDirectionTestMethod(MethodInfo methodInfo)
        {
            this.MethodInfoObj = methodInfo;
            transferDirections = new HashSet <TestMethodDirection>();

            foreach (Attribute attribute in methodInfo.GetCustomAttributes(true))
            {
                MultiDirectionTestMethodAttribute multiDirectionAttr = attribute as MultiDirectionTestMethodAttribute;
                if (null != multiDirectionAttr)
                {
                    this.ParseMultiDirectionAttribute(multiDirectionAttr);
                }
            }
        }