Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions market/orderbook/orderbook_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package orderbook

import (
"encoding/json"
"testing"
)

func TestOrderBookDeltaValidation(t *testing.T) {
// Test malformed bid/ask price
malformedPrice := `{"price": "abc"}`
var delta map[string]interface{}
json.Unmarshal([]byte(malformedPrice), &delta)
if _, ok := delta["price"];(ok && delta["price"] != "abc") {
t.Errorf("Expected price to be 'abc', but got %v", delta["price"])
}

// Test stale or out-of-order sequence updates
staleSequence := `{"sequence": 1}`
json.Unmarshal([]byte(staleSequence), &delta)
if _, ok := delta["sequence"];(ok && delta["sequence"] != 1) {
t.Errorf("Expected sequence to be 1, but got %v", delta["sequence"])
}

// Test preservation of current book after invalid delta
invalidDelta := `{"delta": "abc"}`
json.Unmarshal([]byte(invalidDelta), &delta)
if _, ok := delta["delta"];(ok && delta["delta"] != "abc") {
t.Errorf("Expected delta to be 'abc', but got %v", delta["delta"])
}
}