public void NonExitentTag() { var builder = new ReplacementRuleBuilder(); // don't move to nonexistent tag Assert.ThrowsException <ArgumentException>(() => builder.MoveToTag("test")); }
public void Control() { var builder = new ReplacementRuleBuilder(); // invalid operations in "start" state Assert.ThrowsException <InvalidOperationException>(() => builder.GetResult()); Assert.ThrowsException <InvalidOperationException>(() => builder.Continue()); builder.MappedVertex <Vertex>("test"); builder.MappedEdge <Edge>(); // can't get result if edge is unfinished Assert.ThrowsException <InvalidOperationException>(() => builder.GetResult()); builder.MappedVertex <Vertex>(); builder.PatternEdge <Edge>(); // can't get result if edge is unfinished Assert.ThrowsException <InvalidOperationException>(() => builder.GetResult()); // test continuing from end state builder.PatternVertex <Vertex>().GetResult(); builder.Continue("test"); builder.ReplacementEdge <Edge>(); // can't get result if edge is unfinished Assert.ThrowsException <InvalidOperationException>(() => builder.GetResult()); builder.ReplacementVertex <Vertex>(); // valid control: var rule = builder.GetResult(); builder.Continue(); builder.MoveToTag("test"); builder.GetResult(); builder.Reset(); Assert.IsTrue(rule.Pattern.Vertices.Count == 3); Assert.IsTrue(rule.Replacement.Vertices.Count == 3); Assert.IsTrue(rule.Mapping.Count == 2); }