public async Task <IActionResult> RegisterTaskProvider(NewTaskProviderDto dto) { _logger.LogRequest("Registering task provider. Request body: {@dto}", dto); try { var taskProvider = await _taskProviderService.AddTaskProvider(dto.Name, dto.Type, dto.Author, dto.Version, dto.RequiredServices, dto.DisplayName, dto.Description, dto.ThumbnailUrl, dto.Tags, dto.Created, dto.Updated); var result = _mapper.Map <TaskProviderDto>(taskProvider); if (dto.AdditionalConfigs != null && dto.AdditionalConfigs.Length > 0) { var additionalConfigs = _mapper.Map <List <TaskProviderAdditionalConfig> >(dto.AdditionalConfigs); var _ = await _taskProviderAdditionalConfigService.AddAdditionalConfigs(taskProvider.Id, additionalConfigs); } _logger.LogResponse("Task provider created. Response body: {@result}", result); return(CreatedAtRoute("GetProviderById", new { taskProviderId = taskProvider.Id }, result)); } catch (RequiredServicesNotSupportedException ex) { return(BadRequest(ex.Message)); } }
public async void RegisterProvider_ReturnsCreatedProvider() { _providerService .Setup(s => s.AddTaskProvider(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string[]>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime>(), It.IsAny <DateTime?>(), It.IsAny <CancellationToken>())) .ReturnsAsync((string name, string type, string author, string version, string[] requiredServices, string displayName, string description, string thumnailUrl, string tags, DateTime created, DateTime? updated, CancellationToken cancellationToken) => new TaskProvider { Id = 1, Name = name, Type = type, Author = author, Version = version, RequiredServicesString = string.Join(",", requiredServices) }); _providerAdditionalConfigService.Setup(s => s.AddAdditionalConfigs(It.IsAny <int>(), It.IsAny <List <TaskProviderAdditionalConfig> >(), It.IsAny <CancellationToken>())) .ReturnsAsync(new List <int> { 1 }); var controller = new TaskProviderController(_providerService.Object, _providerAdditionalConfigService.Object, _mapper, _logger.Object); var dto = new NewTaskProviderDto { Name = "AspMvcNet", Type = "GeneratorProvider", Author = "polyrific", Version = "1.0.0", RequiredServices = new string[] { "test" } }; var result = await controller.RegisterTaskProvider(dto); var createAtRouteActionResult = Assert.IsType <CreatedAtRouteResult>(result); var returnValue = Assert.IsType <TaskProviderDto>(createAtRouteActionResult.Value); Assert.Equal(1, returnValue.Id); Assert.Equal("AspMvcNet", returnValue.Name); Assert.Equal("GeneratorProvider", returnValue.Type); Assert.Equal("polyrific", returnValue.Author); Assert.Equal("1.0.0", returnValue.Version); Assert.NotEmpty(returnValue.RequiredServices); }
public void ProviderRegister_Execute_ReturnsSuccessMessage() { var testFile = Path.Combine(AppContext.BaseDirectory, "providerTest.yaml"); if (File.Exists(testFile)) { File.Delete(testFile); } var testContent = new NewTaskProviderDto { Name = "AProvider01", Type = TaskProviderType.HostingProvider, Author = "Frandi", Version = "1.0" }; var stringContent = YamlSerialize(testContent); File.WriteAllText(testFile, stringContent); _providerService.Setup(s => s.AddProvider(It.IsAny <NewTaskProviderDto>())).ReturnsAsync((NewTaskProviderDto dto) => new TaskProviderDto { Id = 1, Name = dto.Name, Type = dto.Type, Author = dto.Author, Version = dto.Version }); var command = new RegisterCommand(_providerService.Object, _console, LoggerMock.GetLogger <RegisterCommand>().Object) { MetadataFile = testFile }; var message = command.Execute(); Assert.Equal("Task provider AProvider01 (v1.0) by Frandi has been registered successfully.", message); }
private string YamlSerialize(NewTaskProviderDto dto) { var serializer = new SerializerBuilder().WithNamingConvention(new HyphenatedNamingConvention()).Build(); return(serializer.Serialize(dto)); }
public async Task <TaskProviderDto> AddProvider(NewTaskProviderDto dto) { var path = "task-provider"; return(await Api.Post <NewTaskProviderDto, TaskProviderDto>(path, dto)); }