Extract withScope

This commit is contained in:
Dale Wijnand 2017-10-06 17:41:06 +01:00
parent 9b526f54bf
commit 5b03379693
No known key found for this signature in database
GPG Key ID: 4F256E3D151DF5EF
1 changed files with 10 additions and 19 deletions

View File

@ -57,29 +57,20 @@ object BuildDSLInstances {
implicit def arbAttrKey[A: Manifest]: Arbitrary[AttributeKey[_]] =
Arbitrary(Gen.identifier map (AttributeKey[A](_)))
implicit def arbInputKey[A: Manifest]: Arbitrary[InputKey[A]] = Arbitrary {
val keyGen = Gen.identifier map (InputKey[A](_))
Gen.frequency(
def withScope[K <: Scoped.ScopingSetting[K]](keyGen: Gen[K]): Arbitrary[K] =
Arbitrary(Gen.frequency(
50 -> keyGen,
1 -> (for (key <- keyGen; scope <- arbitrary[Scope]) yield key in scope)
)
}
))
implicit def arbSettingKey[A: Manifest]: Arbitrary[SettingKey[A]] = Arbitrary {
val keyGen = Gen.identifier map (SettingKey[A](_))
Gen.frequency(
50 -> keyGen,
1 -> (for (key <- keyGen; scope <- arbitrary[Scope]) yield key in scope)
)
}
implicit def arbInputKey[A: Manifest]: Arbitrary[InputKey[A]] =
withScope(Gen.identifier map (InputKey[A](_)))
implicit def arbTaskKey[A: Manifest]: Arbitrary[TaskKey[A]] = Arbitrary {
val keyGen = Gen.identifier map (TaskKey[A](_))
Gen.frequency(
50 -> keyGen,
1 -> (for (key <- keyGen; scope <- arbitrary[Scope]) yield key in scope)
)
}
implicit def arbSettingKey[A: Manifest]: Arbitrary[SettingKey[A]] =
withScope(Gen.identifier map (SettingKey[A](_)))
implicit def arbTaskKey[A: Manifest]: Arbitrary[TaskKey[A]] =
withScope(Gen.identifier map (TaskKey[A](_)))
implicit def arbKey[A: Manifest]: Arbitrary[Key[_]] = Arbitrary {
Gen.frequency[Key[_]](