1 #region Copyright notice and license 2 3 // Copyright 2018 gRPC authors. 4 // 5 // Licensed under the Apache License, Version 2.0 (the "License"); 6 // you may not use this file except in compliance with the License. 7 // You may obtain a copy of the License at 8 // 9 // http://www.apache.org/licenses/LICENSE-2.0 10 // 11 // Unless required by applicable law or agreed to in writing, software 12 // distributed under the License is distributed on an "AS IS" BASIS, 13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 // See the License for the specific language governing permissions and 15 // limitations under the License. 16 17 #endregion 18 19 using System.Linq; 20 using Microsoft.Build.Framework; 21 using Microsoft.Build.Utilities; 22 23 namespace Grpc.Tools.Tests 24 { 25 static class Utils 26 { 27 // Build an item with a name from args[0] and metadata key-value pairs 28 // from the rest of args, interleaved. 29 // This does not do any checking, and expects an odd number of args. MakeItem(params string[] args)30 public static ITaskItem MakeItem(params string[] args) 31 { 32 var item = new TaskItem(args[0]); 33 for (int i = 1; i < args.Length; i += 2) 34 { 35 item.SetMetadata(args[i], args[i + 1]); 36 } 37 return item; 38 } 39 40 // Return an array of items from given itemspecs. MakeSimpleItems(params string[] specs)41 public static ITaskItem[] MakeSimpleItems(params string[] specs) 42 { 43 return specs.Select(s => new TaskItem(s)).ToArray(); 44 } 45 }; 46 } 47