Beispiel #1
0
        public void TestSelectBinaryDataFromCellAsImage()
        {
            const string sqlCreateTable = "create table test (bin blob);";
            const string sqlInsertImage = "insert into test (bin) values (@bin);";
            const string sqlSelectImage = "select * from test;";
            const int    imageDimension = 100;
            var          image          = new Bitmap(imageDimension, imageDimension);

            byte[] binary;

            using (var g = Graphics.FromImage(image))
            {
                g.Clear(Color.Gold);
            }

            using (var memory = new MemoryStream())
            {
                image.Save(memory, ImageFormat.Png);
                binary = memory.ToArray();
            }

            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);

            xQuery.BeginTransaction();
            xQuery.Create(sqlCreateTable);
            xQuery.InsertBinaryIntoCell(binary, sqlInsertImage, "@bin");
            var retrivedImage = xQuery.SelectBinaryAsImage(sqlSelectImage);

            Assert.AreEqual(100, retrivedImage.Size.Width);
        }
Beispiel #2
0
        public void TestTransactionFailsIfNoConnectionSpecified()
        {
            var xQuery = new XQuerySqlite();

            Assert.IsFalse(xQuery.BeginTransaction());
            Assert.IsNotNull(xQuery.LastErrorMessage);
        }
Beispiel #3
0
        public void TestSelectCellCanReturnDoubleDataType()
        {
            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);
            var result = xQuery.SelectCellAs <double>("select 1.1;");

            Assert.AreEqual(1.1d, result);
        }
        public void TestSqliteConnectionCannotBeEstablished()
        {
            string connectionString = $"Data Source={Guid.NewGuid()};FailIfMissing=true;";
            var    xQuery           = new XQuerySqlite(connectionString);

            Assert.IsFalse(xQuery.TestConnection());
        }
Beispiel #5
0
        public void TestSelectBinaryDataFromCellAndSaveToFile()
        {
            const string sqlCreateTable = "create table test (bin blob);";
            const string sqlInsertImage = "insert into test (bin) values (@bin);";
            const string sqlSelectImage = "select bin from test limit 1;";
            const string fileName       = "image.png";
            const int    imageDimension = 100;
            var          image          = new Bitmap(imageDimension, imageDimension);

            byte[] binary;

            using (var g = Graphics.FromImage(image))
            {
                g.Clear(Color.Gold);
            }

            using (var memory = new MemoryStream())
            {
                image.Save(memory, ImageFormat.Png);
                binary = memory.ToArray();
            }

            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);

            xQuery.BeginTransaction();
            xQuery.Create(sqlCreateTable);
            xQuery.InsertBinaryIntoCell(binary, sqlInsertImage, "@bin");
            File.Delete(fileName);
            var result = xQuery.SelectBinaryAndSave(fileName, sqlSelectImage);

            Assert.IsTrue(result);
        }
Beispiel #6
0
        public void TestConnectionIsActiveAfterBeginTransaction()
        {
            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);

            xQuery.BeginTransaction();
            Assert.IsTrue(xQuery.IsConnectionActive);
        }
Beispiel #7
0
        public void TestTransactionFlagIsBeingSet()
        {
            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);

            xQuery.BeginTransaction();
            Assert.True(xQuery.IsInTransactionMode);
        }
Beispiel #8
0
        public void TestSelectCellCanReturnLongDataType()
        {
            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);
            var result = xQuery.SelectCellAs <long>("select 100;");

            Assert.AreEqual(100L, result);
        }
Beispiel #9
0
        public void TestSelectCellCanReturnStringDataType()
        {
            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);
            var result = xQuery.SelectCellAs <string>("select 'asd';");

            Assert.AreEqual("asd", result);
        }
Beispiel #10
0
        public void TestTimeoutCannotBeSetToZero()
        {
            var xQuery         = new XQuerySqlite();
            var defaultTimeout = xQuery.Timeout;

            xQuery.Timeout = 0;
            Assert.AreEqual(defaultTimeout, xQuery.Timeout);
        }
Beispiel #11
0
        public void TestSelectCellReturnsDefaultValueOnError()
        {
            const string defValue = "default";
            var          xQuery   = new XQuerySqlite(SetUp.SqliteConnectionString);
            var          result   = xQuery.SelectCellAs("select 1.1;", defValue);

            Assert.AreEqual(defValue, result);
        }
Beispiel #12
0
        public void TestConnectionIsClosedAfterRollback()
        {
            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);

            xQuery.BeginTransaction();
            xQuery.RollbackTransaction();
            Assert.IsFalse(xQuery.IsConnectionActive);
        }
Beispiel #13
0
        public void TestSelectRow()
        {
            const string sqlSelectRow = "select 1, 'value', 3.3;";
            var          xQuery       = new XQuerySqlite(SetUp.SqliteConnectionString);
            var          result       = xQuery.SelectRow(sqlSelectRow);

            Assert.AreEqual(3, result.ItemArray.Length);
        }
Beispiel #14
0
        public void TestSelectColumn()
        {
            const string sqlSelectColumn = "select 1 union select 2 union select 3;";
            var          xQuery          = new XQuerySqlite(SetUp.SqliteConnectionString);
            var          result          = xQuery.SelectColumn(sqlSelectColumn);

            Assert.AreEqual(3, result.Table.Rows.Count);
        }
Beispiel #15
0
        public void TestSelectTable()
        {
            const string sqlSelectTable = "select 1, 2, 3 union select 4, 5, 6;";
            var          xQuery         = new XQuerySqlite(SetUp.SqliteConnectionString);
            var          result         = xQuery.SelectTable(sqlSelectTable);

            Assert.AreEqual(2 * 3, result.Rows.Count * result.Columns.Count);
        }
Beispiel #16
0
        public void TestTimeoutCanBeChanges()
        {
            var timeout = (int)TimeSpan.FromSeconds(10).TotalMilliseconds;
            var xQuery  = new XQuerySqlite {
                Timeout = timeout
            };

            Assert.AreEqual(timeout, xQuery.Timeout);
        }
Beispiel #17
0
        public void TestSelectCellReturnsValueIfNoErrors()
        {
            const string defValue    = "default";
            const string nonDefValue = "non default";
            var          xQuery      = new XQuerySqlite(SetUp.SqliteConnectionString);
            var          result      = xQuery.SelectCellAs($"select '{nonDefValue}';", defValue);

            Assert.AreEqual(nonDefValue, result);
        }
Beispiel #18
0
        public void TestArgumentsCanBeSpecifiedWithinSelectTable()
        {
            var          xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);
            const string value  = "asd";
            var          result = xQuery.SelectTable("select @a;", new XParameter("@a", value))
                                  .Rows[0].ItemArray[0];

            Assert.AreEqual(result, value);
        }
Beispiel #19
0
        public void TestSelectCellThrowsDataExceptionOnEmptyResult()
        {
            const string sqlSelect = "select;";
            var          xQuery    = new XQuerySqlite(SetUp.SqliteConnectionString);

            Assert.Throws(Is.TypeOf <DataException>(), delegate
            {
                xQuery.SelectCellAs <long>(sqlSelect);
            });
        }
Beispiel #20
0
        public void TestSelectCellThrowsFormatException()
        {
            const string sqlSelect = "select 1;";
            var          xQuery    = new XQuerySqlite(SetUp.SqliteConnectionString);

            Assert.Throws(Is.TypeOf <FormatException>(), delegate
            {
                xQuery.SelectCellAs <string>(sqlSelect);
            });
        }
Beispiel #21
0
        public void TestConnectionIsNotBeingClosedIfKeepOpenWhenRollback()
        {
            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString)
            {
                KeepConnectionOpen = true
            };

            xQuery.BeginTransaction();
            xQuery.RollbackTransaction();
            Assert.IsTrue(xQuery.IsConnectionActive);
        }
Beispiel #22
0
        public void TestConnectionIsOpenAfterSelect()
        {
            const string sqlSelect = "select 123;";
            var          xQuery    = new XQuerySqlite()
            {
                ConnectionString   = SetUp.SqliteConnectionString,
                KeepConnectionOpen = true
            };

            xQuery.SelectCellAs <long>(sqlSelect);
            Assert.IsTrue(xQuery.IsConnectionActive);
        }
Beispiel #23
0
        public void TestInsertFileIntoCell()
        {
            const string sqlCreateTable = "create table test (bin blob);";
            const string sqlInsertFile  = "insert into test (bin) values (@bin);";
            var          file           = Assembly.GetExecutingAssembly().Location;

            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);

            xQuery.BeginTransaction();
            xQuery.Create(sqlCreateTable);
            Assert.IsTrue(xQuery.InsertFileIntoCell(file, sqlInsertFile, "@bin"));
        }
Beispiel #24
0
        public void TestInsertBinaryDataIntoCell()
        {
            const string sqlCreateTable = "create table test (bin blob);";
            const string sqlInsertBin   = "insert into test (bin) values (@bin);";
            var          binData        = new byte[] { 1, 0, 1, 1, 0, 1, 1, 0 };

            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);

            xQuery.BeginTransaction();
            xQuery.Create(sqlCreateTable);
            Assert.IsTrue(xQuery.InsertBinaryIntoCell(binData, sqlInsertBin, "@bin"));
        }
        public void TestConnectionIsBeingClosedByChangingKeepConnectionOpen()
        {
            const string select = "select 123;";
            var          xQuery = new XQuerySqlite()
            {
                ConnectionString   = SetUp.SqliteConnectionString,
                KeepConnectionOpen = true
            };

            xQuery.SelectCellAs <long>(select);
            xQuery.KeepConnectionOpen = false;
            Assert.IsFalse(xQuery.IsConnectionActive);
        }
Beispiel #26
0
        public void TestSelectBinaryDataFromCell()
        {
            const string sqlCreateTable = "create table test (bin blob);";
            const string sqlInsertBin   = "insert into test (bin) values (@bin);";
            var          binData        = new byte[] { 1, 0, 1, 1, 0, 1, 1, 0 };

            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);

            xQuery.BeginTransaction();
            xQuery.Create(sqlCreateTable);
            xQuery.InsertBinaryIntoCell(binData, sqlInsertBin, "@bin");
            var result = xQuery.SelectCellAs <byte[]>("select bin from test");

            Assert.AreEqual(binData, result);
        }
Beispiel #27
0
        public void TestErrorIsLogged()
        {
            const string sqlSelect = "select 1, 2, 3;";
            var          xQuery    = new XQuerySqlite(SetUp.SqliteConnectionString);

            xQuery.OnError += XQuery_OnError;
            try
            {
                xQuery.SelectCellAs <long>(sqlSelect);
            }
            catch (Exception)
            {
                // ignored
            }

            Assert.IsNotEmpty(xQuery.LastErrorMessage);
        }
Beispiel #28
0
        public void TestKeepConnectionOpenIsFalseByDefault()
        {
            var xQuery = new XQuerySqlite();

            Assert.IsFalse(xQuery.KeepConnectionOpen);
        }
Beispiel #29
0
        public void TestSqliteInstanceTypeEqualsToSqlite()
        {
            var xQuery = new XQuerySqlite();

            Assert.AreEqual(typeof(XQuerySqlite), xQuery.GetType());
        }
Beispiel #30
0
        public void TestArithmeticOperationWithSelectCell()
        {
            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);

            Assert.AreEqual(30, xQuery.SelectCellAs <long>("select 10+20;"));
        }