public void StartJobShouldReturnBadRequestWhenStartJobIdDoesNotMatchPrepareJobId() { _workerWrapper = new WorkerWrapper(new ShortRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimer, _jobDetailSender); _nodeController = new NodeController(_workerWrapper) { Request = new HttpRequestMessage(), Configuration = new HttpConfiguration() }; _nodeController.PrepareToStartJob(_jobQueueItemEntity); var actionResult = _nodeController.StartJob(Guid.NewGuid()); Assert.IsTrue(actionResult.ExecuteAsync(new CancellationToken()) .Result.StatusCode == HttpStatusCode.BadRequest); }
public void CancelJobShouldReturnOkWhenSuccessful() { _workerWrapper = new WorkerWrapper(new LongRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimer, _jobDetailSender); _nodeController = new NodeController(_workerWrapper) { Request = new HttpRequestMessage() }; _nodeController.PrepareToStartJob(_jobQueueItemEntity); _nodeController.StartJob(_jobQueueItemEntity.JobId); while (!_workerWrapper.IsWorking) { Thread.Sleep(200); } var actionResult = _nodeController.TryCancelJob(_jobQueueItemEntity.JobId); Assert.IsTrue(actionResult.ExecuteAsync(new CancellationToken()).Result.StatusCode == HttpStatusCode.OK); }
public void ShouldBeAbleToCatchExceptionsFromJob() //faulting job { _workerWrapper = new WorkerWrapper(new ThrowExceptionInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimer, _jobDetailSender); _workerWrapper.ValidateStartJob(_jobDefinition); _workerWrapper.StartJob(_jobDefinition); }
public void ShouldBeAbleToStartJob() { _workerWrapper = new WorkerWrapper(new ShortRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimer, _jobDetailSender); _workerWrapper.ValidateStartJob(_jobDefinition); _workerWrapper.StartJob(_jobDefinition); }
public void StartJobShouldReturnBadRequestWhenMessageIsNull() { _workerWrapper = new WorkerWrapper(new ShortRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimer, _jobDetailSender); var actionResult = _workerWrapper.ValidateStartJob(null); Assert.IsTrue(actionResult.StatusCode == HttpStatusCode.BadRequest); }
public void ShouldBeAbleToTryCancelJob() { _workerWrapper = new WorkerWrapper(new LongRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimer, _jobDetailSender); _workerWrapper.ValidateStartJob(_jobDefinition); _workerWrapper.StartJob(_jobDefinition); _workerWrapper.CancelJob(_jobDefinition.JobId); Assert.IsTrue(_workerWrapper.IsCancellationRequested); }
public void PrepareToStartJobShouldReturnConflictWhenAlreadyProcessingJob() { _workerWrapper = new WorkerWrapper(new ShortRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimer, _jobDetailSender); _nodeController = new NodeController(_workerWrapper) { Request = new HttpRequestMessage(), Configuration = new HttpConfiguration() }; var parameters = new TestJobParams("Test Job", 1); var ser = JsonConvert.SerializeObject(parameters); var jobToDo2 = new JobQueueItemEntity { JobId = Guid.NewGuid(), Name = "Another name", Serialized = ser, Type = "NodeTest.JobHandlers.TestJobParams" }; _nodeController.PrepareToStartJob(_jobQueueItemEntity); var actionResult = _nodeController.PrepareToStartJob(jobToDo2); Assert.IsTrue(actionResult.ExecuteAsync(new CancellationToken()) .Result.StatusCode == HttpStatusCode.Conflict); }
public void CancelJobShouldReturnNotFoundWhenNodeIsIdle() { _workerWrapper = new WorkerWrapper(new ShortRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimer, _jobDetailSender); _nodeController = new NodeController(_workerWrapper) { Request = new HttpRequestMessage() }; IHttpActionResult actionResultCancel = _nodeController.TryCancelJob(_jobQueueItemEntity.JobId); Assert.IsTrue(actionResultCancel.ExecuteAsync(new CancellationToken()) .Result.StatusCode == HttpStatusCode.NotFound); }
public void ShouldReturnBadRequestWhenCancelJobWithNoId() { _workerWrapper = new WorkerWrapper(new ShortRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimer, _jobDetailSender); _nodeController = new NodeController(_workerWrapper) { Request = new HttpRequestMessage(), Configuration = new HttpConfiguration() }; var actionResult = _nodeController.TryCancelJob(Guid.Empty); Assert.IsTrue(actionResult.ExecuteAsync(new CancellationToken()) .Result.StatusCode == HttpStatusCode.BadRequest); }
public void ShouldBeAbleToCatchExceptionsFromJob() //faulting job { _workerWrapper = new WorkerWrapper(new ThrowExceptionInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimerFake); _workerWrapper.StartJob(_jobDefinition); }
public void StartJobShouldReturnBadRequestWhenMessageIsNull() { _workerWrapper = new WorkerWrapper(new ShortRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimerFake); var actionResult = _workerWrapper.ValidateStartJob(null); Assert.IsTrue(actionResult.StatusCode == HttpStatusCode.BadRequest); }
public void ShouldNotThrowWhenCancellingAlreadyCancelledJob() { _workerWrapper = new WorkerWrapper(new LongRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimerFake); _workerWrapper.StartJob(_jobDefinition); _workerWrapper.CancelJob(_jobDefinition.JobId); _workerWrapper.CancelJob(_jobDefinition.JobId); Assert.IsTrue(_workerWrapper.IsCancellationRequested); }
public void ShouldBeAbleToStartJob() { _workerWrapper = new WorkerWrapper(new ShortRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimerFake); _workerWrapper.StartJob(_jobDefinition); }
public NodeController(IWorkerWrapper workerWrapper, NodeConfiguration nodeConfiguration) { _workerWrapper = workerWrapper; NodeConfiguration = nodeConfiguration; }
public void CancelJobShouldReturnNotFoundWhenNodeIsIdle() { _workerWrapper = new WorkerWrapper(new ShortRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimerFake); _nodeController = new NodeController(_workerWrapper, _nodeConfigurationFake) { Request = new HttpRequestMessage() }; IHttpActionResult actionResultCancel = _nodeController.TryCancelJob(_jobQueueItemEntity.JobId); Assert.IsTrue(actionResultCancel.ExecuteAsync(new CancellationToken()) .Result.StatusCode == HttpStatusCode.NotFound); }
public void StartJobShouldReturnOkIfJobIdMatchPrepareJobId() { _workerWrapper = new WorkerWrapper(new ShortRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimerFake); _nodeController = new NodeController(_workerWrapper, _nodeConfigurationFake) { Request = new HttpRequestMessage() }; _nodeController.PrepareToStartJob(_jobQueueItemEntity); var actionResult = _nodeController.StartJob(_jobQueueItemEntity.JobId); Assert.IsTrue(actionResult.ExecuteAsync(new CancellationToken()) .Result.StatusCode == HttpStatusCode.OK); }
public void PrepareToStartJobShouldReturnConflictWhenAlreadyProcessingJob() { _workerWrapper = new WorkerWrapper(new ShortRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimerFake); _nodeController = new NodeController(_workerWrapper, _nodeConfigurationFake) { Request = new HttpRequestMessage(), Configuration = new HttpConfiguration() }; var parameters = new TestJobParams("Test Job", TimeSpan.FromSeconds(1)); var ser = JsonConvert.SerializeObject(parameters); var jobToDo2 = new JobQueueItemEntity { JobId = Guid.NewGuid(), Name = "Another name", Serialized = ser, Type = "NodeTest.JobHandlers.TestJobParams" }; _nodeController.PrepareToStartJob(_jobQueueItemEntity); var actionResult = _nodeController.PrepareToStartJob(jobToDo2); Assert.IsTrue(actionResult.ExecuteAsync(new CancellationToken()) .Result.StatusCode == HttpStatusCode.Conflict); }
public void ShouldReturnBadRequestWhenPrepareToStartJobWithNoJob() { _workerWrapper = new WorkerWrapper(new ShortRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimerFake); _nodeController = new NodeController(_workerWrapper, _nodeConfigurationFake) { Request = new HttpRequestMessage(), Configuration = new HttpConfiguration() }; var actionResult = _nodeController.PrepareToStartJob(null); Assert.IsTrue(actionResult.ExecuteAsync(new CancellationToken()) .Result.StatusCode == HttpStatusCode.BadRequest); }
public void CancelJobShouldReturnOkWhenSuccessful() { _workerWrapper = new WorkerWrapper(new LongRunningInvokeHandlerFake(), _nodeConfigurationFake, _nodeStartupNotification, _pingToManagerFake, _sendJobDoneTimer, _sendJobCanceledTimer, _sendJobFaultedTimer, _trySendJobDetailToManagerTimerFake); _nodeController = new NodeController(_workerWrapper, _nodeConfigurationFake) { Request = new HttpRequestMessage() }; _nodeController.PrepareToStartJob(_jobQueueItemEntity); _nodeController.StartJob(_jobQueueItemEntity.JobId); //is this to make sure the job has started before cancelling? _trySendJobDetailToManagerTimerFake.WaitHandle.Wait(500); var actionResult = _nodeController.TryCancelJob(_jobQueueItemEntity.JobId); Assert.IsTrue(actionResult.ExecuteAsync(new CancellationToken()) .Result.StatusCode == HttpStatusCode.OK); }
public NodeController(IWorkerWrapper workerWrapper) { _workerWrapper = workerWrapper; }