package aecor.tests import aecor.data.{ EventTag, Tagging } import org.scalacheck.Prop.forAll import org.scalacheck.{ Gen, Properties } class TaggingTest extends Properties("Tagging") { property("Const Tagging") = { val tagging = Tagging.const[Int](EventTag("foo")) forAll { x: Int => tagging.tag(x) == Set(EventTag("foo")) } } property("Partitioned Tagging") = forAll(Gen.posNum[Int]) { partitionCount => val tagging = Tagging.partitioned[Int](partitionCount)(EventTag("")) forAll { x: Int => tagging.tags.contains(tagging.tag(x).head) } tagging.tags.size == partitionCount } }