public void Nodes_Empty_Empty() { var term = MockRepository.GenerateStub<ITerm>(); var nodes = Enumerable.Empty<ISyntacticNode>(); var termNode = new TermSyntacticNode(term, nodes); Assert.That(termNode.Nodes, Is.SameAs(nodes)); }
public void Term_BlockStub_Same() { var term = MockRepository.GenerateStub<ITerm>(); var nodes = Enumerable.Empty<ISyntacticNode>(); var termNode = new TermSyntacticNode(term, nodes); Assert.That(termNode.Term, Is.SameAs(term)); }
public void CheckResult_TermNode_DoesNotThrow() { var node = new TermSyntacticNode( MockRepository.GenerateStub<ITerm>(), Enumerable.Empty<ISyntacticNode>()); var translator = new Translator(Enumerable.Empty<ISyntaxRewriter>()); Assert.DoesNotThrow(() => translator.CheckResult(node)); }
public void Nodes_SomeList_Same() { var term = MockRepository.GenerateStub<ITerm>(); var nodes = new[] { MockRepository.GenerateStub<ISyntacticNode>(), MockRepository.GenerateStub<ISyntacticNode>() }; var termNode = new TermSyntacticNode(term, nodes); Assert.That(termNode.Nodes, Is.SameAs(nodes)); }
public void Filter_TermAndFalseResolve_False() { var term = MockRepository.GenerateStub<IDeclarationTerm>(); var node = new TermSyntacticNode(term, Enumerable.Empty<ISyntacticNode>()); var resolverType = MockRepository.GenerateStub<IResolverType>(); resolverType.Stub(rt => resolverType.Resolve(term)).Return(false); var resolvers = Enumerable.Empty<IResolver>(); var linkedClass = MockRepository.GenerateStub<ILinkedLibrary>(); var rewriter = new ResolverSyntaxRewriter(resolverType, resolvers, linkedClass); Assert.That(rewriter.Filter(node), Is.False); }
public void Visit_TermAndDoesNotResolver_Throw() { var term = MockRepository.GenerateStub<IDeclarationTerm>(); var node = new TermSyntacticNode(term, Enumerable.Empty<ISyntacticNode>()); var resolverType = MockRepository.GenerateStub<IResolverType>(); var children = Enumerable.Empty<ISyntacticNode>(); var linkedClass = MockRepository.GenerateStub<ILinkedLibrary>(); var resolvers = Enumerable.Empty<IResolver>(); var rewriter = new ResolverSyntaxRewriter(resolverType, resolvers, linkedClass); rewriter.Visit(node, children); }
public void Nodes_Null_Null() { var term = MockRepository.GenerateStub<ITerm>(); var termNode = new TermSyntacticNode(term, null); Assert.That(termNode.Nodes, Is.Null); }
public void Visit_TermAndSuccessResolve_ResolvingNode() { var term = MockRepository.GenerateStub<IDeclarationTerm>(); var node = new TermSyntacticNode(term, Enumerable.Empty<ISyntacticNode>()); var resolverType = MockRepository.GenerateStub<IResolverType>(); var children = Enumerable.Empty<ISyntacticNode>(); var linkedClass = MockRepository.GenerateStub<ILinkedLibrary>(); var linkedTerm = MockRepository.GenerateStub<IResolvedTerm>(); var resolver = MockRepository.GenerateStub<IResolver>(); resolver.Stub(r => r.Resolve(term, children, linkedClass)).Return(linkedTerm); var resolvers = new[] { resolver }; var rewriter = new ResolverSyntaxRewriter(resolverType, resolvers, linkedClass); var result = rewriter.Visit(node, children); Assert.That(result,Is.Not.Null); Assert.That(result, Is.TypeOf<TermSyntacticNode>()); var termNode = (TermSyntacticNode) result; Assert.That(termNode.Term, Is.SameAs(linkedTerm)); }
public void CheckResult_NonLinkedTermNode_ThrowException() { var rules = new Dictionary<IResolverType, IEnumerable<IResolver>>(); var node = new TermSyntacticNode( MockRepository.GenerateStub<ITerm>(), Enumerable.Empty<ISyntacticNode>()); var linkedClass = MockRepository.GenerateStub<ILinkedLibrary>(); var linker = new Linker(rules, linkedClass); linker.CheckResult(node); }
public void CheckResult_LinkedTermNode_DoesNotError() { var rules = new Dictionary<IResolverType, IEnumerable<IResolver>>(); var node = new TermSyntacticNode( MockRepository.GenerateStub<IResolvedTerm>(), Enumerable.Empty<ISyntacticNode>()); var linkedClass = MockRepository.GenerateStub<ILinkedLibrary>(); var linker = new Linker(rules, linkedClass); Assert.DoesNotThrow(() => linker.CheckResult(node)); }