Ejemplo n.º 1
0
        public void TestHasCachedAlgorithm_UnknownName()
        {
            ProcessPluginRepository r = new ProcessPluginRepository();
            bool cached = r.KnowsAlgorithm("unknown");

            Assert.IsFalse(cached);
        }
Ejemplo n.º 2
0
        public void RestorePipe_ValidXml()
        {
            GammaProperties p = new GammaProperties()
            {
                Gamma = 3
            };
            AlgorithmDefinition def = new AlgorithmDefinition("gamma", new Property[] { });

            def.ParameterObject = p;
            ProcessPluginRepository algRepo  = new ProcessPluginRepository();
            PipelineXmlRepository   pipeRepo = new PipelineXmlRepository();

            RegistryCache.Cache.Initialize(pipeRepo);
            RegistryCache.Cache.Initialize(algRepo);
            PipelineManager m     = new PipelineManager(pipeRepo, algRepo);
            var             xml   = m.SavePipeline(new PipelineDefinition(new AlgorithmDefinition[] { def }));
            var             pipes = m.RestorePipeline(xml);

            Assert.AreEqual(1, pipes.Count());

            AlgorithmDefinition d = pipes.First();

            Assert.AreEqual(def.AlgorithmName, d.AlgorithmName);
            Assert.IsNotNull(def.ParameterObject);
            Assert.AreEqual(typeof(GammaProperties), d.ParameterObject.GetType());
            Assert.AreEqual(3, ((GammaProperties)d.ParameterObject).Gamma);
        }
Ejemplo n.º 3
0
        public void TestResolveType_NullDefinition()
        {
            ProcessPluginRepository r = new ProcessPluginRepository();
            Type type = r.FetchType(null);

            Assert.IsNull(type);
        }
Ejemplo n.º 4
0
        public void TestWork_EmptyJob()
        {
            ObjectJobDefinition d = new ObjectJobDefinition(
                new PipelineDefinition(
                    new AlgorithmDefinition[] { }),
                new JobInput[] { });
            JobRequest r               = new JobRequest(d);
            JobTicket  ticket          = new JobTicket(r, new DudCancellationHandler());
            ProcessPluginRepository re = new ProcessPluginRepository();

            RegistryCache.Cache.Initialize(re);
            RegistryFactory factory = new RegistryFactory(re);
            TicketWorker    w       = new TicketWorker();
            WorkerArgs      args    = new WorkerArgs(new DudPersister(), new BadPipelineFactory());

            args.Ticket = ticket;

            bool       didError  = false;
            bool       didFinish = false;
            TicketSink s         = new TicketSink();

            ticket.Sinks.Add(s);
            s.JobCompleted += (se, e) => didFinish = true;
            w.Work(args);

            // Events are dispatched on a seperate thread, so let it run.
            Thread.Sleep(15);

            Assert.IsTrue(didFinish);

            JobResult result = ticket.Result;

            Assert.AreEqual(JobState.Complete, result.Result);
        }
Ejemplo n.º 5
0
        public void TestHasCachedAlgorithm_KnownName()
        {
            ProcessPluginRepository r = new ProcessPluginRepository();

            RegistryCache.Cache.Initialize(r);
            bool cached = r.KnowsAlgorithm("gamma");

            Assert.IsTrue(cached);
        }
Ejemplo n.º 6
0
        public void TestManufacture_InvalidDefintion()
        {
            ProcessPluginRepository r = new ProcessPluginRepository();

            RegistryCache.Cache.Initialize(r);
            RegistryFactory factory = new RegistryFactory(r);
            AlgorithmPlugin p       = factory.Manufacture(null);

            Assert.IsNull(p);
        }
Ejemplo n.º 7
0
        public void TestManufacture_ValidDefinition()
        {
            AlgorithmDefinition     d = new AlgorithmDefinition("gamma", new Property[] {});
            ProcessPluginRepository r = new ProcessPluginRepository();

            RegistryCache.Cache.Initialize(r);
            RegistryFactory factory = new RegistryFactory(r);
            AlgorithmPlugin p       = factory.Manufacture(d);

            Assert.IsNotNull(p);
        }
Ejemplo n.º 8
0
        public void TestSavePipeline_NullProcessess()
        {
            ProcessPluginRepository algRepo  = new ProcessPluginRepository();
            PipelineXmlRepository   pipeRepo = new PipelineXmlRepository();

            RegistryCache.Cache.Initialize(pipeRepo);
            RegistryCache.Cache.Initialize(algRepo);
            PipelineManager m   = new PipelineManager(pipeRepo, algRepo);
            var             xml = m.SavePipeline(null);

            Assert.IsNull(xml);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ProcessingService"/>
        /// class.
        /// </summary>
        public ProcessingService()
        {
            ProcessPluginRepository algRepo  = new ProcessPluginRepository();
            PipelineXmlRepository   pipeRepo = new PipelineXmlRepository();

            RegistryCache.Cache.Initialize(pipeRepo);
            RegistryCache.Cache.Initialize(algRepo);
            _pluginFactory  = new RegistryFactory(algRepo);
            _persister      = new FileSystemPersister(FileSystemPersister.OutputDataPath);
            JobManager      = new JobManager(_pluginFactory, _persister);
            PipelineManager = new PipelineManager(pipeRepo, algRepo);
        }
Ejemplo n.º 10
0
        public void TestRestorePipline_NullXml()
        {
            ProcessPluginRepository algRepo  = new ProcessPluginRepository();
            PipelineXmlRepository   pipeRepo = new PipelineXmlRepository();

            RegistryCache.Cache.Initialize(pipeRepo);
            RegistryCache.Cache.Initialize(algRepo);
            PipelineManager m    = new PipelineManager(pipeRepo, algRepo);
            var             pipe = m.RestorePipeline(null);

            Assert.IsNotNull(pipe);
            Assert.AreEqual(0, pipe.Count());
        }
Ejemplo n.º 11
0
        public void TestResolveType_ValidDefinition()
        {
            ProcessPluginRepository r = new ProcessPluginRepository();

            RegistryCache.Cache.Initialize(r);
            AlgorithmDefinition d = r.KnownAlgorithms.FirstOrDefault(x => x.AlgorithmName.ToLower() == "gamma");
            Type type             = r.FetchType(d.AlgorithmName);

            Assert.IsNotNull(type);

            AlgorithmDefinition d2 = PluginReflector.CreateDefinition(type);

            Assert.IsTrue(d.Equals(d2));
        }
Ejemplo n.º 12
0
        public void TestLoadCache()
        {
            ProcessPluginRepository r = new ProcessPluginRepository();

            RegistryCache.Cache.Initialize(r);

            var loadedPlugins = r.KnownAlgorithms;

            Assert.IsTrue(loadedPlugins.Count() > 0);

            AlgorithmDefinition d = loadedPlugins.FirstOrDefault(x => x.AlgorithmName.ToLower() == "gamma");

            Assert.IsNotNull(d);
        }
Ejemplo n.º 13
0
        public void TestSavePipeline_ValidProcess()
        {
            GammaProperties p = new GammaProperties()
            {
                Gamma = 3
            };
            AlgorithmDefinition def = new AlgorithmDefinition("gamma", new Property[] { });

            def.ParameterObject = p;
            ProcessPluginRepository algRepo  = new ProcessPluginRepository();
            PipelineXmlRepository   pipeRepo = new PipelineXmlRepository();

            RegistryCache.Cache.Initialize(pipeRepo);
            RegistryCache.Cache.Initialize(algRepo);
            PipelineManager m   = new PipelineManager(pipeRepo, algRepo);
            var             xml = m.SavePipeline(new PipelineDefinition(new AlgorithmDefinition[] { def }));

            // Todo - additional test logic beyond not expecting exceptions
        }