コード例 #1
0
        public virtual Data.SQLite.SQLiteConnection CreateConnectionReadWriteCreate()
        {
            // TODO: Handle uris
            var builder = new SQLiteConnectionStringBuilder(ConnectionString) { Mode = "RWC" };

            return new Data.SQLite.SQLiteConnection(builder.ConnectionString);
        }
コード例 #2
0
        public virtual Data.SQLite.SQLiteConnection CreateConnectionReadOnly()
        {
            // TODO: Handle in-memory & uris
            var builder = new SQLiteConnectionStringBuilder(ConnectionString) { Mode = "RO" };

            return new Data.SQLite.SQLiteConnection(builder.ConnectionString);
        }
        public void Filename_works()
        {
            var builder = new SQLiteConnectionStringBuilder();

            builder.Filename = "test.db";

            Assert.Equal("test.db", builder.Filename);
        }
        public void Mode_validates_value()
        {
            var builder = new SQLiteConnectionStringBuilder();

            var ex = Assert.Throws<ArgumentException>(() => builder.Mode = "Invalid");

            Assert.Equal(Strings.FormatInvalidConnectionOptionValue("Mode", "Invalid"), ex.Message);
        }
コード例 #5
0
        /// <summary>
        ///     A non-transactional, transient, isolated test database. Use this in the case
        ///     where transactions are not appropriate.
        /// </summary>
        public static Task<SQLiteTestDatabase> Scratch()
        {
            var scratchName = "Scratch_" + Interlocked.Increment(ref _scratchCount);

            var connectionStringBuilder = new SQLiteConnectionStringBuilder();
            connectionStringBuilder.Filename = "file:" + scratchName + "?mode=memory&cache=shared";
            connectionStringBuilder.Uri = true;
            return new SQLiteTestDatabase(connectionStringBuilder.ConnectionString).CreateScratch();
        }
        public void Cache_normalizes_values()
        {
            var builder = new SQLiteConnectionStringBuilder();

            builder.Cache = "private";
            Assert.Equal("Private", builder.Cache);

            builder.Cache = "shared";
            Assert.Equal("Shared", builder.Cache);

            builder.Cache = string.Empty;
            Assert.Null(builder.Cache);
        }
        public void Mode_normalizes_values()
        {
            var builder = new SQLiteConnectionStringBuilder();

            builder.Mode = "ro";
            Assert.Equal("RO", builder.Mode);

            builder.Mode = "rw";
            Assert.Equal("RW", builder.Mode);

            builder.Mode = "rwc";
            Assert.Equal("RWC", builder.Mode);

            builder.Mode = string.Empty;
            Assert.Equal("RWC", builder.Mode);
        }
        public void GetFlags_calculates_uri_flag()
        {
            var builder = new SQLiteConnectionStringBuilder();
            Func<int, int> filter = f => f & ~(
                Constants.SQLITE_OPEN_READONLY | Constants.SQLITE_OPEN_READWRITE | Constants.SQLITE_OPEN_CREATE
                | Constants.SQLITE_OPEN_NOMUTEX | Constants.SQLITE_OPEN_FULLMUTEX);

            builder.Uri = true;
            Assert.Equal(Constants.SQLITE_OPEN_URI, filter(builder.GetFlags()));

            builder.Uri = false;
            Assert.Equal(0, filter(builder.GetFlags()));
        }
        public void Uri_works()
        {
            var builder = new SQLiteConnectionStringBuilder();

            builder.Uri = true;

            Assert.True(builder.Uri);
        }
        public void Mutex_normalizes_values()
        {
            var builder = new SQLiteConnectionStringBuilder();

            builder.Mutex = "none";
            Assert.Equal("None", builder.Mutex);

            builder.Mutex = "full";
            Assert.Equal("Full", builder.Mutex);

            builder.Mutex = string.Empty;
            Assert.Null(builder.Mutex);
        }
        public void TryGetValue_returns_true_when_exists()
        {
            object value;

            var retrieved = new SQLiteConnectionStringBuilder().TryGetValue("Mode", out value);

            Assert.True(retrieved);
            Assert.Equal("RWC", value);
        }
        public void VirtualFileSystem_works()
        {
            var builder = new SQLiteConnectionStringBuilder();

            builder.VirtualFileSystem = "win32";

            Assert.Equal("win32", builder.VirtualFileSystem);
        }
        public void ShouldSerialize_returns_true_when_set()
        {
            var builder = new SQLiteConnectionStringBuilder("Filename=test.db");

            Assert.True(builder.ShouldSerialize("Filename"));
        }
        public void TryGetValue_returns_false_when_not_exists()
        {
            object value;

            var retrieved = new SQLiteConnectionStringBuilder().TryGetValue("Invalid", out value);

            Assert.False(retrieved);
            Assert.Null(value);
        }
        public void Ctor_parses_options()
        {
            var builder = new SQLiteConnectionStringBuilder("Data Source=test.db");

            Assert.Equal("test.db", builder.Filename);
        }
        public void Remove_resets_option()
        {
            var builder = new SQLiteConnectionStringBuilder("Filename=test.db");

            var removed = builder.Remove("Filename");

            Assert.True(removed);
            Assert.Null(builder.Filename);
        }
        public void ShouldSerialize_returns_true_when_set()
        {
            var builder = new SQLiteConnectionStringBuilder("Filename=test.db");

            Assert.True(builder.ShouldSerialize("Filename"));
        }
        public void Item_resets_value_when_null()
        {
            var builder = new SQLiteConnectionStringBuilder();
            builder.Mode = "RO";

            builder["Mode"] = null;

            Assert.Equal("RWC", builder.Mode);
        }
        public void GetFlags_calculates_mutex_flags()
        {
            var builder = new SQLiteConnectionStringBuilder();
            Func<int, int> filter = f => f & ~(
                Constants.SQLITE_OPEN_READONLY | Constants.SQLITE_OPEN_READWRITE | Constants.SQLITE_OPEN_CREATE
                | Constants.SQLITE_OPEN_URI);

            builder.Mutex = "None";
            Assert.Equal(Constants.SQLITE_OPEN_NOMUTEX, filter(builder.GetFlags()));

            builder.Mutex = "Full";
            Assert.Equal(Constants.SQLITE_OPEN_FULLMUTEX, filter(builder.GetFlags()));

            builder.Mutex = null;
            Assert.Equal(0, filter(builder.GetFlags()));
        }
        public void GetFlags_calculates_mode_flags()
        {
            var builder = new SQLiteConnectionStringBuilder();
            Func<int, int> filter = f => f & ~(
                Constants.SQLITE_OPEN_NOMUTEX | Constants.SQLITE_OPEN_FULLMUTEX | Constants.SQLITE_OPEN_URI);

            builder.Mode = "RO";
            Assert.Equal(Constants.SQLITE_OPEN_READONLY, filter(builder.GetFlags()));

            builder.Mode = "RW";
            Assert.Equal(Constants.SQLITE_OPEN_READWRITE, filter(builder.GetFlags()));

            builder.Mode = "RWC";
            Assert.Equal(Constants.SQLITE_OPEN_READWRITE | Constants.SQLITE_OPEN_CREATE, filter(builder.GetFlags()));
        }
        public void Item_sets_value()
        {
            var builder = new SQLiteConnectionStringBuilder();

            builder["Mode"] = "RO";

            Assert.Equal("RO", builder.Mode);
        }
        public void Clear_resets_everything()
        {
            var builder = new SQLiteConnectionStringBuilder("Filename=test.db;Mode=RO");

            builder.Clear();

            Assert.Null(builder.Filename);
            Assert.Equal("RWC", builder.Mode);
        }
        public void Ctor_parses_options()
        {
            var builder = new SQLiteConnectionStringBuilder("Data Source=test.db");

            Assert.Equal("test.db", builder.Filename);
        }