-
Notifications
You must be signed in to change notification settings - Fork 11
/
BSONValueFixtures.scala
114 lines (88 loc) · 3.46 KB
/
BSONValueFixtures.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package reactivemongo
import reactivemongo.api.bson._
object BSONValueFixtures {
val bsonDoubleFixtures =
List(BSONDouble(0D), BSONDouble(-2D), BSONDouble(12.34D))
val bsonStrFixtures = List(BSONString("foo"), BSONString("lorem"))
val bsonStrByteSizes = List(8, 10)
val bsonIntFixtures = List(BSONInteger(-1), BSONInteger(2345))
val bsonArrayFixtures = List(
BSONArray(bsonDoubleFixtures),
BSONArray(bsonStrFixtures),
BSONArray(bsonIntFixtures),
BSONArray(bsonIntFixtures ++ bsonStrFixtures),
BSONArray(BSONSymbol("foo"), BSONTimestamp(45678L))
)
val bsonArrayByteSizes = List(38, 29, 19, 43)
val bsonDocFixtures = List(
BSONDocument.empty,
BSONDocument("foo" -> "bar"),
BSONDocument("lorem" -> 2, "ipsum" -> "value"),
BSONDocument("ipsum" -> "value", "foo" -> 2D),
BSONDocument("_id" -> "unique", "values" -> BSONArray(bsonStrFixtures)),
BSONDocument(
"position" -> 1000,
"nested" -> BSONDocument("lorem" -> 2, "ipsum" -> "value")
)
)
val bsonDocByteSizes = List(5, 18, 33, 35, 58, 60)
val bsonBinFixtures = List(
BSONBinary(Array[Byte](0, 1, 2), Subtype.GenericBinarySubtype),
BSONBinary(Array[Byte](3, 4, 4), Subtype.FunctionSubtype),
BSONBinary(Array[Byte](4, 5, 6, 7, 8), Subtype.GenericBinarySubtype)
)
val bsonBinByteSizes = List(8, 8, 10)
val bsonOidFixtures = List(
BSONObjectID.generate(),
BSONObjectID.generate(),
BSONObjectID.generate()
)
val bsonBoolFixtures = List(BSONBoolean(false), BSONBoolean(true))
val bsonDateTimeFixtures = List(BSONDateTime(0L), BSONDateTime(123L))
val bsonRegexFixtures =
List(BSONRegex("/foo/bar/", "g"), BSONRegex("/LOREM/ipsum/", "i"))
val bsonRegexByteSizes = List(12, 16)
val bsonJSFixtures = List(
BSONJavaScript("foo()"),
BSONJavaScript("bar()"),
BSONJavaScript("lorem(0)")
)
val bsonJSByteSizes = List(10, 10, 13)
val bsonJSWsFixtures = List(
BSONJavaScriptWS("foo()", BSONDocument.empty),
BSONJavaScriptWS("bar", BSONDocument("bar" -> 1)),
BSONJavaScriptWS(
"lorem(0)",
BSONDocument("bolo" -> "v", "lorem" -> BSONJavaScript("i => i + 1"))
)
)
val bsonJSWSByteSizes = List(15, 22, 52)
val bsonTsFixtures = List(
BSONTimestamp(0L),
BSONTimestamp(1L),
BSONTimestamp(123L),
BSONTimestamp(45678L)
)
val bsonLongFixtures = List(BSONLong(-1L), BSONLong(0), BSONLong(12345L))
val bsonDecimalFixtures = List(
BSONDecimal.PositiveZero,
BSONDecimal.NegativeZero,
BSONDecimal.PositiveInf,
BSONDecimal.NegativeInf,
BSONDecimal.NaN,
BSONDecimal(0x3040000000000000L, 0x0000000000000001L),
BSONDecimal(-5746593124524752896L, -9223372036854775808L),
BSONDecimal(3476778912330022912L, 9223372036854775807L),
BSONDecimal(0x3040000000000000L, 0x000000e67a93c822L),
BSONDecimal(0x3036000000000000L, 0x0000000000003039L),
BSONDecimal(0x3032000000000000L, 0x0000000000003039L)
)
val bsonConstFixtures = List(BSONNull, BSONMinKey, BSONMaxKey)
lazy val bsonValueFixtures =
bsonDoubleFixtures ++ bsonStrFixtures ++ bsonIntFixtures ++ bsonArrayFixtures ++ bsonDocFixtures ++ bsonBinFixtures ++ bsonOidFixtures ++ bsonBoolFixtures ++ bsonDateTimeFixtures ++ bsonRegexFixtures ++ bsonJSFixtures ++ bsonJSWsFixtures ++ bsonTsFixtures ++ bsonLongFixtures ++ bsonDecimalFixtures
lazy val elementProducerFixtures: List[ElementProducer] =
bsonValueFixtures.collect {
case v =>
BSONElement(v.hashCode.toString, v)
}
}