Centralize D&D source reference ordering
This commit is contained in:
@@ -57,6 +57,24 @@ func TestValidateRejectsOwnedNormalizedInvariants(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateUsesSourceDocumentOrder(t *testing.T) {
|
||||
doc := &source.SourceDocument{ID: "session", Units: []source.SourceUnit{{ID: 30}, {ID: 10}}}
|
||||
value := dnd.CombatTurnList{CombatTurns: []dnd.CombatTurn{
|
||||
{Actor: "Aria", TurnKind: dnd.CombatTurnKindTurn, SourceRefs: []source.SourceRef{{SourceID: doc.ID, StartUnitID: 10, EndUnitID: 10}, {SourceID: doc.ID, StartUnitID: 30, EndUnitID: 30}}},
|
||||
}}
|
||||
if err := Validate(doc, value); err == nil || !strings.Contains(err.Error(), "not in canonical order") {
|
||||
t.Fatalf("Validate() error = %v, want document-order reference rejection", err)
|
||||
}
|
||||
|
||||
value = dnd.CombatTurnList{CombatTurns: []dnd.CombatTurn{
|
||||
{Actor: "Aria", TurnKind: dnd.CombatTurnKindTurn, SourceRefs: []source.SourceRef{{SourceID: doc.ID, StartUnitID: 10, EndUnitID: 10}}},
|
||||
{Actor: "Borin", TurnKind: dnd.CombatTurnKindTurn, SourceRefs: []source.SourceRef{{SourceID: doc.ID, StartUnitID: 30, EndUnitID: 30}}},
|
||||
}}
|
||||
if err := Validate(doc, value); err == nil || !strings.Contains(err.Error(), "out of chronological order") {
|
||||
t.Fatalf("Validate() error = %v, want document-order chronology rejection", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidatorDefersShapeAndSourceReferenceFailures(t *testing.T) {
|
||||
doc := invariantDocument()
|
||||
shapeInvalid := normalizedList()
|
||||
|
||||
Reference in New Issue
Block a user