public void GetJobDetailsAsync_ServiceAvailable_JobReturned() { // Arrange var expected = new MockJob { Name = _jobName }; var expectedTask = new Task <Job>(() => expected); expectedTask.Start(); // VS reports a compiler error here but tests run fine... _mockDataService.Expect(ds => ds.RequestAsync <Job>(Arg.Is(URL.Job), Arg.Is(_url), Arg.Is(_userName), Arg.Is(_apiKey), Arg <object[]> .List.ContainsAll(_jobNameList))) .Return(expectedTask); //mockDataService.Expect( // ds =>ds.RequestAsync<Node>(Arg.Is(URL.Api), Arg.Is(url), Arg.Is(userName), Arg.Is(apiKey),Arg<object[]>.Is.Anything)); _targetServer = new JenkinsServer(_mockDataService, _url, _userName, _apiKey, _name); // Act var actualTask = _targetServer.GetJobDetailsAsync(_jobName); actualTask.Wait(); var actual = actualTask.Result; // Assert Assert.AreEqual(actual, expected); _mockDataService.VerifyAllExpectations(); }
public void TestScheduleParallel() { Parallel.For(0, 100000, _ => MockJob.Publish()); StopWorkers(); Assert.AreEqual(100000, _counter.Value); }
public void IncreaseKey() { var job = new MockJob { Name = "cooking" }; var job2 = new MockJob { Name = "homework" }; var job3 = new MockJob { Name = "hoover" }; var priorityQueue = new MaxPriorityQueue<MockJob>(new[] { new KeyValuePair<double, MockJob>(2.0, job), new KeyValuePair<double, MockJob>(1.1, job2), new KeyValuePair<double, MockJob>(2.5, job3) }); priorityQueue.IncreaseKey(1, 3.0); Assert.AreEqual("homework", priorityQueue.Maximum().Name,"#E8"); }
public void Insert() { var job = new MockJob { Name = "cooking" }; var job2 = new MockJob { Name = "homework" }; var job3 = new MockJob { Name = "hoover" }; var priorityQueue = new MaxPriorityQueue<MockJob>(new[] { new KeyValuePair<double, MockJob>(2.0, job), new KeyValuePair<double, MockJob>(1.1, job2)}); priorityQueue.Insert(new KeyValuePair<double, MockJob>(2.5, job3) ); Assert.AreEqual(3, priorityQueue.Count, "#E9"); Assert.AreEqual("hoover", priorityQueue.Maximum().Name, "#E10"); }
public void TestScheduleInBatch() { JobBatch.Do(() => { for (var i = 0; i < 100000; i++) { MockJob.Publish(); } }); StopWorkers(); Assert.AreEqual(100000, _counter.Value); }
public void ExtractMax() { var job = new MockJob { Name = "cooking" }; var priorityQueue = new MaxPriorityQueue<MockJob>(new[] { new KeyValuePair<double, MockJob>(2.0, job) }); Assert.AreEqual(job.Name, priorityQueue.ExtractMax().Name, "#E2"); Assert.AreEqual(0, priorityQueue.Count, "#E3"); var job2 = new MockJob { Name = "homework" }; var job3 = new MockJob { Name = "hoover" }; priorityQueue = new MaxPriorityQueue<MockJob>(new[] { new KeyValuePair<double, MockJob>(2.0, job), new KeyValuePair<double, MockJob>(1.1, job2), new KeyValuePair<double, MockJob>(2.5, job3) }); Assert.AreEqual("hoover", priorityQueue.ExtractMax().Name, "#E4"); Assert.AreEqual(2, priorityQueue.Count,"#E5"); Assert.AreEqual("cooking",priorityQueue.ExtractMax().Name,"#E6"); Assert.AreEqual(1, priorityQueue.Count, "#E7"); }
public void TestCronJobWithEndTime() { var startTime = new DateTime(2021, 9, 5, 0, 0, 0, DateTimeKind.Utc); MockJob.PublishPeriodic("test_job", "0/2 * * ? * *", null, startTime, startTime.AddSeconds(4)); _timeProvider.CurrentTimeUtc = startTime; StopWorkers(); Assert.AreEqual(0, _counter.Value); StartWorkers(); _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(1000); StopWorkers(); Assert.AreEqual(0, _counter.Value); StartWorkers(); _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(2000); StopWorkers(); Assert.AreEqual(1, _counter.Value); StartWorkers(); _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(3000); StopWorkers(); Assert.AreEqual(1, _counter.Value); StartWorkers(); _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(4000); StopWorkers(); Assert.AreEqual(2, _counter.Value); StartWorkers(); _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(5000); StopWorkers(); Assert.AreEqual(2, _counter.Value); }
public void TestPeriodicJob() { var startTime = new DateTime(2021, 9, 5, 0, 0, 0, DateTimeKind.Utc); MockJob.PublishPeriodic("test_job", 1, startTime); _timeProvider.CurrentTimeUtc = startTime; StopWorkers(); Assert.AreEqual(0, _counter.Value); StartWorkers(); _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(1000); StopWorkers(); Assert.AreEqual(1, _counter.Value); StartWorkers(); _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(1999); StopWorkers(); Assert.AreEqual(1, _counter.Value); StartWorkers(); _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(2000); StopWorkers(); Assert.AreEqual(2, _counter.Value); StartWorkers(); _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(2999); StopWorkers(); Assert.AreEqual(2, _counter.Value); StartWorkers(); _timeProvider.CurrentTimeUtc = startTime.AddMilliseconds(3000); StopWorkers(); Assert.AreEqual(3, _counter.Value); }
public void GetJobDetails_ServiceAvailable_JobReturned() { // Arrange var expected = new MockJob { Name = _jobName }; var expectedTask = new Task <Job>(() => expected); expectedTask.Start(); // VS reports a compiler error here but tests run fine... _mockDataService.Expect(ds => ds.RequestAsync <Job>(Arg.Is(URL.Job), Arg.Is(_url), Arg.Is(_userName), Arg.Is(_apiKey), Arg <object[]> .List.ContainsAll(_jobNameList))) .Return(expectedTask); // Act var actual = _targetServer.GetJobDetails(_jobName); // Assert Assert.AreEqual(actual, expected); _mockDataService.VerifyAllExpectations(); }
public void RunJobs() { JobRunner[] runners = new JobRunner[] { new JobRunner(), new JobRunner(numProcessors: 1) }; foreach (var runner in runners) { MockJob job1; MockJob job2; MockJob job3; var jobs1 = new JobManager(); jobs1.Add(job1 = new MockJob()); jobs1.Add(job2 = new MockJob()); runner.Add(jobs1); var jobs2 = new JobManager(); jobs2.Add(job3 = new MockJob()); runner.Add(jobs2); runner.Run(wait: true); Assert.IsTrue(job1.HasRun); Assert.IsTrue(job2.HasRun); Assert.IsTrue(job3.HasRun); } }
public void Roundtrip() { MockJob job = new MockJob() { Id = Guid.NewGuid() }; JobDescriptor desc = factory.CreateDescriptor(job); JToken token; Assert.That(desc, Is.Not.Null); Assert.That(desc.Job, Is.EqualTo("MockJob")); Assert.That(desc.Properties, Is.Not.Null.And.Count.EqualTo(1)); Assert.That(desc.Properties.TryGetValue("Id", out token), Is.True); Assert.That(token, Is.TypeOf<JValue>().And.Property("Type").EqualTo(JTokenType.Guid)); Assert.That(token.ToObject<Guid>(), Is.EqualTo(job.Id)); Assert.That(desc.QueueMessageId, Is.Null); IJob job2 = factory.CreateJob(desc); Assert.That(job2, Is.Not.Null.And.TypeOf<MockJob>()); MockJob mockJob2 = (MockJob)job2; Assert.That(mockJob2.Id, Is.EqualTo(job.Id)); }