diff --git a/src/test/java/de/ids_mannheim/korap/user/DataFactoryTest.java b/src/test/java/de/ids_mannheim/korap/user/DataFactoryTest.java
index 5584fb7..235805d 100644
--- a/src/test/java/de/ids_mannheim/korap/user/DataFactoryTest.java
+++ b/src/test/java/de/ids_mannheim/korap/user/DataFactoryTest.java
@@ -44,7 +44,7 @@
         assertTrue(factory.addValue(node, "field_2", 20));
         assertTrue(factory.addValue(node, "field_3", true));
         Object value = factory.getValue(node, "field_1");
-        assertEquals(value, "value_1");
+        assertEquals("value_1", value);
         value = factory.getValue(node, "field_2");
         assertEquals(20, value);
         value = factory.getValue(node, "field_3");
@@ -55,7 +55,7 @@
         assertTrue(factory.addValue(node, "", 10));
         assertTrue(factory.addValue(node, "", false));
         value = factory.getValue(node, "/0");
-        assertEquals(value, "value_2");
+        assertEquals("value_2", value);
         value = factory.getValue(node, "/1");
         assertEquals(10, value);
         value = factory.getValue(node, "/2");
@@ -77,11 +77,11 @@
         assertTrue(factory.addValue(node2, "field_4", "value_2"));
         assertTrue(factory.addValue(node2, "field_7", "value_3"));
         JsonNode node_new = (JsonNode) factory.merge(node, node2);
-        assertEquals(node_new.path("field_1").asText(), "value_new");
-        assertEquals(node_new.path("field_2").asText(), "value_next");
+        assertEquals("value_new", node_new.path("field_1").asText());
+        assertEquals("value_next", node_new.path("field_2").asText());
         assertEquals(true, node_new.path("field_3").asBoolean());
-        assertEquals(node_new.path("field_4").asText(), "value_2");
-        assertEquals(node_new.path("field_7").asText(), "value_3");
+        assertEquals("value_2", node_new.path("field_4").asText());
+        assertEquals("value_3", node_new.path("field_7").asText());
     }
 
     @Test
@@ -106,7 +106,7 @@
         assertTrue(factory.addValue(node, "field_2", 20));
         assertTrue(factory.addValue(node, "field_3", true));
         Object value = factory.getValue(node, "field_1");
-        assertEquals(value, "value_1");
+        assertEquals("value_1", value);
         value = factory.getValue(node, "field_2");
         assertEquals(20, value);
         value = factory.getValue(node, "field_3");
@@ -115,14 +115,14 @@
         assertTrue(factory.removeValue(node, "field_2"));
         assertTrue(factory.removeValue(node, "field_3"));
         assertNotNull(node);
-        assertEquals(node.toString(), "{}");
+        assertEquals("{}", node.toString());
         data = "[]";
         node = JsonUtils.readTree(data);
         assertTrue(factory.addValue(node, "", "value_2"));
         assertTrue(factory.addValue(node, "", 10));
         assertTrue(factory.addValue(node, "", false));
         value = factory.getValue(node, "/0");
-        assertEquals(value, "value_2");
+        assertEquals("value_2", value);
         value = factory.getValue(node, "/1");
         assertEquals(10, value);
         value = factory.getValue(node, "/2");
@@ -132,7 +132,7 @@
         assertTrue(factory.removeValue(node, "1"));
         assertTrue(factory.removeValue(node, "2"));
         assertNotNull(node);
-        assertEquals(node.toString(), "[]");
+        assertEquals("[]", node.toString());
     }
 
     @Test
@@ -150,7 +150,7 @@
         factory.addValue(node, "field_3", array);
         assertNotNull(node);
         assertEquals(10, node.at("/field_3/0").asInt());
-        assertEquals(node.at("/field_3/1").asText(), "v1");
-        assertEquals(node.at("/field_3/2").asText(), "v2");
+        assertEquals("v1", node.at("/field_3/1").asText());
+        assertEquals("v2", node.at("/field_3/2").asText());
     }
 }
