Ejemplo n.º 1
0
 public void Save(SolutionModel model)
 {
     Dependencies.FileWriter.WriteFile(model.SolutionFile);
     ApiProject.Save(model.ApiProject);
     CoreProject.Save(model.CoreProject);
     DataProject.Save(model.DataProject);
 }
Ejemplo n.º 2
0
    public static void WriteDisclaimer(ApiProject apiProject, string disclaimerFile, IEnumerable <string> dllFiles)
    {
        var assemblies =
            dllFiles
            .Select(AssemblyDefinition.ReadAssembly)
            .ToList();

        var relevantSymbols = assemblies.NotNull()
                              .SelectMany(x => x.MainModule.Types)
                              .Where(x => x.Namespace != null && x.Namespace.StartsWith("Nuke"))
                              .Distinct(x => x.FullName);

        File.WriteAllText(disclaimerFile,
                          relevantSymbols.Aggregate(new StringBuilder(),
                                                    (sb, x) => sb
                                                    .AppendLine()
                                                    .AppendLine("---")
                                                    .AppendLine($"uid: {x}")
                                                    .AppendLine("---")
                                                    .AppendLine()
                                                    .WriteWarning(apiProject)
                                                    .WriteInformation(apiProject)
                                                    .AppendLine())
                          .ToString());
    }
Ejemplo n.º 3
0
        public void Should_not_have_error_when_Description_is_specified()
        {
            var model = new ApiProject {
                Description = "The man who moves a mountain begins by carrying away small stones"
            };
            var result = validator.TestValidate(model);

            result.ShouldNotHaveValidationErrorFor(p => p.Description);
        }
Ejemplo n.º 4
0
        public void Should_not_have_error_when_Name_is_specified()
        {
            var model = new ApiProject {
                Name = "ThomasIsCool"
            };
            var result = validator.TestValidate(model);

            result.ShouldNotHaveValidationErrorFor(p => p.Name);
        }
Ejemplo n.º 5
0
        public void Should_have_error_when_Description_is_null()
        {
            var model = new ApiProject {
                Description = null
            };
            var result = validator.TestValidate(model);

            result.ShouldHaveValidationErrorFor(p => p.Description);
        }
Ejemplo n.º 6
0
        public void Should_have_error_when_Name_is_null()
        {
            var model = new ApiProject {
                Name = null
            };
            var result = validator.TestValidate(model);

            result.ShouldHaveValidationErrorFor(p => p.Name);
        }
Ejemplo n.º 7
0
    static StringBuilder WriteInformation(this StringBuilder builder, ApiProject apiProject)
    {
        var packageId = apiProject.PackageId;

        return(builder
               .AppendLine("<div class=\"alert alert-info\" role=\"info\">")
               .AppendLine("  <span class=\"icon icon-info alert-icon\"></span>")
               .AppendLine($"  This API is part of the <a href=\"https://nuget.org/packages/{packageId}\"><strong>{packageId}</strong></a> package.")
               .AppendLine(
                   $"  The code is available at <a href=\"{apiProject.RepositoryUrl}\"><strong>{apiProject.RepositoryUrl}</strong></a>.")
               .AppendLine("</div>"));
    }
Ejemplo n.º 8
0
        public SolutionModel ScaffoldModel(OpenApiOptions options)
        {
            SolutionModel model = new SolutionModel
            {
                SolutionFile = new ScaffoldedFile
                {
                    Code = Generator.WriteProjectFile(options),
                    Path = Path.Combine(options.SolutionDir, $"{options.SolutionName}.sln")
                },
                ApiProject  = ApiProject.ScaffoldModel(options),
                CoreProject = CoreProject.ScaffoldModel(options),
                DataProject = DataProject.ScaffoldModel(options)
            };

            return(model);
        }
Ejemplo n.º 9
0
    static StringBuilder WriteWarning(this StringBuilder builder, ApiProject apiProject)
    {
        const string org = "nuke-build";

        var owner = apiProject.RepositoryUrl.Replace("https://github.com/", string.Empty).Split('/').First();

        if (owner == org)
        {
            return(builder);
        }

        return(builder
               .AppendLine("<div class=\"alert alert-warning\" role=\"warning\">")
               .AppendLine("  <span class=\"icon icon-warning alert-icon\"></span>")
               .AppendLine($"  Solely maintained by <a href=\"https://github.com/{owner}\"><strong>@{owner}</strong></a>.")
               .AppendLine($"  Listing approved by <a href=\"https://github.com/{org}\"><strong>@{org}</strong></a>.")
               .AppendLine("</div>"));
    }
Ejemplo n.º 10
0
        /// <summary>
        /// Добавляет недостающие проекты.
        /// </summary>
        /// <param name="projects"></param>
        /// <returns></returns>
        public int AddProjects(IEnumerable <XmlProject> projects)
        {
            var createProjects = SyncHelper.GetItemsForCreate(
                projects, _apiProjects, p => GetSiteKey(p.Site), p => GetSiteKey(p.Site))
                                 .ToList();

            foreach (var proj in createProjects)
            {
                var request   = _requestBuilder.GetAddProjectRequest(proj.Site);
                var projectId = _client.GetMessageResult(request);

                var newProject = new ApiProject()
                {
                    Id = projectId, Site = proj.Site, On = 0
                };
                _apiProjects.Add(newProject);
            }

            return(createProjects.Count);
        }
Ejemplo n.º 11
0
        public async Task GetIdReturnsOkResultWhenSuccessAnswerAsync()
        {
            // Arrange
            var entityId  = "0000000000000000";
            var appEntity = new Project()
            {
                Id         = entityId,
                IsArchived = false,
                Title      = "Test Project"
            };
            var apiEntity = new ApiProject()
            {
                Id         = entityId,
                IsArchived = false,
                Title      = "Test Project"
            };
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.Send(It.IsAny <EntityQuery <Project> >(),
                                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(
                new EntityResponse <Project>()
            {
                Success = true,
                Entity  = appEntity
            })
            .Verifiable("Query was not sent.");
            var controller = BuildController(mediator);

            // Act
            var controllerAnswer = await controller.Get(entityId);

            // Assert
            Assert.IsType <OkObjectResult>(controllerAnswer);
            Assert.Equal(apiEntity.Id,
                         (((OkObjectResult)controllerAnswer).Value as ApiProject).Id);
            mediator.Verify(x => x.Send(It.IsAny <EntityQuery <Project> >(),
                                        It.IsAny <CancellationToken>()));
        }