File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -31,7 +31,7 @@ const (
3131 rejectReasonUnsupportedMessageType = 3
3232 rejectReasonTagSpecifiedWithoutAValue = 4
3333 rejectReasonValueIsIncorrect = 5
34- rejectReasonConditionallyRequiredFieldMissing = 5
34+ rejectReasonConditionallyRequiredFieldMissing = 8
3535 rejectReasonIncorrectDataFormatForValue = 6
3636 rejectReasonCompIDProblem = 9
3737 rejectReasonSendingTimeAccuracyProblem = 10
Original file line number Diff line number Diff line change @@ -141,7 +141,9 @@ func TestValueIsIncorrect(t *testing.T) {
141141
142142func TestConditionallyRequiredFieldMissing (t * testing.T ) {
143143 var (
144- expectedRejectReason = 5
144+ // Per FIX spec (tag 373/380 enum), ConditionallyRequiredFieldMissing
145+ // is value 8, distinct from ValueIsIncorrect (value 5). See issue #721.
146+ expectedRejectReason = 8
145147 expectedRefTagID Tag = 44
146148 expectedErrorString = fmt .Sprintf ("Conditionally Required Field Missing (%d)" , expectedRefTagID )
147149 expectedIsBusinessReject = true
@@ -159,6 +161,10 @@ func TestConditionallyRequiredFieldMissing(t *testing.T) {
159161 if msgRej .IsBusinessReject () != expectedIsBusinessReject {
160162 t .Error ("Expected IsBusinessReject to be true\n " )
161163 }
164+ // Regression guard: the two reject reasons must not collide.
165+ if msgRej .RejectReason () == ValueIsIncorrect (expectedRefTagID ).RejectReason () {
166+ t .Errorf ("ConditionallyRequiredFieldMissing and ValueIsIncorrect must not share a reject reason value" )
167+ }
162168}
163169
164170func TestInvalidMessageType (t * testing.T ) {
You can’t perform that action at this time.
0 commit comments