func testTranslateComplexGroupedQueryPredicateScenario1()

in AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginTests/Core/SQLStatementTests.swift [649:685]


    func testTranslateComplexGroupedQueryPredicateScenario1() {
        let post = Post.keys

        let predicate = post.id != nil
            && post.draft == true
            && post.rating > 0
            && post.rating.between(start: 2, end: 4)
            && post.status != PostStatus.draft
            && post.updatedAt == nil
            && (post.content ~= "gelato" || post.title.beginsWith("ice cream"))

        let statement = ConditionStatement(modelSchema: Post.schema, predicate: predicate)

        XCTAssertEqual("""
          and (
            "id" is not null
            and "draft" = ?
            and "rating" > ?
            and "rating" between ? and ?
            and "status" <> ?
            and "updatedAt" is null
            and (
              "content" like ?
              or "title" like ?
            )
          )
        """, statement.stringValue)

        let variables = statement.variables
        XCTAssertEqual(variables[0] as? Int, 1)
        XCTAssertEqual(variables[1] as? Int, 0)
        XCTAssertEqual(variables[2] as? Int, 2)
        XCTAssertEqual(variables[3] as? Int, 4)
        XCTAssertEqual(variables[4] as? String, PostStatus.draft.rawValue)
        XCTAssertEqual(variables[5] as? String, "%gelato%")
        XCTAssertEqual(variables[6] as? String, "ice cream%")
    }