コード例 #1
0
        public async Task CreateTaskAsync_ReturnsTesCreateTaskResponse()
        {
            // Arrange
            var mockRepo = new Mock <IRepository <TesTask> >();
            var tesTask  = new TesTask()
            {
                Executors = new List <TesExecutor> {
                    new TesExecutor {
                        Image = "ubuntu"
                    }
                }
            };

            var controller = new TaskServiceApiController(mockRepo.Object, new NullLogger <TaskServiceApiController>());

            // Act
            var result = await controller.CreateTaskAsync(tesTask) as ObjectResult;

            // Assert
            Assert.IsNotNull(result);
            mockRepo.Verify(x => x.CreateItemAsync(tesTask));
            Assert.AreEqual(32, tesTask.Id.Length);
            Assert.AreEqual(TesState.QUEUEDEnum, tesTask.State);
            Assert.AreEqual(200, result.StatusCode);
        }
コード例 #2
0
        public async Task CreateTaskAsync_ReturnsBadRequest_ForMissingDockerImage()
        {
            // Arrange
            var mockRepo = new Mock <IRepository <TesTask> >();
            var tesTask  = new TesTask();

            var controller = new TaskServiceApiController(mockRepo.Object, new NullLogger <TaskServiceApiController>());

            // Act
            var result = await controller.CreateTaskAsync(tesTask) as ObjectResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(400, result.StatusCode);
        }
コード例 #3
0
        public async Task CreateTaskAsync_CromwellJobIdIsUsedAsTaskIdPrefix()
        {
            var mockRepo        = new Mock <IRepository <TesTask> >();
            var cromwellJobId   = Guid.NewGuid().ToString();
            var taskDescription = $"{cromwellJobId}:BackendJobDescriptorKey_CommandCallNode_wf_hello.hello:-1:1";
            var tesTask         = new TesTask()
            {
                Description = taskDescription, Executors = new List <TesExecutor> {
                    new TesExecutor {
                        Image = "ubuntu"
                    }
                }
            };
            var controller = new TaskServiceApiController(mockRepo.Object, new NullLogger <TaskServiceApiController>());

            await controller.CreateTaskAsync(tesTask);

            Assert.AreEqual(41, tesTask.Id.Length); // First eight characters of Cromwell's job id + underscore + GUID without dashes
            Assert.IsTrue(tesTask.Id.StartsWith(cromwellJobId.Substring(0, 8) + "_"));
        }
コード例 #4
0
        public async Task CreateTaskAsync_ReturnsBadRequest_ForInvalidId()
        {
            // Arrange
            var mockRepo = new Mock <IRepository <TesTask> >();
            var tesTask  = new TesTask {
                Id = "ClientProvidedId", Executors = new List <TesExecutor> {
                    new TesExecutor {
                        Image = "ubuntu"
                    }
                }
            };

            var controller = new TaskServiceApiController(mockRepo.Object, new NullLogger <TaskServiceApiController>());

            // Act
            var result = await controller.CreateTaskAsync(tesTask) as BadRequestObjectResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(400, result.StatusCode);
        }