public void UpdateWithNullThrowsException() { using (TestDb db = new TestDb()) { db.CreateTable <NotNullNoPK>(); try { NotNullNoPK obj = new NotNullNoPK() { AnotherRequiredStringProp = "Another required string", RequiredIntProp = 123, RequiredStringProp = "Required string" }; db.Insert(obj); obj.RequiredStringProp = null; db.Update(obj); } catch (NotNullConstraintViolationException) { return; } catch (SQLiteException ex) { if (db.Platform.SQLiteApi.LibVersionNumber() < 3007017 && ex.Result == Result.Constraint) { Assert.Inconclusive("Detailed constraint information is only available in SQLite3 version 3.7.17 and above."); } } } Assert.Fail("Expected an exception of type NotNullConstraintViolationException to be thrown. No exception was thrown."); }
public void NotNullConstraintExceptionListsOffendingColumnsOnUpdate() { using (TestDb db = new TestDb()) { // Skip this test if the Dll doesn't support the extended SQLITE_CONSTRAINT codes if (db.Platform.SQLiteApi.LibVersionNumber() >= 3007017) { db.CreateTable <NotNullNoPK>(); try { NotNullNoPK obj = new NotNullNoPK() { AnotherRequiredStringProp = "Another required string", RequiredIntProp = 123, RequiredStringProp = "Required string" }; db.Insert(obj); obj.RequiredStringProp = null; db.Update(obj); } catch (NotNullConstraintViolationException ex) { string expected = "RequiredStringProp"; string actual = string.Join(", ", ex.Columns.Where(c => !c.IsPK).OrderBy(p => p.PropertyName).Select(c => c.PropertyName)); Assert.AreEqual(expected, actual, "NotNullConstraintViolationException did not correctly list the columns that violated the constraint"); return; } catch (SQLiteException ex) { if (db.Platform.SQLiteApi.LibVersionNumber() < 3007017 && ex.Result == Result.Constraint) { Assert.Inconclusive("Detailed constraint information is only available in SQLite3 version 3.7.17 and above."); } } catch (Exception ex) { Assert.Fail( "Expected an exception of type NotNullConstraintViolationException to be thrown. An exception of type {0} was thrown instead.", ex.GetType().Name); } Assert.Fail("Expected an exception of type NotNullConstraintViolationException to be thrown. No exception was thrown."); } } }
public void Issue115_MissingPrimaryKey() { using (var conn = new TestDb()) { conn.CreateTable <Issue115_MyObject>(); conn.InsertAll(from i in Enumerable.Range(0, 10) select new Issue115_MyObject { UniqueId = i.ToString(), OtherValue = (byte)(i * 10), }); TableQuery <Issue115_MyObject> query = conn.Table <Issue115_MyObject>(); foreach (Issue115_MyObject itm in query) { itm.OtherValue++; Assert.AreEqual(1, conn.Update(itm, typeof(Issue115_MyObject))); } } }
public void NotNullConstraintExceptionListsOffendingColumnsOnUpdate() { using (TestDb db = new TestDb()) { // Skip this test if the Dll doesn't support the extended SQLITE_CONSTRAINT codes if (db.Platform.SQLiteApi.LibVersionNumber() >= 3007017) { db.CreateTable<NotNullNoPK>(); try { NotNullNoPK obj = new NotNullNoPK() { AnotherRequiredStringProp = "Another required string", RequiredIntProp = 123, RequiredStringProp = "Required string" }; db.Insert(obj); obj.RequiredStringProp = null; db.Update(obj); } catch (NotNullConstraintViolationException ex) { string expected = "RequiredStringProp"; string actual = string.Join(", ", ex.Columns.Where(c => !c.IsPK).OrderBy(p => p.PropertyName).Select(c => c.PropertyName)); Assert.AreEqual(expected, actual, "NotNullConstraintViolationException did not correctly list the columns that violated the constraint"); return; } catch (SQLiteException ex) { if (db.Platform.SQLiteApi.LibVersionNumber() < 3007017 && ex.Result == Result.Constraint) { Assert.Inconclusive("Detailed constraint information is only available in SQLite3 version 3.7.17 and above."); } } catch (Exception ex) { Assert.Fail( "Expected an exception of type NotNullConstraintViolationException to be thrown. An exception of type {0} was thrown instead.", ex.GetType().Name); } Assert.Fail("Expected an exception of type NotNullConstraintViolationException to be thrown. No exception was thrown."); } } }
public void UpdateWithNullThrowsException() { using (TestDb db = new TestDb()) { db.CreateTable<NotNullNoPK>(); try { NotNullNoPK obj = new NotNullNoPK() { AnotherRequiredStringProp = "Another required string", RequiredIntProp = 123, RequiredStringProp = "Required string" }; db.Insert(obj); obj.RequiredStringProp = null; db.Update(obj); } catch (NotNullConstraintViolationException) { return; } catch (SQLiteException ex) { if (db.Platform.SQLiteApi.LibVersionNumber() < 3007017 && ex.Result == Result.Constraint) { Assert.Inconclusive("Detailed constraint information is only available in SQLite3 version 3.7.17 and above."); } } } Assert.Fail("Expected an exception of type NotNullConstraintViolationException to be thrown. No exception was thrown."); }
public void Issue115_MissingPrimaryKey() { using (var conn = new TestDb()) { conn.CreateTable<Issue115_MyObject>(); conn.InsertAll(from i in Enumerable.Range(0, 10) select new Issue115_MyObject { UniqueId = i.ToString(), OtherValue = (byte) (i*10), }); TableQuery<Issue115_MyObject> query = conn.Table<Issue115_MyObject>(); foreach (Issue115_MyObject itm in query) { itm.OtherValue++; Assert.AreEqual(1, conn.Update(itm, typeof (Issue115_MyObject))); } } }