public static void TestListInstalledPackages( IntegrationTester.TestCase testCase, Action <IntegrationTester.TestCaseResult> testCaseComplete) { var testCaseResult = new IntegrationTester.TestCaseResult(testCase); PackageManagerClient.ListInstalledPackages((result) => { // Unity 2017.x doesn't install any default packages. if (ExecutionEnvironment.VersionMajorMinor >= 2018.0) { // Make sure a subset of the default packages installed in all a newly created // Unity project are present in the returned list. CheckPackageNamesInPackageInfos( new List <string>() { "com.unity.modules.audio", "com.unity.modules.physics" }, result.Packages, testCaseResult, "Found 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 TestMigration( IntegrationTester.TestCase testCase, Action <IntegrationTester.TestCaseResult> testCaseComplete) { #if EDM_WITH_MIGRATION_NOT_AVAILABLE_ON_UPM testCaseComplete(new IntegrationTester.TestCaseResult(testCase) { Skipped = true }); return; #endif var testCaseResult = new IntegrationTester.TestCaseResult(testCase); PackageMigrator.TryMigration((error) => { if (CompleteIfNotAvailable(error, testCaseResult, testCaseComplete)) { return; } if (!String.IsNullOrEmpty(error)) { testCaseResult.ErrorMessages.Add(String.Format( "Migration failed with error {0}", error)); } // Make sure only expected version handler packages are still installed. var expectedVersionHandlerPackages = new HashSet <string>() { "Firebase Realtime Database" }; var manifestsByPackageName = new HashSet <string>( VersionHandlerImpl.ManifestReferences. FindAndReadManifestsInAssetsFolderByPackageName().Keys); manifestsByPackageName.ExceptWith(expectedVersionHandlerPackages); if (manifestsByPackageName.Count > 0) { testCaseResult.ErrorMessages.Add(String.Format( "Unexpected version handler packages found in the project:\n{0}", (new List <string>(manifestsByPackageName)).ToArray())); } // Make sure the expected UPM packages are installed. PackageManagerClient.ListInstalledPackages((listResult) => { var installedPackageNames = new HashSet <string>(); foreach (var pkg in listResult.Packages) { installedPackageNames.Add(pkg.Name); } // Make sure expected UPM packages are installed. var expectedPackageNames = new List <string>() { "com.google.external-dependency-manager", "com.google.firebase.auth" }; if (installedPackageNames.IsSupersetOf(expectedPackageNames)) { testCaseResult.ErrorMessages.Add(String.Format( "Expected packages [{0}] not installed", String.Join(", ", expectedPackageNames.ToArray()))); } testCaseComplete(testCaseResult); }); }); }