Skip to content

Commit 6d61764

Browse files
committed
Merge pull request #27 from kimptoc/data-dict-copy-from-fix
add missing variables to copyFrom, include in tests
2 parents 360a3ce + f5243c9 commit 6d61764

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

quickfixj-core/src/main/java/quickfix/DataDictionary.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,18 @@ public boolean isCheckUnorderedGroupFields() {
474474
return checkUnorderedGroupFields;
475475
}
476476

477+
public boolean isCheckFieldsHaveValues() {
478+
return checkFieldsHaveValues;
479+
}
480+
481+
public boolean isCheckUserDefinedFields() {
482+
return checkUserDefinedFields;
483+
}
484+
485+
public boolean isAllowUnknownMessageFields() {
486+
return allowUnknownMessageFields;
487+
}
488+
477489
/**
478490
* Controls whether group fields are in the same order
479491
*
@@ -523,6 +535,8 @@ private void copyFrom(DataDictionary rhs) {
523535
checkFieldsOutOfOrder = rhs.checkFieldsOutOfOrder;
524536
checkFieldsHaveValues = rhs.checkFieldsHaveValues;
525537
checkUserDefinedFields = rhs.checkUserDefinedFields;
538+
checkUnorderedGroupFields = rhs.checkUnorderedGroupFields;
539+
allowUnknownMessageFields = rhs.allowUnknownMessageFields;
526540

527541
copyMap(messageFields, rhs.messageFields);
528542
copyMap(requiredFields, rhs.requiredFields);
@@ -997,6 +1011,10 @@ private void load(InputStream inputStream) throws ConfigError {
9971011
}
9981012
}
9991013

1014+
public int getNumMessageCategories() {
1015+
return messageCategory.size();
1016+
}
1017+
10001018
private void load(Document document, String msgtype, Node node) throws ConfigError {
10011019
String name;
10021020
final NodeList fieldNodes = node.getChildNodes();

quickfixj-core/src/test/java/quickfix/DataDictionaryTest.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,9 @@ public void testHeaderTrailerRequired() throws Exception {
196196
data += "</fix>";
197197

198198
DataDictionary dd = new DataDictionary(new ByteArrayInputStream(data.getBytes()));
199+
assertEquals(1, dd.getNumMessageCategories());
200+
assertEquals("0", dd.getMsgType("Heartbeat"));
201+
199202
assertTrue("BeginString should be required", dd.isRequiredHeaderField(8));
200203
assertFalse("OnBehalfOfCompID should not be required", dd.isRequiredHeaderField(115));
201204
assertTrue("Checksum should be required", dd.isRequiredTrailerField(10));
@@ -428,6 +431,25 @@ public void testNewOrderSingleWithMisplacedTag50() throws Exception {
428431
assertTrue(nos4.getHeader().isSetField(new SenderSubID()));
429432
}
430433

434+
public void testCopy() throws Exception {
435+
final DataDictionary dataDictionary = new DataDictionary(getDictionary());
436+
437+
dataDictionary.setAllowUnknownMessageFields(true);
438+
dataDictionary.setCheckFieldsHaveValues(false);
439+
dataDictionary.setCheckFieldsOutOfOrder(false);
440+
dataDictionary.setCheckUnorderedGroupFields(false);
441+
dataDictionary.setCheckUserDefinedFields(false);
442+
443+
DataDictionary ddCopy = new DataDictionary(dataDictionary);
444+
445+
assertEquals(ddCopy.isAllowUnknownMessageFields(),dataDictionary.isAllowUnknownMessageFields());
446+
assertEquals(ddCopy.isCheckFieldsHaveValues(),dataDictionary.isCheckFieldsHaveValues());
447+
assertEquals(ddCopy.isCheckFieldsOutOfOrder(),dataDictionary.isCheckFieldsOutOfOrder());
448+
assertEquals(ddCopy.isCheckUnorderedGroupFields(),dataDictionary.isCheckUnorderedGroupFields());
449+
assertEquals(ddCopy.isCheckUserDefinedFields(),dataDictionary.isCheckUserDefinedFields());
450+
451+
}
452+
431453
//
432454
// Group Validation Tests in RepeatingGroupTest
433455
//

0 commit comments

Comments
 (0)