public void ReplaceGuid_OldAndNew_Replaced()
        {
            var fs         = MetadataBootstrap.FileSystem;
            var prefabPath = "PrefabSample1.ReplaceGuidTest.prefab";

            fs.CopyFile("PrefabSample1.prefab", prefabPath);

            var target = new YamlPrefabMetadataWriter(fs, MockRepository.GenerateMock <ILog>());

            var oldScript1 = new ScriptMetadata {
                FileId = 1363015578, Guid = "a184ae646778d4bf48c881bb73f2188a"
            };
            var oldScript2 = new ScriptMetadata {
                FileId = -1557964980, Guid = "a184ae646778d4bf48c881bb73f2188a"
            };

            target.ReplaceGuid(oldScript1, "1ReplaceGuidTest1", prefabPath);
            target.ReplaceGuid(oldScript2, "2ReplaceGuidTest2", prefabPath);

            var reader = new YamlPrefabMetadataReader(MetadataBootstrap.ScriptMetadataService, fs);
            var actual = reader.Read(prefabPath);

            Assert.AreEqual(2, actual.MonoBehaviours.Count);
            Assert.AreEqual("1ReplaceGuidTest1", actual.MonoBehaviours.First().Script.Guid);
            Assert.AreEqual("2ReplaceGuidTest2", actual.MonoBehaviours.Last().Script.Guid);
        }
        /// <summary>
        /// Performs the setup.
        /// </summary>
        /// <param name="assetsRootFolder">Assets root folder.</param>
        /// <param name="log">Log.</param>
        public static void Setup(string assetsRootFolder, ILog log)
        {
            Log = log;
            Log.Debug("MetadataBootstrap.Setup: {0}", assetsRootFolder);

            FileSystem     = new IsolatedFolderFileSystem(assetsRootFolder);
            AssemblyLoader = new ReflectionAssemblyLoader(FileSystem);
            TypeService    = new TypeService(FileSystem, AssemblyLoader);
            MetaFileService.Initialize(FileSystem);
            ScriptMetadataService = new ScriptMetadataService(TypeService);
            PrefabMetadataReader  = new YamlPrefabMetadataReader(ScriptMetadataService, FileSystem);
            PrefabMetadataWriter  = new YamlPrefabMetadataWriter(FileSystem, Log);
            PrefabMetadataService = new PrefabMetadataService(PrefabMetadataReader, PrefabMetadataWriter, FileSystem, TypeService);
            AssetRepository       = new AssetDatabaseAssetRepository();
        }