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));
 }
Пример #3
0
 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));
        }
Пример #9
0
 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);
 }
Пример #10
0
 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));
 }