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