diff options
author | Fabian Guerra Soto <fabian.guerra@mapbox.com> | 2018-03-26 15:22:54 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-26 15:22:54 -0400 |
commit | 9a663fb4799bedb85ca583d7f23a1a67277d220b (patch) | |
tree | 438e3c3fb733428d36bf0c99c7dc88d44027c387 /platform/darwin/test/MGLExpressionTests.mm | |
parent | 9eff2c52fb57c5cb1a1c813d3fb6a307bde12706 (diff) | |
download | qtlocation-mapboxgl-9a663fb4799bedb85ca583d7f23a1a67277d220b.tar.gz |
[ios, macos] Add match expressions support. (#11464)
* [ios, macos] Add match expressions support.
* [ios, macos] Add coalesce operator support.
* [ios, macos] Add coalesce operator test.
* [ios, macos] Match operator implementation is moved to NSPredicate.
* [ios, macos] Match operator function implementation refactor.
* [ios, macos] Address merge conflicts.
Diffstat (limited to 'platform/darwin/test/MGLExpressionTests.mm')
-rw-r--r-- | platform/darwin/test/MGLExpressionTests.mm | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/platform/darwin/test/MGLExpressionTests.mm b/platform/darwin/test/MGLExpressionTests.mm index 3f36a0cf61..ea5a1cd41c 100644 --- a/platform/darwin/test/MGLExpressionTests.mm +++ b/platform/darwin/test/MGLExpressionTests.mm @@ -572,6 +572,37 @@ using namespace std::string_literals; } } +- (void)testMatchExpressionObject { + { + NSExpression *expression = [NSExpression expressionWithFormat:@"FUNCTION(2 - 1, 'mgl_match:', %@, %@, %@, %@, 'default')", MGLConstantExpression(@1), + MGLConstantExpression(@"one"), + MGLConstantExpression(@0), + MGLConstantExpression(@"zero")]; + NSArray *jsonExpression = @[@"match", @[@"-", @2, @1], @1, @"one", @0, @"zero", @"default"]; + XCTAssertEqualObjects(expression.mgl_jsonExpressionObject, jsonExpression); + XCTAssertEqualObjects([NSExpression mgl_expressionWithJSONObject:jsonExpression], expression); + } + { + NSExpression *expression = [NSExpression expressionWithFormat:@"FUNCTION(2 * 1, 'mgl_match:', %@, %@, 'default')", MGLConstantExpression(@1), MGLConstantExpression(@"one")]; + NSArray *jsonExpression = @[@"match", @[@"*", @2, @1], @1, @"one", @"default"]; + XCTAssertEqualObjects(expression.mgl_jsonExpressionObject, jsonExpression); + XCTAssertEqualObjects([NSExpression mgl_expressionWithJSONObject:jsonExpression], expression); + } +} + +- (void)testCoalesceExpressionObject { + { + NSExpression *expression = [NSExpression expressionWithFormat:@"FUNCTION(%@, 'mgl_coalesce')", @[[NSExpression expressionForKeyPath:@"x"], + [NSExpression expressionForKeyPath:@"y"], + [NSExpression expressionForKeyPath:@"z"], + [NSExpression expressionForConstantValue:@0]]]; + NSArray *jsonExpression = @[@"coalesce", @[@"get", @"x"], @[@"get", @"y"], @[@"get", @"z"], @0]; + XCTAssertEqualObjects(expression.mgl_jsonExpressionObject, jsonExpression); + XCTAssertEqualObjects([NSExpression mgl_expressionWithJSONObject:jsonExpression], expression); + } + +} + - (void)testConditionalExpressionObject { { NSExpression *expression = [NSExpression expressionWithFormat:@"FUNCTION(%@, 'mgl_case:', %@, %@)", |