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%")
}