public virtual Data.SQLite.SQLiteConnection CreateConnectionReadWriteCreate() { // TODO: Handle uris var builder = new SQLiteConnectionStringBuilder(ConnectionString) { Mode = "RWC" }; return new Data.SQLite.SQLiteConnection(builder.ConnectionString); }
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); }
/// <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 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); }