예제 #1
0
        public async Task MostRecentFirstWithoutCriterias()
        {
            IEntityManager      database    = TestSetup.CreateMemoryDatabase();
            DatabaseTaskService taskservice = new DatabaseTaskService(database);

            for (int i = 0; i < 700; ++i)
            {
                await taskservice.StoreTask(new WorkableTask()
                {
                    Id       = Guid.NewGuid(),
                    Started  = new DateTime(2020, 01, 01),
                    Finished = new DateTime(2020, 01, 1, 1, 0, 0)
                });
            }

            await taskservice.StoreTask(new WorkableTask()
            {
                Id       = Guid.NewGuid(),
                Started  = new DateTime(2020, 01, 2),
                Finished = new DateTime(2020, 01, 2, 1, 0, 0)
            });

            Page <WorkableTask> tasks = await taskservice.ListTasks();

            Assert.AreEqual(500, tasks.Result.Length);
            Assert.AreEqual(02, tasks.Result[0].Started.Day);
        }
예제 #2
0
        public async Task ListRunningTask()
        {
            Mock <IScriptImportService> importservice = new Mock <IScriptImportService>();

            importservice.Setup(s => s.Clone(It.IsAny <WorkableLogger>())).Returns(() => importservice.Object);

            IEntityManager           database         = TestSetup.CreateMemoryDatabase();
            CacheService             cache            = new CacheService(new NullLogger <CacheService>());
            IScriptCompiler          compiler         = new ScriptCompiler(new NullLogger <ScriptCompiler>(), new ScriptParser(), cache, null, new Mock <IScriptService>().Object, new Mock <IArchiveService>().Object, importservice.Object, null, null);
            WorkflowCompiler         workflowcompiler = new WorkflowCompiler(new NullLogger <WorkflowCompiler>(), cache, null, compiler);
            ITaskService             taskservice      = new DatabaseTaskService(database);
            WorkflowExecutionService executionservice = new WorkflowExecutionService(new NullLogger <WorkflowExecutionService>(), taskservice, null, null, workflowcompiler);

            WorkableTask task = await executionservice.Execute(await workflowcompiler.BuildWorkflow(new WorkflowStructure {
                Name  = "JS Test",
                Nodes = new[] {
                    new NodeData {
                        Type = NodeType.Start
                    },
                    new NodeData {
                        Type = NodeType.Node,
                    }
                },
                Transitions = new[] {
                    new IndexTransition {
                        OriginIndex = 0,
                        TargetIndex = 1
                    },
                    new IndexTransition {
                        OriginIndex = 1,
                        TargetIndex = 0,
                    }
                }
            }), new Dictionary <string, object>(), false);

            Assert.AreEqual(TaskStatus.Running, task.Status);
            Page <WorkableTask> tasks = await taskservice.ListTasks();

            Assert.AreEqual(1, tasks.Total);
            Assert.AreEqual(1, tasks.Result.Length);

            task.Token.Cancel();
            await Task.WhenAny(task.Task, Task.Delay(1000));

            Assert.AreEqual(TaskStatus.Canceled, task.Status);
        }
예제 #3
0
        public async Task MostRecentFirst()
        {
            IEntityManager      database    = TestSetup.CreateMemoryDatabase();
            DatabaseTaskService taskservice = new DatabaseTaskService(database);

            for (int i = 0; i < 31; ++i)
            {
                await taskservice.StoreTask(new WorkableTask()
                {
                    Id       = Guid.NewGuid(),
                    Started  = new DateTime(2020, 01, 1 + i),
                    Finished = new DateTime(2020, 01, i + 1, 1, 0, 0)
                });
            }

            Page <WorkableTask> tasks = await taskservice.ListTasks(new TaskFilter {
                Count = 10,
            });

            Assert.AreEqual(10, tasks.Result.Length);
            Assert.AreEqual(31, tasks.Result[0].Started.Day);
        }