public void Test() { var logger = new LoggerResult(); var samplesPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\..\..\samples"); var files = Directory.EnumerateFiles(samplesPath, "*.sdscene", SearchOption.AllDirectories); foreach (var sceneFile in files) { logger.HasErrors = false; logger.Clear(); Console.WriteLine($"Checking file {sceneFile}"); var file = new PackageLoadingAssetFile(sceneFile, Path.GetDirectoryName(sceneFile)); var context = new AssetMigrationContext(null, file.ToReference(), file.FilePath.ToWindowsPath(), logger); var needMigration = AssetMigration.MigrateAssetIfNeeded(context, file, "Stride"); foreach (var message in logger.Messages) { Console.WriteLine(message); } Assert.False(logger.HasErrors); if (needMigration) { var result = Encoding.UTF8.GetString(file.AssetContent); Console.WriteLine(result); // We cannot load the Package here, as the package can use code/scripts that are only available when you actually compile project assmeblies } } }
public void Test() { var logger = new LoggerResult(); var context = new AssetMigrationContext(null, logger); var files = Directory.EnumerateFiles(@"..\..\samples", "*.xkscene", SearchOption.AllDirectories); foreach (var sceneFile in files) { logger.HasErrors = false; logger.Clear(); Console.WriteLine($"Checking file {sceneFile}"); var file = new PackageLoadingAssetFile(sceneFile, null); var needMigration = AssetMigration.MigrateAssetIfNeeded(context, file, "Xenko"); foreach (var message in logger.Messages) { Console.WriteLine(message); } Assert.False(logger.HasErrors); if (needMigration) { var result = Encoding.UTF8.GetString(file.AssetContent); Console.WriteLine(result); // We cannot load the Package here, as the package can use code/scripts that are only available when you actually compile project assmeblies } } }
private void RunAssetUpgradersUntilVersion(ILogger log, Package dependentPackage, string dependencyName, IList <PackageLoadingAssetFile> assetFiles, PackageVersion maxVersion) { foreach (var assetFile in assetFiles) { if (assetFile.Deleted) { continue; } var context = new AssetMigrationContext(dependentPackage, assetFile.ToReference(), assetFile.FilePath.ToWindowsPath(), log); AssetMigration.MigrateAssetIfNeeded(context, assetFile, dependencyName, maxVersion); } }
public void TestUpgrade(MyUpgradedAsset asset, bool needMigration) { var outputFilePath = Path.Combine(DirectoryTestBase, @"TestUpgrade\Asset1.pdxobj"); AssetSerializer.Save(outputFilePath, asset); var logger = new LoggerResult(); Assert.AreEqual(AssetMigration.MigrateAssetIfNeeded(logger, outputFilePath), needMigration); Console.WriteLine(File.ReadAllText(outputFilePath).Trim()); var upgradedAsset = AssetSerializer.Load <MyUpgradedAsset>(outputFilePath); AssertUpgrade(upgradedAsset); }
public void TestUpgrade(MyUpgradedAsset asset, bool needMigration) { var loadingFilePath = new PackageLoadingAssetFile(Path.Combine(DirectoryTestBase, "TestUpgrade\\Asset1.pdxobj"), ""); var outputFilePath = loadingFilePath.FilePath.FullPath; AssetSerializer.Save(outputFilePath, asset); var logger = new LoggerResult(); Assert.AreEqual(AssetMigration.MigrateAssetIfNeeded(logger, loadingFilePath), needMigration); if (needMigration) { using (var fileStream = new FileStream(outputFilePath, FileMode.Truncate)) fileStream.Write(loadingFilePath.AssetContent, 0, loadingFilePath.AssetContent.Length); } Console.WriteLine(File.ReadAllText(outputFilePath).Trim()); var upgradedAsset = AssetSerializer.Load <MyUpgradedAsset>(outputFilePath); AssertUpgrade(upgradedAsset); }
public void Simple() { var asset = new MyUpgradedAsset { Test = 32, Test2 = new List <int> { 32, 64 } }; var outputFilePath = Path.Combine(DirectoryTestBase, @"TestUpgrade\Asset1.pdxobj"); AssetSerializer.Save(outputFilePath, asset); var logger = new LoggerResult(); Assert.That(AssetMigration.MigrateAssetIfNeeded(logger, outputFilePath)); Console.WriteLine(File.ReadAllText(outputFilePath).Trim()); var upgradedAsset = AssetSerializer.Load <MyUpgradedAsset>(outputFilePath); Assert.That(upgradedAsset.SerializedVersion, Is.EqualTo(2)); Assert.That(upgradedAsset.Test2, Is.Null); Assert.That(upgradedAsset.Test3, Is.Not.Null); }
private void TestUpgrade(MyUpgradedAsset asset, bool needMigration) { var loadingFilePath = new PackageLoadingAssetFile(Path.Combine(DirectoryTestBase, "TestUpgrade\\Asset1.sdobj"), DirectoryTestBase); var outputFilePath = loadingFilePath.FilePath.FullPath; AssetFileSerializer.Save(outputFilePath, asset, null); var logger = new LoggerResult(); var context = new AssetMigrationContext(null, loadingFilePath.ToReference(), loadingFilePath.FilePath.ToWindowsPath(), logger); Assert.Equal(AssetMigration.MigrateAssetIfNeeded(context, loadingFilePath, "TestPackage"), needMigration); if (needMigration) { using (var fileStream = new FileStream(outputFilePath, FileMode.Truncate)) fileStream.Write(loadingFilePath.AssetContent, 0, loadingFilePath.AssetContent.Length); } Console.WriteLine(File.ReadAllText(outputFilePath).Trim()); var upgradedAsset = AssetFileSerializer.Load <MyUpgradedAsset>(outputFilePath).Asset; AssertUpgrade(upgradedAsset); }