From aab2dff49cae19329613aca57518e3dcc6cc39f8 Mon Sep 17 00:00:00 2001 From: rbygrave Date: Tue, 7 Sep 2021 16:04:07 +1200 Subject: [PATCH] MySQL Ignore tests that use Hash/Source JSON dirty detection MySQL JSON type will not preserve ordering of keys. No way to return a consistent JSON result with this type hence Hash/Source do not work --- .../src/test/java/org/tests/json/TestDbJson_Jackson3.java | 2 ++ .../src/test/java/org/tests/json/TestDbJson_List.java | 7 +++---- .../java/org/tests/model/json/TestJacksonPlainBean.java | 5 +++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ebean-core/src/test/java/org/tests/json/TestDbJson_Jackson3.java b/ebean-core/src/test/java/org/tests/json/TestDbJson_Jackson3.java index e68d29cde..bfe594afa 100644 --- a/ebean-core/src/test/java/org/tests/json/TestDbJson_Jackson3.java +++ b/ebean-core/src/test/java/org/tests/json/TestDbJson_Jackson3.java @@ -79,6 +79,7 @@ public class TestDbJson_Jackson3 extends BaseTestCase { assertThat(found2.getPlainValue().getName()).isEqualTo("b"); } + @IgnorePlatform(Platform.MYSQL) @Test public void updateIncludesJsonColumn_when_loadedAndNotDirtyAware() { PlainBean contentBean = new PlainBean("a", 42); @@ -141,6 +142,7 @@ public class TestDbJson_Jackson3 extends BaseTestCase { LoggedSql.stop(); } + @IgnorePlatform(Platform.MYSQL) @Test public void updateIncludesJsonColumn_when_list_loadedAndNotDirtyAware() { PlainBean contentBean = new PlainBean("a", 42); diff --git a/ebean-core/src/test/java/org/tests/json/TestDbJson_List.java b/ebean-core/src/test/java/org/tests/json/TestDbJson_List.java index f7d4650ab..30499053e 100644 --- a/ebean-core/src/test/java/org/tests/json/TestDbJson_List.java +++ b/ebean-core/src/test/java/org/tests/json/TestDbJson_List.java @@ -31,12 +31,9 @@ public class TestDbJson_List extends BaseTestCase { @Test public void insert() { - bean.setName("stuff"); - bean.getTags().add("one"); bean.getTags().add("two"); - bean.getFlags().add(42L); bean.getFlags().add(43L); bean.getFlags().add(44L); @@ -114,7 +111,9 @@ public class TestDbJson_List extends BaseTestCase { // we don't update the phone numbers (as they are not dirty) // plain_bean=?, no longer included with dirty detection - assertSql(sql.get(0)).contains("update ebasic_json_list set name=?, version=? where"); + if (!isMySql()) { + assertSql(sql.get(0)).contains("update ebasic_json_list set name=?, version=? where"); + } } private void update_when_dirty() { diff --git a/ebean-core/src/test/java/org/tests/model/json/TestJacksonPlainBean.java b/ebean-core/src/test/java/org/tests/model/json/TestJacksonPlainBean.java index 164bbe1b9..c9241ab47 100644 --- a/ebean-core/src/test/java/org/tests/model/json/TestJacksonPlainBean.java +++ b/ebean-core/src/test/java/org/tests/model/json/TestJacksonPlainBean.java @@ -29,8 +29,9 @@ public class TestJacksonPlainBean extends BaseTestCase { final EBasicPlain found = DB.find(EBasicPlain.class, bean.getId()); found.setAttr("n2"); DB.save(found); - expectedSql(1, "update ebasic_plain set attr=?, version=? where id=? and version=?"); - + if (!isMySql()) { + expectedSql(1, "update ebasic_plain set attr=?, version=? where id=? and version=?"); + } LoggedSql.stop(); }