コード例 #1
0
ファイル: TestSceneUpgrader.cs プロジェクト: Aggror/Stride
        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
                }
            }
        }
コード例 #2
0
ファイル: TestSceneUpgrader.cs プロジェクト: rohitshe/Code
        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
                }
            }
        }
コード例 #3
0
ファイル: XenkoPackageUpgrader.cs プロジェクト: visperc/xenko
        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);
            }
        }
コード例 #4
0
ファイル: TestAssetUpgrade.cs プロジェクト: dhootha/paradox
        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);
        }
コード例 #5
0
ファイル: TestAssetUpgrade.cs プロジェクト: rock6tsai/paradox
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
ファイル: TestAssetUpgrade.cs プロジェクト: Aggror/Stride
        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);
        }