aboutsummaryrefslogblamecommitdiff
path: root/src/test/scala/xyz/driver/pdsuicommon/db/SearchFilterExprSuite.scala
blob: 35c8d304961ca143304e8eef49b9d1f53a7fcdf2 (plain) (tree)
1
2
3
4
5
6
7
8
                                 






                                                                    









                                                                                              







                                                                            
                                                     






                         
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
    }
  }

}