aboutsummaryrefslogblamecommitdiff
path: root/src/test/scala/xyz/driver/pdsuicommon/db/SearchFilterExprSuite.scala
blob: ee467afa787ebbcf4d9ff98777432abe7335189e (plain) (tree)
1
                                 






























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

}