summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.UITest.TestCloud/LoaderActions.cs
blob: 93edee2b2d423405aeb073a8b6e780547a98c8cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System;
using System.Collections.Generic;
using System.Linq;
using Xamarin.Forms.Loader;

namespace Xamarin.Forms.UITest.TestCloud
{
	internal class LoaderActions
	{
		readonly IEnumerable<string> _testCategories;

		public LoaderActions()
		{
			var formsLoader = new FormsLoader();

			var categoriesOnTypes =
				from type in formsLoader.IOSTestTypes()
				from categoryAttribute in type.Categories()
				select categoryAttribute.Name;

			var categoriesOnMembers =
				from type in formsLoader.IOSTestTypes()
				from members in type.Members()
				from categoryAttribute in members.CategoryAttributes()
				select categoryAttribute.Name;

			_testCategories = categoriesOnTypes.Union(categoriesOnMembers);
		}

		public void ListCategories()
		{
			foreach (string category in _testCategories)
				Console.WriteLine(category);
		}

		public bool ValidateCategory(string category)
		{
			return _testCategories.Any(k => k == category) || category == "All";
		}
	}
}