Exemplo n.º 1
0
        public void TestCanBeUnlockedRoundHouseKick_WithPartlyUnlockedParents()
        {
            var graphBuilderWarrior = new GraphBuilder();
            var roundHouseKick      = new SkillNode("Roundhouse Kick");

            graphBuilderWarrior
            .AddBranchNode(new SkillNode("Warrior", true, true))
            .AddBranchNode(new SkillNode("Strike"))
            .AddNode(new SkillNode("Double Strike"))
            .AddNodeFromClosestBranchNode(new SkillNode("Slash"))
            .AddNode(roundHouseKick)
            .AddNodeFromClosestBranchNode(new SkillNode("Hit"))
            .AddNode(new SkillNode("Knockout"))
            .AddNode(roundHouseKick);

            var root = graphBuilderWarrior.GetRoot();

            root.Unlock();
            var graphWalker = new GraphWalker(new LockMarkuper());
            var strikeNode  = graphBuilderWarrior.GetRoot().DependantNodes[0];

            strikeNode.Unlock();
            graphWalker.WalkThrough(root);
            var slashNode = strikeNode.DependantNodes[1];

            slashNode.Unlock();
            graphWalker.WalkThrough(root);

            Assert.AreEqual(false, slashNode.CanBeUnlocked());
        }
Exemplo n.º 2
0
        public void TestUnlockFirstElement()
        {
            var graphBuilderWarrior = new GraphBuilder();
            var roundHouseKick      = new SkillNode("Roundhouse Kick");

            graphBuilderWarrior
            .AddBranchNode(new SkillNode("Warrior", true, true))
            .AddBranchNode(new SkillNode("Strike"))
            .AddNode(new SkillNode("Double Strike"))
            .AddNodeFromClosestBranchNode(new SkillNode("Slash"))
            .AddNode(roundHouseKick)
            .AddNodeFromClosestBranchNode(new SkillNode("Hit"))
            .AddNode(new SkillNode("Knockout"))
            .AddNode(roundHouseKick);

            var root = graphBuilderWarrior.GetRoot();

            root.Unlock();
            var graphWalker = new GraphWalker(new LockMarkuper());

            graphWalker.WalkThrough(root);

            Assert.AreEqual(true, graphBuilderWarrior.GetRoot().DependantNodes[0].CanBeUnlocked());
            Assert.AreEqual(true, graphBuilderWarrior.GetRoot().DependantNodes[1].CanBeUnlocked());
        }