public static void TestSearchAvailablePackagesAll( IntegrationTester.TestCase testCase, Action <IntegrationTester.TestCaseResult> testCaseComplete) { var testCaseResult = new IntegrationTester.TestCaseResult(testCase); UnityPackageManagerClient.SearchAvailablePackages( (result) => { // Make sure common optional Unity packages are returned in the search result. if (UpmSearchAllAvailable) { CheckPackageNamesInPackageInfos( new List <string>() { "com.unity.2d.animation", "com.unity.entities" }, result.Packages, testCaseResult, "SearchAvailablePackages returned an unexpected set of packages"); } var message = String.Format( "Error: '{0}', PackageInfos:\n{1}\n", result.Error, String.Join("\n", PackageInfoListToStringList(result.Packages).ToArray())); if (!String.IsNullOrEmpty(result.Error.ToString())) { testCaseResult.ErrorMessages.Add(message); } else { UnityEngine.Debug.Log(message); } testCaseComplete(testCaseResult); }); }
public static void TestSearchAvailablePackages( IntegrationTester.TestCase testCase, Action <IntegrationTester.TestCaseResult> testCaseComplete) { var testCaseResult = new IntegrationTester.TestCaseResult(testCase); var progressLines = new List <string>(); UnityPackageManagerClient.SearchAvailablePackages( new [] { "com.unity.ads", "[email protected]" }, (result) => { var expectedPackageNameByQuery = UpmAvailable ? new Dictionary <string, string>() { { "com.unity.ads", "com.unity.ads" }, { "[email protected]", "com.unity.analytics" }, } : new Dictionary <string, string>(); // Make sure all expected queries were performed. var queriesPerformed = new HashSet <string>(result.Keys); if (!queriesPerformed.SetEquals(expectedPackageNameByQuery.Keys)) { testCaseResult.ErrorMessages.Add( String.Format( "Search returned a subset of queries [{0}] vs. expected [{1}]", String.Join(", ", (new List <string>(queriesPerformed)).ToArray()), String.Join(", ", (new List <string>( expectedPackageNameByQuery.Keys)).ToArray()))); } var packageResults = new List <string>(); foreach (var kv in result) { var searchQuery = kv.Key; var searchResult = kv.Value; packageResults.Add(String.Format( "{0}, Error: '{1}':\n{2}\n", searchQuery, searchResult.Error, String.Join("\n", PackageInfoListToStringList(searchResult.Packages).ToArray()))); if (!String.IsNullOrEmpty(searchResult.Error.ToString())) { testCaseResult.ErrorMessages.Add( String.Format("Failed when searching for '{0}', Error '{1}'", searchQuery, searchResult.Error.ToString())); } // Make sure returned packages match the search pattern. string expectedPackageName; if (expectedPackageNameByQuery.TryGetValue(searchQuery, out expectedPackageName)) { CheckPackageNamesInPackageInfos( new List <string>() { expectedPackageName }, searchResult.Packages, testCaseResult, String.Format("Returned an unexpected list of for search query '{0}'", searchQuery)); } else { testCaseResult.ErrorMessages.Add( String.Format("Unexpected search result returned '{0}'", searchQuery)); } } // Make sure progress was reported. if (progressLines.Count == 0) { testCaseResult.ErrorMessages.Add("No progress reported"); } var message = String.Format(String.Join("\n", packageResults.ToArray())); if (testCaseResult.ErrorMessages.Count == 0) { UnityEngine.Debug.Log(message); } else { testCaseResult.ErrorMessages.Add(message); } testCaseComplete(testCaseResult); }, progress: (value, item) => { progressLines.Add(String.Format("Progress: {0}: {1}", value, item)); }); }