From ffde6d974c91bd0b0eb7050da549526566fe2a6a Mon Sep 17 00:00:00 2001 From: Philip Whitehouse Date: Thu, 16 Sep 2021 10:16:39 +0100 Subject: [PATCH 1/3] Remove group entry entirely when removing a group --- quickfixj-core/src/main/java/quickfix/FieldMap.java | 2 +- quickfixj-core/src/test/java/quickfix/FieldMapTest.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/quickfixj-core/src/main/java/quickfix/FieldMap.java b/quickfixj-core/src/main/java/quickfix/FieldMap.java index 3027853539..e3f7a914ab 100644 --- a/quickfixj-core/src/main/java/quickfix/FieldMap.java +++ b/quickfixj-core/src/main/java/quickfix/FieldMap.java @@ -669,7 +669,7 @@ public void replaceGroup(int num, Group group) { } public void removeGroup(int field) { - getGroups(field).clear(); + this.groups.remove(field); removeField(field); } diff --git a/quickfixj-core/src/test/java/quickfix/FieldMapTest.java b/quickfixj-core/src/test/java/quickfix/FieldMapTest.java index 9eb376a5c0..ae1f78030d 100644 --- a/quickfixj-core/src/test/java/quickfix/FieldMapTest.java +++ b/quickfixj-core/src/test/java/quickfix/FieldMapTest.java @@ -114,4 +114,13 @@ public void testOptionalDecimal() { private long epochMilliOfLocalDate(LocalDateTime localDateTime) { return localDateTime.toInstant(ZoneOffset.UTC).toEpochMilli(); } + + public void testRemoveGroup() { + FieldMap map = new Message(); + Group group = new Group(73,11); + map.addGroup(group); + assertTrue(map.hasGroup(73)); + map.removeGroup(73); + assertFalse(map.hasGroup(73)); + } } From 4c4eaa83ff7faf71e98fcc81449f803a6aba9f54 Mon Sep 17 00:00:00 2001 From: Philip Whitehouse Date: Thu, 23 Sep 2021 09:54:42 +0100 Subject: [PATCH 2/3] Use method to access groups map --- quickfixj-core/src/main/java/quickfix/FieldMap.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickfixj-core/src/main/java/quickfix/FieldMap.java b/quickfixj-core/src/main/java/quickfix/FieldMap.java index e3f7a914ab..777e32df90 100644 --- a/quickfixj-core/src/main/java/quickfix/FieldMap.java +++ b/quickfixj-core/src/main/java/quickfix/FieldMap.java @@ -669,7 +669,7 @@ public void replaceGroup(int num, Group group) { } public void removeGroup(int field) { - this.groups.remove(field); + getGroups().remove(field); removeField(field); } From bc8a8386e34f1f0ce8b74ad07f49306a2ff1729d Mon Sep 17 00:00:00 2001 From: Christoph John Date: Fri, 24 Sep 2021 01:06:23 +0200 Subject: [PATCH 3/3] converted to JUnit 4 test --- .../src/test/java/quickfix/FieldMapTest.java | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/quickfixj-core/src/test/java/quickfix/FieldMapTest.java b/quickfixj-core/src/test/java/quickfix/FieldMapTest.java index ae1f78030d..95e06e7f92 100644 --- a/quickfixj-core/src/test/java/quickfix/FieldMapTest.java +++ b/quickfixj-core/src/test/java/quickfix/FieldMapTest.java @@ -4,9 +4,6 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZoneOffset; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; import quickfix.field.EffectiveTime; import quickfix.field.MDEntryTime; import quickfix.field.converter.UtcTimeOnlyConverter; @@ -14,22 +11,20 @@ import java.util.Iterator; import java.util.Optional; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import org.junit.Test; + /** * Tests the {@link FieldMap} class. * Specifically, verifies that the setters for {@link UtcTimeStampField} work correctly. * * @author toli - * @version $Id$ */ -public class FieldMapTest extends TestCase { - public FieldMapTest(String inName) { - super(inName); - } - - public static Test suite() { - return new TestSuite(FieldMapTest.class); - } +public class FieldMapTest { + @Test public void testSetUtcTimeStampField() throws Exception { FieldMap map = new Message(); LocalDateTime aDate = LocalDateTime.now(); @@ -43,6 +38,7 @@ public void testSetUtcTimeStampField() throws Exception { epochMilliOfLocalDate(map.getField(new EffectiveTime()).getValue())); } + @Test public void testSetUtcTimeOnlyField() throws Exception { FieldMap map = new Message(); LocalTime aDate = LocalTime.now(); @@ -59,6 +55,7 @@ public void testSetUtcTimeOnlyField() throws Exception { /** * Try a subclass of {@link UtcTimeOnlyField} and {@link UtcTimeStampField} directly */ + @Test public void testSpecificFields() throws Exception { FieldMap map = new Message(); LocalDateTime aDate = LocalDateTime.now(); @@ -80,6 +77,7 @@ private void testOrdering(int[] vals, int[] order, int[] expected) { assertEquals(String.valueOf(e), it.next().getObject()); } + @Test public void testOrdering() { testOrdering(new int[] { 1, 2, 3 }, null, new int[] { 1, 2, 3 }); testOrdering(new int[] { 3, 2, 1 }, null, new int[] { 1, 2, 3 }); @@ -93,6 +91,7 @@ public void testOrdering() { testOrdering(new int[] { 3, 2, 1 }, new int[] { 3, 1 }, new int[] { 3, 1, 2 }); } + @Test public void testOptionalString() { FieldMap map = new Message(); map.setField(new StringField(128, "bigbank")); @@ -102,6 +101,7 @@ public void testOptionalString() { assertFalse(map.getOptionalString(129).isPresent()); } + @Test public void testOptionalDecimal() { FieldMap map = new Message(); map.setField(new DecimalField(44, new BigDecimal("1565.10"))); @@ -115,6 +115,7 @@ private long epochMilliOfLocalDate(LocalDateTime localDateTime) { return localDateTime.toInstant(ZoneOffset.UTC).toEpochMilli(); } + @Test public void testRemoveGroup() { FieldMap map = new Message(); Group group = new Group(73,11);