public async Task WhenTreeDoesNotContainBranchThenIsNotPassed()
            {
                var rule = new BranchModelRule(new ModelNode("cheese", "type", CodeQuality.Good, 0, 0, 0));
                var tree = new ModelNode("node", "type", CodeQuality.Good, 0, 0, 0, new[] { new ModelNode("child", "type", CodeQuality.Good, 0, 0, 0, new[] { new ModelNode("leaf", "type", CodeQuality.Good, 0, 0, 0) }) });

                var result = await rule.Validate(tree);

                Assert.IsFalse(result.Any(x => x.Passed));
            }
            public async Task WhenTreeContainsComplexBranchThenIsPassed()
            {
                var rule = new BranchModelRule(new ModelNode("child", "type", CodeQuality.Good, 0, 0, 0, new[] { new ModelNode("leaf", "type", CodeQuality.Good, 0, 0, 0) }));
                var tree = new ModelNode("node", "type", CodeQuality.Good, 0, 0, 0, new[] { new ModelNode("child", "type", CodeQuality.Good, 0, 0, 0, new[] { new ModelNode("leaf", "type", CodeQuality.Good, 0, 0, 0) }) });

                var result = await rule.Validate(tree);

                Assert.IsTrue(result.All(x => x.Passed));
            }