Esempio n. 1
0
        public async Task Status_RetrievesByJobIdIfUnableToLocateByTransaction()
        {
            Platform.JobId.TryParse("job id", out Platform.JobId jobId);
            var jobTime = DateTime.Now;

            _jobsApi.Setup(p => p.Status(It.IsAny <string>()))
            .Returns(Task.FromResult(new Platform.JobDetails
            {
                DateCreated = jobTime,
                DateStarted = jobTime,
                DateStopped = jobTime,
                JobId       = jobId,
                JobState    = Platform.JobState.Running,
                JobPriority = Platform.JobPriority.Higher,
                JobStatus   = Platform.JobStatus.Healthy,
            }));
            _inferenceRequestRepository.SetupSequence(p => p.FirstOrDefault(It.IsAny <Func <InferenceRequest, bool> >()))
            .Returns(default(InferenceRequest))
            .Returns(new InferenceRequest
            {
                TransactionId = "My Transaction ID",
                JobId         = jobId.ToString()
            });

            var store  = new InferenceRequestRepository(_logger.Object, _jobsApi.Object, _inferenceRequestRepository.Object);
            var id     = Guid.NewGuid().ToString();
            var status = await store.GetStatus(id);

            Assert.Equal("My Transaction ID", status.TransactionId);
            Assert.Equal(jobId.ToString(), status.Platform.JobId);
            Assert.Equal(Platform.JobState.Running, status.Platform.State);
            Assert.Equal(Platform.JobPriority.Higher, status.Platform.Priority);
            Assert.Equal(Platform.JobStatus.Healthy, status.Platform.Status);
            Assert.Equal(jobTime, status.Platform.Started);
            Assert.Equal(jobTime, status.Platform.Stopped);
            Assert.Equal(jobTime, status.Platform.Created);

            _inferenceRequestRepository.Verify(p => p.FirstOrDefault(It.IsAny <Func <InferenceRequest, bool> >()), Times.Exactly(2));
            _jobsApi.Verify(p => p.Status(It.IsAny <string>()), Times.Once());
        }