示例#1
0
        public void Delete_Job_Run()
        {
            using (this.GivenRunningServerWithWebApi())
            {
                var client = new JobbrClient(this.BackendAddress);

                var job = new Job();
                this.JobStorage.AddJob(job);

                var trigger = new RecurringTrigger();
                this.JobStorage.AddTrigger(job.Id, trigger);

                var jobRun = new JobRun {
                    Job = new Job {
                        Id = job.Id
                    }, Trigger = new RecurringTrigger {
                        Id = trigger.Id
                    }, State = JobRunStates.Completed
                };
                this.JobStorage.AddJobRun(jobRun);

                client.DeleteJobRun(jobRun.Id);

                var jobRun2 = this.JobStorage.GetJobRunById(jobRun.Id);

                Assert.IsTrue(jobRun2.Deleted);
            }
        }
示例#2
0
        public void Query_Jobs_Total_Items()
        {
            using (this.GivenRunningServerWithWebApi())
            {
                var client = new JobbrClient(this.BackendAddress);

                this.JobStorage.AddJob(new Job {
                    Title = "title1", Type = "Some.Type1", UniqueName = "unique1"
                });
                this.JobStorage.AddJob(new Job {
                    Title = "title2", Type = "Some.Type2", UniqueName = "unique2"
                });
                this.JobStorage.AddJob(new Job {
                    Title = "title3", Type = "Some.Type3", UniqueName = "unique3"
                });
                this.JobStorage.AddJob(new Job {
                    Title = "title4", Type = "Some.Type4", UniqueName = "unique4"
                });
                this.JobStorage.AddJob(new Job {
                    Title = "title5", Type = "Some.Type5", UniqueName = "unique5"
                });

                var result = client.QueryJobs();

                Assert.AreEqual(5, result.TotalItems);
            }
        }
示例#3
0
        public void GetJobRunsByTriggerId()
        {
            using (this.GivenRunningServerWithWebApi())
            {
                var client = new JobbrClient(this.BackendAddress);

                var job = new Job();
                this.JobStorage.AddJob(job);

                var trigger = new RecurringTrigger();
                this.JobStorage.AddTrigger(job.Id, trigger);

                var jobRun = new JobRun {
                    Job = new Job {
                        Id = job.Id
                    }, Trigger = new RecurringTrigger {
                        Id = trigger.Id
                    }
                };
                this.JobStorage.AddJobRun(jobRun);

                var jobRun2 = new JobRun {
                    Job = new Job {
                        Id = job.Id
                    }, Trigger = new RecurringTrigger {
                        Id = trigger.Id
                    }
                };
                this.JobStorage.AddJobRun(jobRun2);

                var jobRuns = client.GetJobRunsByTriggerId(job.Id, trigger.Id);

                Assert.AreEqual(2, jobRuns.TotalItems);
            }
        }
示例#4
0
        public void GetJobRunById()
        {
            using (this.GivenRunningServerWithWebApi())
            {
                var client = new JobbrClient(this.BackendAddress);

                var job = new Job();
                this.JobStorage.AddJob(job);

                var trigger = new RecurringTrigger();
                this.JobStorage.AddTrigger(job.Id, trigger);

                var jobRun = new JobRun {
                    Job = new Job {
                        Id = job.Id
                    }, Trigger = new RecurringTrigger {
                        Id = trigger.Id
                    }
                };
                this.JobStorage.AddJobRun(jobRun);

                var jobRunDto = client.GetJobRunById(jobRun.Id);

                Assert.IsNotNull(jobRunDto);
                Assert.AreEqual(jobRun.Id, jobRunDto.JobRunId);
                Assert.AreEqual(jobRun.Job.Id, jobRunDto.JobId);
                Assert.AreEqual(jobRun.Trigger.Id, jobRunDto.TriggerId);
            }
        }
示例#5
0
        public void ServerWithHostPathDash_AccessHostRootDash_NoError()
        {
            var host = $"http://localhost:{NextFreeTcpPort()}";

            this.GivenRunningServerWithWebApi(host + "/path/");
            var client = new JobbrClient(host + "/path");

            Assert.IsTrue(client.IsAvailable());
        }
示例#6
0
        public void ServerWithRootedHostPlain_AccessHostRootPlain_NoError()
        {
            var host = $"http://localhost:{NextFreeTcpPort()}";

            this.GivenRunningServerWithWebApi(host);
            var client = new JobbrClient(host);

            Assert.IsTrue(client.IsAvailable());
        }
示例#7
0
        public static void Main(string[] args)
        {
            var jobbrClient = new JobbrClient("http://localhost:1337");

            var allJobs = jobbrClient.GetAllJobs();

            if (allJobs.Count == 0)
            {
                Console.WriteLine("At least one job is required to run this demo. Press enter to quit...");
                Console.ReadLine();
                return;
            }

            var jobId = allJobs.First().Id;

            var trigger = jobbrClient.AddTrigger(jobId, new InstantTriggerDto {
                IsActive = true, UserDisplayName = "userName"
            });

            Console.WriteLine("Got Trigger with Id:" + trigger.Id);

            var jobRuns = jobbrClient.GetJobRunsByTriggerId(jobId, trigger.Id);

            Console.WriteLine("There are {0} jobruns assigned to this trigger id.", jobRuns.Count);

            var jobRun = jobbrClient.GetJobRunById(jobRuns[0].JobRunId);

            Console.WriteLine("Current State: " + jobRun.State);
            Console.WriteLine("------------------------------------------------------------------------------");
            Console.ReadLine();

            var createdTrigger = jobbrClient.AddTrigger(jobId, new ScheduledTriggerDto {
                IsActive = true, UserDisplayName = "userName", StartDateTimeUtc = DateTime.UtcNow.AddMinutes(30)
            });

            Console.WriteLine("Created FutureTrigger with Id:" + trigger.Id + ", IsActive: " + createdTrigger.IsActive);

            var futureTrigger = jobbrClient.GetTriggerById <ScheduledTriggerDto>(jobId, createdTrigger.Id);

            Console.WriteLine("Got FutureTrigger by Id:" + trigger.Id + ", IsActive: " + createdTrigger.IsActive);

            var disableTriggerInfo = new ScheduledTriggerDto()
            {
                Id = futureTrigger.Id, IsActive = false
            };
            var dectivatedTrigger = jobbrClient.UpdateTrigger(jobId, disableTriggerInfo);

            Console.WriteLine("Disabled FutureTrigger width Id:" + trigger.Id + ", IsActive: " + dectivatedTrigger.IsActive);

            Console.WriteLine("Press enter to quit...");
            Console.ReadLine();
        }
示例#8
0
        public void RetrievingJobById()
        {
            using (this.GivenRunningServerWithWebApi())
            {
                var client = new JobbrClient(this.BackendAddress);

                var job = new Job();
                this.JobStorage.AddJob(job);

                var jobDto = client.GetJob(job.Id);

                Assert.IsTrue(job.Id > 0);
                Assert.AreEqual(job.Id, jobDto.Id);
            }
        }
示例#9
0
        public void AddRecurringTrigger()
        {
            using (this.GivenRunningServerWithWebApi())
            {
                var client = new JobbrClient(this.BackendAddress);

                var job = new Job();
                this.JobStorage.AddJob(job);

                var triggerDto = client.AddTrigger(job.Id, new RecurringTriggerDto {
                    Comment = "test"
                });

                Assert.IsNotNull(triggerDto);
                Assert.IsTrue(triggerDto.Id > 0);
            }
        }
示例#10
0
        public void GetRecurringTrigger()
        {
            using (this.GivenRunningServerWithWebApi())
            {
                var client = new JobbrClient(this.BackendAddress);

                var job = new Job();
                this.JobStorage.AddJob(job);

                var trigger = new RecurringTrigger();
                this.JobStorage.AddTrigger(job.Id, trigger);

                var triggerDto = client.GetTriggerById <RecurringTriggerDto>(job.Id, trigger.Id);

                Assert.IsNotNull(triggerDto);
                Assert.AreEqual(trigger.Id, triggerDto.Id);
            }
        }
示例#11
0
        public void Get_JobRuns_By_State()
        {
            using (this.GivenRunningServerWithWebApi())
            {
                var client = new JobbrClient(this.BackendAddress);

                var job = new Job();
                this.JobStorage.AddJob(job);

                var trigger = new RecurringTrigger();
                this.JobStorage.AddTrigger(job.Id, trigger);

                var jobRun = new JobRun {
                    Job = new Job {
                        Id = job.Id
                    }, Trigger = new RecurringTrigger {
                        Id = trigger.Id
                    }, State = JobRunStates.Completed
                };
                this.JobStorage.AddJobRun(jobRun);

                var jobRun2 = new JobRun {
                    Job = new Job {
                        Id = job.Id
                    }, Trigger = new RecurringTrigger {
                        Id = trigger.Id
                    }, State = JobRunStates.Completed
                };
                this.JobStorage.AddJobRun(jobRun2);

                var jobRun3 = new JobRun {
                    Job = new Job {
                        Id = job.Id
                    }, Trigger = new RecurringTrigger {
                        Id = trigger.Id
                    }, State = JobRunStates.Failed
                };
                this.JobStorage.AddJobRun(jobRun3);

                var jobRuns = client.QueryJobRunsByState("Completed");

                Assert.AreEqual(2, jobRuns.TotalItems);
            }
        }
示例#12
0
        public void UpdateScheduledTrigger()
        {
            using (this.GivenRunningServerWithWebApi())
            {
                var client = new JobbrClient(this.BackendAddress);

                var job = new Job();
                this.JobStorage.AddJob(job);

                var trigger = new ScheduledTrigger();
                this.JobStorage.AddTrigger(job.Id, trigger);

                var triggerDto = client.UpdateTrigger(job.Id, new ScheduledTriggerDto {
                    Id = trigger.Id, IsActive = true
                });

                Assert.IsNotNull(triggerDto);
                Assert.IsTrue(triggerDto.IsActive);
            }
        }