mirror of
https://github.com/logos-storage/swarmsim.git
synced 2026-01-02 13:53:07 +00:00
46 lines
1.2 KiB
Nim
46 lines
1.2 KiB
Nim
import unittest
|
|
|
|
import swarmsim/engine/message
|
|
import swarmsim/engine/eventdrivenengine
|
|
import swarmsim/engine/network
|
|
import swarmsim/engine/peer
|
|
import swarmsim/engine/protocol
|
|
|
|
import ../helpers/inbox
|
|
import ../helpers/types
|
|
|
|
suite "network":
|
|
|
|
test "should dispatch message to the correct peer":
|
|
|
|
let engine = EventDrivenEngine()
|
|
|
|
let i1 = Inbox(protocolId: "inbox", messageTypes: @["m"])
|
|
let i2 = Inbox(protocolId: "inbox", messageTypes: @["m"])
|
|
|
|
let p1 = Peer.new(protocols = @[Protocol i1])
|
|
let p2 = Peer.new(protocols = @[Protocol i2])
|
|
|
|
let network = Network.new(engine = engine, defaultLinkDelay = 20)
|
|
|
|
let m1: Message = FreelyTypedMessage(receiver: p1, messageType: "m")
|
|
let m2: Message = FreelyTypedMessage(receiver: p2, messageType: "m")
|
|
|
|
let message2handle = network.send(m2, linkDelay = uint64(10).some)
|
|
let message1handle = network.send(m1, linkDelay = uint64(5).some)
|
|
|
|
let noMessages: seq[Message] = @[]
|
|
|
|
check(i1.messages == noMessages)
|
|
check(i2.messages == noMessages)
|
|
|
|
message1Handle.doAwait()
|
|
|
|
check(i1.messages == @[m1])
|
|
check(i2.messages == noMessages)
|
|
|
|
message2Handle.doAwait()
|
|
|
|
check(i1.messages == @[m1])
|
|
check(i2.messages == @[m2])
|