public async Task ListTargetsTest() { var targets = new List <AvailableTarget> { new AvailableTarget { Name = "Target1" }, new AvailableTarget { Name = "Target2" } }; var progressReporter = Substitute.For <IProgressReporter>(); var targetMapper = Substitute.For <ITargetMapper>(); var dependencyFinder = Substitute.For <IDependencyFinder>(); var reportGenerator = Substitute.For <IReportGenerator>(); var ignoreAssemblyInfoList = Substitute.For <IEnumerable <IgnoreAssemblyInfo> >(); var writer = Substitute.For <IFileWriter>(); var apiPortService = Substitute.For <IApiPortService>(); apiPortService.GetTargetsAsync().Returns(CreateResponse <IEnumerable <AvailableTarget> >(targets.AsReadOnly())); var client = new ApiPortClient(apiPortService, progressReporter, targetMapper, dependencyFinder, reportGenerator, ignoreAssemblyInfoList, writer); var actualTargets = await client.GetTargetsAsync(); Assert.Equal <AvailableTarget[]>(actualTargets.OrderBy(k => k.Name).ToArray(), targets.OrderBy(k => k.Name).ToArray()); }
public async Task ListTargetsAsync() { const string SelectedMarker = "*"; var targets = await _apiPortClient.GetTargetsAsync(); if (targets.Any()) { Console.WriteLine(); Console.WriteLine(LocalizedStrings.TargetUsage); Console.WriteLine(); Console.WriteLine(LocalizedStrings.AvailableTargets); var expandableTargets = targets.Where(target => target.ExpandedTargets.Any()); var groupedTargets = targets.Where(target => !target.ExpandedTargets.Any()).GroupBy(target => target.Name); var offsetLength = new[] { LocalizedStrings.TargetsName, LocalizedStrings.TargetsVersion, LocalizedStrings.TargetsDescription }.Max(i => i.Length) + 1; foreach (var item in groupedTargets) { Console.WriteLine(); // Select the latest non-empty target's description var description = item .OrderByDescending(i => i.Version) .FirstOrDefault(i => !string.IsNullOrWhiteSpace(i.Description)); Console.WriteLine(LocalizedStrings.TargetsName.PadRight(offsetLength, ' ') + item.Key); Console.WriteLine(LocalizedStrings.TargetsVersion.PadRight(offsetLength) + string.Join(LocalizedStrings.VersionListJoin, item.Select(v => v.Version.ToString() + (v.IsSet ? SelectedMarker : string.Empty)))); if (description != null) { Console.WriteLine(LocalizedStrings.TargetsDescription.PadRight(offsetLength) + description.Description); } } if (expandableTargets.Any()) { Console.WriteLine(); Console.WriteLine(LocalizedStrings.AvailableGroupedTargets); foreach (var item in expandableTargets) { Console.WriteLine(LocalizedStrings.TargetsListGrouped, item.Name, string.Join(CultureInfo.CurrentCulture.TextInfo.ListSeparator + " ", item.ExpandedTargets)); } } } if (_targetMapper.Aliases.Any()) { Console.WriteLine(); Console.WriteLine(LocalizedStrings.AvailableAliases); foreach (var alias in _targetMapper.Aliases) { Console.WriteLine(LocalizedStrings.TargetsListNoVersion, alias); } } }
public async Task ListTargetsAsync() { const string SelectedMarker = "*"; var targets = await _apiPortClient.GetTargetsAsync(); if (targets.Any()) { Console.WriteLine(); Console.WriteLine(LocalizedStrings.AvailableTargets); var expandableTargets = targets.Where(target => target.ExpandedTargets.Any()); var groupedTargets = targets.Where(target => !target.ExpandedTargets.Any()).GroupBy(target => target.Name); foreach (var item in groupedTargets) { Console.WriteLine(LocalizedStrings.TargetsList, item.Key, String.Join(LocalizedStrings.VersionListJoin, item.Select(v => v.Version.ToString() + (v.IsSet ? SelectedMarker : String.Empty)))); } if (expandableTargets.Any()) { Console.WriteLine(); Console.WriteLine(Microsoft.Fx.Portability.Resources.LocalizedStrings.AvailableGroupedTargets); foreach (var item in expandableTargets) { Console.WriteLine(LocalizedStrings.TargetsListGrouped, item.Name, String.Join(CultureInfo.CurrentCulture.TextInfo.ListSeparator + " ", item.ExpandedTargets)); } } } if (_targetMapper.Aliases.Any()) { Console.WriteLine(); Console.WriteLine(LocalizedStrings.AvailableAliases); foreach (var alias in _targetMapper.Aliases) { Console.WriteLine(LocalizedStrings.TargetsListNoVersion, alias); } } Console.WriteLine(); Console.WriteLine(LocalizedStrings.NotesOnUsage); Console.WriteLine(LocalizedStrings.TargetsListNoVersion, Microsoft.Fx.Portability.Resources.LocalizedStrings.HowToSpecifyVersion); Console.WriteLine(); Console.WriteLine(LocalizedStrings.TargetsListNoVersion, LocalizedStrings.WhatAsteriskMeans); }