Skip to content

Commit

Permalink
ETCM-207: Create DiscoveryKademliaIntegrationSpec.
Browse files Browse the repository at this point in the history
  • Loading branch information
aakoshh committed Oct 19, 2020
1 parent 11a62e4 commit ad80554
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 1 deletion.
5 changes: 4 additions & 1 deletion build.sc
Expand Up @@ -110,7 +110,10 @@ object scalanet extends ScalanetModule with PublishModule {
override def moduleDeps: Seq[JavaModule] =
super.moduleDeps ++ Seq(scalanet.test)
}
object it extends TestModule
object it extends TestModule {
override def moduleDeps: Seq[JavaModule] =
super.moduleDeps ++ Seq(scalanet.test, scalanet.discovery.test)
}
}

object examples extends SubModule {
Expand Down
@@ -0,0 +1,40 @@
package io.iohk.scalanet.discovery.ethereum.v4

import io.iohk.scalanet.kademlia.KademliaIntegrationSpec
import io.iohk.scalanet.discovery.ethereum.Node
import io.iohk.scalanet.discovery.ethereum.v4.mocks.MockSigAlg
import monix.eval.Task
import io.iohk.scalanet.discovery.crypto.SigAlg
import io.iohk.scalanet.NetUtils
import scodec.bits.BitVector
import io.iohk.scalanet.kademlia.XorOrdering
import cats.effect.Resource

class DiscoveryKademliaIntegrationSpec extends KademliaIntegrationSpec("DiscoveryService with StaticUDPPeerGroup") {
override type PeerRecord = Node

class DiscoveryTestNode(
override val self: Node,
service: DiscoveryService
) extends TestNode {
override def getPeers: Task[Seq[Node]] =
service.getNodes.map(_.toSeq)
}

implicit val sigalg: SigAlg = new MockSigAlg()

override def generatePeerRecord(): Node = {
val address = NetUtils.aRandomAddress
val (publicKey, _) = sigalg.newKeyPair
Node(publicKey, Node.Address(address.getAddress, address.getPort, address.getPort))
}

override def makeXorOrdering(baseId: BitVector): Ordering[Node] =
XorOrdering[Node](baseId)(_.id)

override def startNode(
selfRecord: PeerRecord,
initialNodes: Set[PeerRecord],
testConfig: TestNodeKademliaConfig
): Resource[Task, TestNode] = ???
}

0 comments on commit ad80554

Please sign in to comment.