예제 #1
0
        public void TestConstructor_ValidDecompiler()
        {
            DecompilationVisitor v = new DecompilationVisitor(new DudDecompiler());

            Assert.AreEqual(0, v.Algorithms.Count);
            Assert.AreEqual(0, v.Inputs.Count);
        }
예제 #2
0
        /// <summary>
        /// Restores the former state of a pipeline from Xml.
        /// </summary>
        /// <param name="pipeline">The <see cref="XDocument"/> describing the
        /// pipeline.</param>
        /// <returns>The set of processes within the pipeline as described in
        /// the Xml.</returns>
        public Client.PipelineDefinition RestorePipeline(XDocument pipeline)
        {
            if (pipeline == null)
            {
                return(new Client.PipelineDefinition());
            }

            var factories = _repo.ToDictionary();
            PipelineXmlDecompiler decompiler = new PipelineXmlDecompiler(factories);
            DecompilationVisitor  visitor    = new DecompilationVisitor(decompiler);
            PipelineXmlValidator  validator  = new PipelineXmlValidator(visitor, factories.Keys);

            validator.ThrowOnError = true;
            XmlTraverser traverser = new XmlTraverser(validator);

            try
            {
                traverser.Traverse(pipeline);
                var algorithms = visitor.Algorithms;
                _updateAlgorithmNames(algorithms);
                return(new Client.PipelineDefinition(algorithms));
            }
            catch (Exception e)
            {
                throw new ArgumentException("Error restoring Pipeline Xml.", e);
            }
        }
예제 #3
0
 public void TestConstructor_NullDecompiler()
 {
     DecompilationVisitor v = new DecompilationVisitor(null);
 }