Beispiel #1
0
        public void DropTableUsingSqlString()
        {
            var db = new OrmTestSession();

            db.CreateTable <Product>();

            var results = db.Execute("DROP TABLE IF EXISTS Product;");
        }
 public void DropTableUsingSqlString()
 {
     var db = new OrmTestSession();
     
     db.CreateTable<Product>();
     
     var results = db.Execute("DROP TABLE IF EXISTS Product;");
 }
        public void SqlQuery()
        {
            var expected = "абвг";

            var db = new OrmTestSession();
            db.CreateTable<Product>();

            var product = new Product { Name = TestString };
            db.Insert(product);

            db.Execute("UPDATE Product SET Name = '" + expected + "' WHERE Id = " + product.Id);

            var ps = (from p in db.Table<Product>()
                      where p.Name == expected 
                      select p).ToList();

            Assert.AreEqual(1, ps.Count);
            Assert.AreEqual(expected, ps[0].Name);
        }
Beispiel #4
0
        public void SqlQuery()
        {
            var expected = "абвг";

            var db = new OrmTestSession();

            db.CreateTable <Product>();

            var product = new Product {
                Name = TestString
            };

            db.Insert(product);

            db.Execute("UPDATE Product SET Name = '" + expected + "' WHERE Id = " + product.Id);

            var ps = (from p in db.Table <Product>()
                      where p.Name == expected
                      select p).ToList();

            Assert.AreEqual(1, ps.Count);
            Assert.AreEqual(expected, ps[0].Name);
        }
Beispiel #5
0
        public void CreateTableWithoutIndexesTest()
        {
            var db = new OrmTestSession();

            // the table
            db.CreateTable <IndexedTable>(false);

            // the indexes
            var map = db.GetMapping <IndexedTable>();

            foreach (var index in map.Indexes)
            {
                db.Execute(index.GetCreateSql(map.TableName));
            }

            // the test
            db.Insert(new IndexedTable {
                Indexed = 1
            });
            ExceptionAssert.Throws <SqliteException>(
                () => db.Insert(new IndexedTable {
                Indexed = 1
            }));
        }
        public void MultiplePkOperations()
		{
			var db = new OrmTestSession();
			db.CreateTable<TestObj>();
			
			// insert
			const int n = 10 , m= 5;
			var objs = new TestObj[n * m];
			for (int j = 0; j != n; ++j)
			{
				for (int i = 0; i != m; ++i)
				{
					objs[j * m + i] = new TestObj {Id = j, SubId = i, Text = "I am (" + j + "," + i + ")"};
				}
			}

			int numIn = db.InsertAll(objs);

			Assert.AreEqual(numIn, n * m, "Num inserted must = num objects");

			var obj = db.Get<TestObj>(5, 3);
			Assert.AreEqual(5, obj.Id);
			Assert.AreEqual(3, obj.SubId);
			Assert.AreEqual("I am (5,3)", obj.Text);
			
			try
			{
				db.Insert(obj);
			}
			catch (SqliteException ex)
			{
                Assert.AreEqual(SQLiteErrorCode.Constraint, ex.ErrorCode);
			}

			// update
			obj.Text = "I've been changed";
			db.Update(obj);
			db.Update<TestObj>("Text", "I've been changed also", 8, 2);

			obj = db.Get<TestObj>(5, 3);
			Assert.AreEqual("I've been changed", obj.Text);

			obj = db.Get<TestObj>(8, 2);
			Assert.AreEqual("I've been changed also", obj.Text);

			db.UpdateAll<TestObj>("Text", "All changed");
			IEnumerable<TestObj> q1 = from o in db.Table<TestObj>() select o;
			foreach (TestObj o in q1)
				Assert.AreEqual("All changed", o.Text);

			TestObj[] q2 = (from o in db.Table<TestObj>() where o.SubId == 3 select o).ToArray();
			Assert.AreEqual(10, q2.Length);
			for (int i = 0; i != 10; ++i)
			{
				Assert.AreEqual(i, q2[i].Id);
			}

            object numCount = db.Table<TestObj>().Count();
			Assert.AreEqual(numCount, objs.Length, "Num counted must = num objects");

			// delete
			obj = db.Get<TestObj>(8, 2);
			db.Delete(obj);
			
			try
			{
				var item = db.Get<TestObj>(8, 2);

				Assert.Fail();
			}
			catch (InvalidOperationException)
			{
			}
			catch (Exception ex)
			{
				Assert.Fail(ex.Message);
			}

            db.Execute("delete from TestObj where SubId=2");
            numCount = db.ExecuteScalar<int>("select count(*) from TestObj");
			Assert.AreEqual(numCount, objs.Length - 10);
			foreach (TestObj o in (from o in db.Table<TestObj>() select o))
				Assert.AreNotEqual(2, o.SubId);
		}
        public void CreateTableWithoutIndexesTest()
        {
            var db = new OrmTestSession();
            
            // the table
            db.CreateTable<IndexedTable>(false);

            // the indexes
            var map = db.GetMapping<IndexedTable>();
            foreach (var index in map.Indexes)
            {
                db.Execute(index.GetCreateSql(map.TableName));
            }

            // the test
            db.Insert(new IndexedTable { Indexed = 1 });
            ExceptionAssert.Throws<SqliteException>(
                () => db.Insert(new IndexedTable { Indexed = 1 }));
        }
Beispiel #8
0
        public void MultiplePkOperations()
        {
            var db = new OrmTestSession();

            db.CreateTable <TestObj>();

            // insert
            const int n = 10, m = 5;
            var       objs = new TestObj[n * m];

            for (int j = 0; j != n; ++j)
            {
                for (int i = 0; i != m; ++i)
                {
                    objs[j * m + i] = new TestObj {
                        Id = j, SubId = i, Text = "I am (" + j + "," + i + ")"
                    };
                }
            }

            int numIn = db.InsertAll(objs);

            Assert.AreEqual(numIn, n * m, "Num inserted must = num objects");

            var obj = db.Get <TestObj>(5, 3);

            Assert.AreEqual(5, obj.Id);
            Assert.AreEqual(3, obj.SubId);
            Assert.AreEqual("I am (5,3)", obj.Text);

            try
            {
                db.Insert(obj);
            }
            catch (SqliteException ex)
            {
                Assert.AreEqual(SQLiteErrorCode.Constraint, ex.ErrorCode);
            }

            // update
            obj.Text = "I've been changed";
            db.Update(obj);
            db.Update <TestObj>("Text", "I've been changed also", 8, 2);

            obj = db.Get <TestObj>(5, 3);
            Assert.AreEqual("I've been changed", obj.Text);

            obj = db.Get <TestObj>(8, 2);
            Assert.AreEqual("I've been changed also", obj.Text);

            db.UpdateAll <TestObj>("Text", "All changed");
            IEnumerable <TestObj> q1 = from o in db.Table <TestObj>() select o;

            foreach (TestObj o in q1)
            {
                Assert.AreEqual("All changed", o.Text);
            }

            TestObj[] q2 = (from o in db.Table <TestObj>() where o.SubId == 3 select o).ToArray();
            Assert.AreEqual(10, q2.Length);
            for (int i = 0; i != 10; ++i)
            {
                Assert.AreEqual(i, q2[i].Id);
            }

            object numCount = db.Table <TestObj>().Count();

            Assert.AreEqual(numCount, objs.Length, "Num counted must = num objects");

            // delete
            obj = db.Get <TestObj>(8, 2);
            db.Delete(obj);

            ExceptionAssert.Throws <InvalidOperationException>(() => db.Get <TestObj>(8, 2));

            db.Execute("delete from TestObj where SubId=2");
            numCount = db.ExecuteScalar <int>("select count(*) from TestObj");
            Assert.AreEqual(numCount, objs.Length - 10);
            foreach (TestObj o in (from o in db.Table <TestObj>() select o))
            {
                Assert.AreNotEqual(2, o.SubId);
            }
        }