public void TestImplicitMappingClass() { Scheduler.WaitFor(Wrapper.ExecuteSQL("CREATE TEMPORARY TABLE Test (a int, b int)")); int rowCount = 100; using (var q = Wrapper.BuildQuery("INSERT INTO TEST (a, b) VALUES (?,?)")) for (int i = 0; i < rowCount; i++) { Scheduler.WaitFor(q.ExecuteNonQuery(i, i * 2)); } using (var q = Wrapper.BuildQuery("SELECT a, b FROM Test")) using (var e = q.Execute <ImplicitlyMappedClass>()) { var items = (ImplicitlyMappedClass[])Scheduler.WaitFor(e.GetArray()); for (int i = 0; i < rowCount; i++) { Assert.AreEqual(i, items[i].A); Assert.AreEqual(i * 2, items[i].B); } Assert.AreEqual(rowCount, items.Length); } }
public void TestPropertySerializerSaveAndLoad() { Scheduler.WaitFor(Wrapper.ExecuteSQL("CREATE TEMPORARY TABLE Data (name TEXT, value VARIANT)")); var props = new ClassWithProperties(); var serializer = new DatabasePropertySerializer(Wrapper, "Data"); serializer.Bind(() => props.A); serializer.Bind(() => props.B); serializer.Bind(() => props.C); serializer.Bind(() => props.D); var timeA = DateTime.UtcNow; var timeB = timeA.AddDays(1); props.A = 5; props.B = 10; props.C = "Test"; props.D = timeA; Scheduler.WaitFor(serializer.Save()); Assert.AreEqual( 4, Scheduler.WaitFor(Wrapper.ExecuteScalar <long>("SELECT COUNT(value) FROM Data")) ); props.A = props.B = 0; props.C = "Baz"; props.D = timeB; Scheduler.WaitFor(serializer.Load()); Assert.AreEqual( 5, props.A ); Assert.AreEqual( 10, props.B ); Assert.AreEqual( "Test", props.C ); Assert.AreEqual( timeA, props.D ); }
public void TestQueryParameters() { using (var scheduler = new TaskScheduler()) using (var wrapper = new ConnectionWrapper(scheduler, Connection)) { scheduler.WaitFor(wrapper.ExecuteSQL("CREATE TEMPORARY TABLE Test (a INTEGER, b VARIANT)")); using (var q = wrapper.BuildQuery("INSERT INTO Test (a, b) VALUES (?, ?)")) { q.Parameters[1].DbType = DbType.Object; Assert.AreEqual(DbType.Object, q.Parameters[1].DbType); } } }