public ITemplate?LoadTemplate(ITemplateInfo info, string?baselineName) { IGenerator?generator; if (!_environmentSettings.Components.TryGetComponent(info.GeneratorId, out generator)) { return(null); } IMountPoint?mountPoint; if (!_environmentSettings.TryGetMountPoint(info.MountPointUri, out mountPoint)) { return(null); } IFile?config = mountPoint !.FileInfo(info.ConfigPlace); if (config == null) { return(null); } IFile? localeConfig = string.IsNullOrEmpty(info.LocaleConfigPlace) ? null : mountPoint.FileInfo(info.LocaleConfigPlace !); IFile? hostTemplateConfigFile = string.IsNullOrEmpty(info.HostConfigPlace) ? null : mountPoint.FileInfo(info.HostConfigPlace !); ITemplate?template; using (Timing.Over(_environmentSettings.Host.Logger, $"Template from config {config.MountPoint.MountPointUri}{config.FullPath}")) { if (generator !.TryGetTemplateFromConfigInfo(config, out template, localeConfig, hostTemplateConfigFile, baselineName)) { return(template); }
public void CanReadHostDataFromITemplateInfo() { IEngineEnvironmentSettings engineEnvironmentSettings = _environmentSettingsHelper.CreateEnvironment(virtualize: true); HostSpecificDataLoader hostSpecificDataLoader = new HostSpecificDataLoader(engineEnvironmentSettings); Assert.True(engineEnvironmentSettings.TryGetMountPoint(Directory.GetCurrentDirectory(), out IMountPoint? mountPoint)); Assert.NotNull(mountPoint); IFile?dataFile = mountPoint !.FileInfo("/Resources/dotnetcli.host.json"); Assert.NotNull(dataFile); JObject json = ReadJObjectFromIFile(dataFile !); ITemplateInfo template = A.Fake <ITemplateInfo>(builder => builder.Implements <ITemplateInfoHostJsonCache>().Implements <ITemplateInfo>()); A.CallTo(() => ((ITemplateInfoHostJsonCache)template).HostData).Returns(json); HostSpecificTemplateData data = hostSpecificDataLoader.ReadHostSpecificTemplateData(template); Assert.NotNull(data); Assert.False(data.IsHidden); Assert.Equal(2, data.UsageExamples?.Count); Assert.Contains("--framework netcoreapp3.1 --langVersion '9.0'", data.UsageExamples); Assert.Equal(4, data.SymbolInfo?.Count); Assert.Contains("TargetFrameworkOverride", data.HiddenParameterNames); Assert.Contains("Framework", data.ParametersToAlwaysShow); Assert.True(data.LongNameOverrides.ContainsKey("skipRestore")); Assert.Equal("no-restore", data.LongNameOverrides["skipRestore"]); Assert.True(data.ShortNameOverrides.ContainsKey("skipRestore")); Assert.Equal("", data.ShortNameOverrides["skipRestore"]); Assert.Equal("no-restore", data.DisplayNameForParameter("skipRestore")); }