public void PropertyGuard_FirstLevelCheck()
        {
            //Arrange

            var guard = new PropertyGuard();

            guard.Add(typeof(Node), "Child");
            guard.Add(typeof(Node), "Child");

            //Act

            var isRepeating = guard.IsRepeating(typeof(Node), "Child");

            //Assert

            Assert.IsTrue(isRepeating);
        }
        public void PropertyGuard_SecondLevelCheck()
        {
            //Arrange

            var guard = new PropertyGuard();

            guard.Add(typeof(SimpleParent), "Child");
            guard.Add(typeof(SimpleChild), "Parent");
            guard.Add(typeof(SimpleParent), "Child");
            guard.Add(typeof(SimpleChild), "Parent");

            //Act

            var isRepeating = guard.IsRepeating(typeof(SimpleParent), "Child");

            //Assert

            Assert.IsTrue(isRepeating);
        }
        public void PropertyGuard_ThirdLevelCheck()
        {
            //Arrange

            var guard = new PropertyGuard();

            guard.Add(typeof(First), "Second1");
            guard.Add(typeof(Second), "Third1");
            guard.Add(typeof(Third), "First1");
            guard.Add(typeof(First), "Second1");
            guard.Add(typeof(Second), "Third1");
            guard.Add(typeof(Third), "First1");

            //Act

            var isRepeating = guard.IsRepeating(typeof(First), "Second1");

            //Assert

            Assert.IsTrue(isRepeating);
        }