public void TestGetColumnInfoFromMeta()
        {
            String path = Environment.CurrentDirectory + string.Format ("{0}Resources{0}test.db", Path.DirectorySeparatorChar);
            SqliteConnectionStringBuilder constrBuilder = new SqliteConnectionStringBuilder ();
            constrBuilder.DataSource = path;
            IDbServerConnection serverCon = new SqliteDbServerConnection ("test.db", constrBuilder.ConnectionString);

            var con = serverCon.CreateConnection ();

            List<ColumnInfo> colInfos;

            try {
                con.Open();
                using (IDbCommand cmd = con.CreateCommand ()) {
                    cmd.CommandText = "select * from testtable";
                    using (var reader = cmd.ExecuteReader ()) {
                        colInfos = serverCon.GetColumnInfosFromMeta( reader.GetSchemaTable () );
                    }
                }
            } finally {
                if (con.State == ConnectionState.Open)
                    con.Close ();
            }

            Assert.Greater (colInfos.Count, 1);
        }
        public void TestSqliteStatePersistanceProvider()
        {
            IDbServerConnection session = new SqliteDbServerConnection ("testdb", "someconnectionstring");
            SqliteStatePersistanceProvider prov = new SqliteStatePersistanceProvider ();

            SqliteConnectionStringBuilder conStrBuilder = new SqliteConnectionStringBuilder ();
            conStrBuilder.DataSource = ":memory:";

            using (SqliteConnection con = new SqliteConnection (conStrBuilder.ConnectionString)) {
                con.Open ();

                // Start calling RestoreSessions method even though no session is saved. This triggers the initialization logic
                // in the SqliteStatePersistanceProvider.
                var providersShouldBeEmpty = prov.RestoreSessions (con);
                Assert.AreEqual (0, providersShouldBeEmpty.Length);

                // Save session
                prov.SaveSessions (new IDbServerConnection[] { session }, con);

                // restore saved session
                IDbServerConnection[] restoredSessions = prov.RestoreSessions (con);

                Assert.AreEqual (1, restoredSessions.Length);
                Assert.AreEqual (session, restoredSessions [0]);
            }
        }
        public void TestSqliteSessionStateProvider()
        {
            SqliteConnectionStringBuilder conStrBuilder = new SqliteConnectionStringBuilder ();
            SqliteDbServerConnection serverCon = new SqliteDbServerConnection ("test", conStrBuilder.ConnectionString);
            ISessionStateProvider sessionStateProvider = new SqliteSessionStateProvider(serverCon);

            String state = sessionStateProvider.getSerializedState ();

            IDbServerConnection restoredCon = sessionStateProvider.restoreSessionFromState (state);
            Assert.AreEqual (restoredCon, serverCon);
        }
        public override bool Equals(object obj)
        {
            if (obj.GetType() != this.GetType())
            {
                return(false);
            }

            SqliteDbServerConnection other = (SqliteDbServerConnection)obj;

            return
                (this.Name == other.Name &&
                 this.SqliteConnectionString == other.SqliteConnectionString);
        }