swarmsim/tests/helpers/testpeer.nim

31 lines
642 B
Nim

import std/options
import swarmsim/engine
import swarmsim/engine/peer
import ./inbox
type TestPeer* = ref object of Peer
network: Network
proc new*(
t: typedesc[TestPeer],
network: Network,
peerId: Option[int] = none(int),
): TestPeer =
let peer: TestPeer = TestPeer(network: network)
discard peer.initPeer(
protocols = @[Protocol Inbox(
protocolId: Inbox.typeId,
messageTypes: @["*"]
)
])
peer
proc inbox*(peer: TestPeer): Inbox =
Inbox peer.getProtocol(Inbox.typeId).get()
proc send*(self: TestPeer, msg: Message): ScheduledEvent =
msg.sender = Peer(self).some
self.network.send(msg)