public void CheckRRSubtreeStreamBehaviourWhileEmpty1() { string description = "RewriteRuleSubtreeStream test"; RewriteRuleSubtreeStream subtreeTest = new RewriteRuleSubtreeStream(CreateTreeAdaptor(), description); Assert.IsFalse(subtreeTest.HasNext(), "HasNext() has to give back false here."); Assert.AreEqual(description.ToString(), subtreeTest.Description, "Description strings should be equal."); Assert.AreEqual(0, subtreeTest.Size(), "The number of elements should be zero."); subtreeTest.Reset(); Assert.IsTrue(true, "Reset() shouldn't make any problems here."); Assert.AreEqual(0, subtreeTest.Size(), "The number of elements should be still zero."); subtreeTest.NextNode(); }
public void CheckRRSubtreeStreamBehaviourWithElements() { RewriteRuleSubtreeStream subtreeTest = new RewriteRuleSubtreeStream(CreateTreeAdaptor(), "RewriteRuleSubtreeStream test"); IToken token1 = CreateToken(1, "test token without any real context"); ITree tree1 = CreateTree(token1); // Test Add() subtreeTest.Add(tree1); Assert.AreEqual(1, subtreeTest.Size(), "subtreeTest should have the size 1 (1)."); Assert.IsTrue(subtreeTest.HasNext(), "HasNext() should be true here (1)."); // Test NextNode() Assert.AreEqual(tree1, (ITree)subtreeTest.NextNode(), "The returned tree should be equal to the given tree (1)."); Assert.AreEqual(1, subtreeTest.Size(), "subtreeTest should have the size 1 (2)."); Assert.IsFalse(subtreeTest.HasNext(), "HasNext() should be false here (1)."); subtreeTest.Reset(); Assert.AreEqual(1, subtreeTest.Size(), "subtreeTest should have the size 1 (3)."); Assert.IsTrue(subtreeTest.HasNext(), "HasNext() should be true here (2)."); // Test NextTree() CommonTree returnedTree = (CommonTree)subtreeTest.NextTree(); Assert.AreEqual(token1, returnedTree.Token, "The returned token should be equal to the given token (3)."); Assert.AreEqual(1, subtreeTest.Size(), "subtreeTest should have the size 1 (4)."); Assert.IsFalse(subtreeTest.HasNext(), "HasNext() should be false here (2)."); subtreeTest.Reset(); Assert.AreEqual(1, subtreeTest.Size(), "subtreeTest should have the size 1 (5)."); Assert.IsTrue(subtreeTest.HasNext(), "HasNext() should be true here (3)."); // Test, what happens with two elements IToken token2 = CreateToken(2, "test token without any real context"); ITree tree2 = CreateTree(token2); subtreeTest.Add(tree2); Assert.AreEqual(2, subtreeTest.Size(), "subtreeTest should have the size 2 (1)."); Assert.IsTrue(subtreeTest.HasNext(), "HasNext() should be true here (4)."); returnedTree = (CommonTree)subtreeTest.NextTree(); Assert.AreEqual(token1, returnedTree.Token, "The returned token should be equal to the given token (4)."); Assert.AreEqual(2, subtreeTest.Size(), "subtreeTest should have the size 2 (2)."); Assert.IsTrue(subtreeTest.HasNext(), "HasNext() should be true here (5)."); returnedTree = (CommonTree)subtreeTest.NextTree(); Assert.AreEqual(token2, returnedTree.Token, "The returned token should be equal to the given token (5)."); Assert.IsFalse(subtreeTest.HasNext(), "HasNext() should be false here (3)."); // Test exception subtreeTest.NextTree(); }