public void Initialize()
        {
            m_prefabMetadataReader = MockRepository.GenerateMock <IPrefabMetadataReader>();
            m_prefabMetadataWriter = MockRepository.GenerateMock <IPrefabMetadataWriter>();
            m_fileSystem           = MockRepository.GenerateMock <IFileSystem>();
            m_typeService          = MockRepository.GenerateMock <ITypeService>();

            m_target = new PrefabMetadataService(m_prefabMetadataReader, m_prefabMetadataWriter, m_fileSystem, m_typeService);
        }
        /// <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();
        }