示例#1
0
 private void CreateFile(byte[] data)
 {
     DeleteFile();
     tempFileName = Path.GetTempFileName();
     FileIO.WriteAllBytes(tempFileName, data);
     fileDeleted = false;
 }
示例#2
0
        private void DumpStorage(StorageInfo storageInfo, string storageName, XmlWriter writer)
        {
            writer.WriteStartElement("storage");
            writer.WriteAttributeString("name", storageName);

            StorageInfo[] subStorages = storageInfo.GetSubStorages();
            foreach (StorageInfo subStorage in subStorages)
            {
                DumpStorage(subStorage, subStorage.Name, writer);
            }

            StreamInfo[] streams = storageInfo.GetStreams();
            foreach (StreamInfo stream in streams)
            {
                string hexData = ConvertStreamBytesToHex(stream);
                writer.WriteStartElement("stream");
                using (var rawStream = new BinaryReader(stream.GetStream(FileMode.Open, FileAccess.Read)))
                {
                    var streamsBase = Path.Combine(BasePath, Path.GetFileName(_oleStorageFilePath.FullPathString) + "_streams");
                    FileSystem.CreateDirectory(streamsBase);
                    File.WriteAllBytes(Path.Combine(streamsBase, stream.Name).FullPathString, rawStream.ReadBytes((int)rawStream.BaseStream.Length));
                    writer.WriteAttributeString("name", stream.Name);
                    writer.WriteAttributeString("data", hexData);
                    writer.WriteEndElement();
                }
            }

            writer.WriteEndElement();
        }
        /// <summary>
        /// Creates the SqlCe database if required
        /// </summary>
        protected virtual void CreateSqlCeDatabase()
        {
            if (Options.Database == UmbracoTestOptions.Database.None)
            {
                return;
            }

            var path = TestHelper.CurrentAssemblyDirectory;

            //Get the connectionstring settings from config
            var settings = ConfigurationManager.ConnectionStrings[Constants.System.UmbracoConnectionName];

            ConfigurationManager.AppSettings.Set(
                Constants.System.UmbracoConnectionName,
                GetDbConnectionString());

            _databasePath = string.Concat(path, "\\UmbracoNPocoTests.sdf");

            //create a new database file if
            // - is the first test in the session
            // - the database file doesn't exist
            // - NewDbFileAndSchemaPerTest
            // - _isFirstTestInFixture + DbInitBehavior.NewDbFileAndSchemaPerFixture

            //if this is the first test in the session, always ensure a new db file is created
            if (FirstTestInSession ||
                File.Exists(_databasePath) == false ||
                Options.Database == UmbracoTestOptions.Database.NewSchemaPerTest ||
                Options.Database == UmbracoTestOptions.Database.NewEmptyPerTest ||
                (FirstTestInFixture && Options.Database == UmbracoTestOptions.Database.NewSchemaPerFixture))
            {
                using (ProfilingLogger.TraceDuration <TestWithDatabaseBase>("Remove database file"))
                {
                    RemoveDatabaseFile(null, ex =>
                    {
                        //if this doesn't work we have to make sure everything is reset! otherwise
                        // well run into issues because we've already set some things up
                        TearDown();
                        throw ex;
                    });
                }

                //Create the Sql CE database
                using (ProfilingLogger.TraceDuration <TestWithDatabaseBase>("Create database file"))
                {
                    if (Options.Database != UmbracoTestOptions.Database.NewEmptyPerTest && _databaseBytes != null)
                    {
                        File.WriteAllBytes(_databasePath, _databaseBytes);
                    }
                    else
                    {
                        using (var engine = new SqlCeEngine(settings.ConnectionString))
                        {
                            engine.CreateDatabase();
                        }
                    }
                }
            }
        }