private string GetQueryApiUrl(AppNode queryNode) { var domain = queryNode.GetDomainName(); var pluralizer = new Pluralizer(); var route = GetQueryRoutePlaceholder(queryNode, pluralizer.Pluralize(domain), pluralizer.Singularize(domain)); var suffix = queryNode.IsListQuery ? "" : "1"; var url = $"{_config.ApiUrlPrefix}/{domain.ToLower()}/{route}/{suffix}" .TrimEnd('/') .Replace("//", "/"); return(url); }
private ResourceTemplate GetQueryIntegrationTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, AppNode queryNode) { var template = templates[ResourceTemplateType.IntegrationTestQuery]; template.ResetParameters(); var urlPlaceholder = GetQueryApiUrl(queryNode); var appNsPlaceholder = $"{_config.Namespace}.{_config.AppSuffix}"; var webNsPlaceholder = $"{_config.Namespace}.{_config.UiSuffix}"; var queryNsPlaceholder = $"{appNsPlaceholder}.{queryNode.GetFullPath(".")}"; var queriesNsPlaceholder = $"{appNsPlaceholder}.{queryNode.Parent.GetFullPath(".")}"; var namespacePlaceholder = $"{webNsPlaceholder}.IntegrationTests.Controllers.{queryNode.GetDomainName()}"; var vmPlaceholder = $"{GetQueryBaseName(queryNode, trimGet: true)}Vm"; template.SetParameter(TemplateParameterType.QueryNsPlaceholder, queryNsPlaceholder); template.SetParameter(TemplateParameterType.QueriesNsPlaceholder, queriesNsPlaceholder); template.SetParameter(TemplateParameterType.WebNsPlaceholder, webNsPlaceholder); template.SetParameter(TemplateParameterType.NamespacePlaceholder, namespacePlaceholder); template.SetParameter(TemplateParameterType.QueryPlaceholder, queryNode.Name);// special case here without "Query" suffix template.SetParameter(TemplateParameterType.FixturePlaceholder, $"{queryNode.Name}QueryTests"); template.SetParameter(TemplateParameterType.VmPlaceholder, vmPlaceholder); template.SetParameter(TemplateParameterType.UrlPlaceholder, urlPlaceholder); return(template); }