// Setting a nullable field to null is not an error public void testSetNullField() { TestHelper.populateTestRealmForNullTests(testRealm); RealmResults<NullTypes> list = testRealm.allObjects(NullTypes.class); // 1 String testRealm.beginTransaction(); list.first().setFieldStringNull(null); testRealm.commitTransaction(); assertNull(testRealm.allObjects(NullTypes.class).first().getFieldStringNull()); // 2 Bytes testRealm.beginTransaction(); list.first().setFieldBytesNull(null); testRealm.commitTransaction(); assertNull(testRealm.allObjects(NullTypes.class).first().getFieldBytesNull()); // 3 Boolean testRealm.beginTransaction(); list.first().setFieldBooleanNull(null); testRealm.commitTransaction(); assertNull(testRealm.allObjects(NullTypes.class).first().getFieldBooleanNull()); // 4 Byte // 5 Short 6 Integer 7 Long are skipped testRealm.beginTransaction(); list.first().setFieldByteNull(null); testRealm.commitTransaction(); assertNull(testRealm.allObjects(NullTypes.class).first().getFieldByteNull()); // 8 Float testRealm.beginTransaction(); list.first().setFieldFloatNull(null); testRealm.commitTransaction(); assertNull(testRealm.allObjects(NullTypes.class).first().getFieldFloatNull()); // 9 Double testRealm.beginTransaction(); list.first().setFieldDoubleNull(null); testRealm.commitTransaction(); assertNull(testRealm.allObjects(NullTypes.class).first().getFieldDoubleNull()); // 10 Date testRealm.beginTransaction(); list.first().setFieldDateNull(null); testRealm.commitTransaction(); assertNull(testRealm.allObjects(NullTypes.class).first().getFieldDateNull()); }
// Setting a not-nullable field to null is an error public void testNullFieldNotNullableField() { TestHelper.populateTestRealmForNullTests(testRealm); RealmResults<NullTypes> list = testRealm.allObjects(NullTypes.class); // 1 String try { testRealm.beginTransaction(); list.first().setFieldStringNotNull(null); fail(); } catch (IllegalArgumentException ignored) { } finally { testRealm.cancelTransaction(); } // 2 Bytes try { testRealm.beginTransaction(); list.first().setFieldBytesNotNull(null); fail(); } catch (IllegalArgumentException ignored) { } finally { testRealm.cancelTransaction(); } // 3 Boolean try { testRealm.beginTransaction(); list.first().setFieldBooleanNotNull(null); fail(); } catch (IllegalArgumentException ignored) { } finally { testRealm.cancelTransaction(); } // 4 Byte try { testRealm.beginTransaction(); list.first().setFieldBytesNotNull(null); fail(); } catch (IllegalArgumentException ignored) { } finally { testRealm.cancelTransaction(); } // 5 Short 6 Integer 7 Long are skipped for this case, same with Bytes // 8 Float try { testRealm.beginTransaction(); list.first().setFieldFloatNotNull(null); fail(); } catch (IllegalArgumentException ignored) { } finally { testRealm.cancelTransaction(); } // 9 Double try { testRealm.beginTransaction(); list.first().setFieldDoubleNotNull(null); fail(); } catch (IllegalArgumentException ignored) { } finally { testRealm.cancelTransaction(); } // 10 Date try { testRealm.beginTransaction(); list.first().setFieldDateNotNull(null); fail(); } catch (IllegalArgumentException ignored) { } finally { testRealm.cancelTransaction(); } }