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
|
package xyz.driver.pdsuicommon.db
import org.scalatest.{FreeSpecLike, MustMatchers}
class SearchFilterExprSuite extends FreeSpecLike with MustMatchers {
"replace" - {
"all entities are changed" in {
val ast = SearchFilterExpr.Union(Seq(
SearchFilterExpr.Intersection(Seq(
SearchFilterExpr.Atom.Binary("foo", SearchFilterBinaryOperation.Gt, "10"),
SearchFilterExpr.Atom.Binary("foo", SearchFilterBinaryOperation.Lt, "20")
)),
SearchFilterExpr.Atom.NAry("bar", SearchFilterNAryOperation.In, Seq("x", "y", "z")),
SearchFilterExpr.Atom.Binary("foo", SearchFilterBinaryOperation.Eq, "40")
))
val newAst = ast.replace {
case x: SearchFilterExpr.Atom.Binary if x.dimension.name == "foo" =>
x.copy(dimension = x.dimension.copy(name = "bar"))
}
val result = newAst.find {
case x: SearchFilterExpr.Atom.Binary => x.dimension.name == "foo"
case _ => false
}
result mustBe empty
}
}
}
|