summaryrefslogtreecommitdiff
path: root/platform/ios/Integration Tests/MGLEmptyStopsTests.m
blob: 80a46aea6e14ee2bd83e84e7f9933e0eeddd09ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#import "MGLMapViewIntegrationTest.h"

@interface MGLEmptyStopsTests : MGLMapViewIntegrationTest

@end

@implementation MGLEmptyStopsTests


- (void)testEmptyStops {
    // From https://www.mapbox.com/ios-sdk/examples/dds-circle-layer/
    self.mapView.centerCoordinate = CLLocationCoordinate2DMake(38.897,-77.039);
    self.mapView.zoomLevel = 10.5;

    // "mapbox://examples.2uf7qges" is a map ID referencing a tileset. For more
    // more information, see mapbox.com/help/define-map-id/
    MGLSource *source = [[MGLVectorTileSource alloc] initWithIdentifier:@"trees" configurationURL:[NSURL URLWithString:@"mapbox://examples.2uf7qges"]];

    [self.mapView.style addSource:source];

    MGLCircleStyleLayer *layer = [[MGLCircleStyleLayer alloc] initWithIdentifier: @"tree-style" source:source];

    // The source name from the source's TileJSON metadata: mapbox.com/api-documentation/#retrieve-tilejson-metadata
    layer.sourceLayerIdentifier = @"yoshino-trees-a0puw5";

    {
        NSExpression *interpExpression = [NSExpression mgl_expressionForInterpolatingExpression:NSExpression.zoomLevelVariableExpression
                                                                                  withCurveType:MGLExpressionInterpolationModeLinear
                                                                                     parameters:nil
                                                                                          stops:[NSExpression expressionForConstantValue:@{}]];

        @try {
            layer.circleColor = interpExpression;
            XCTFail();
        }
        @catch (NSException *exception) {
            XCTAssertNotNil(exception);
            XCTAssert(exception.name == NSInvalidArgumentException);
        }
    }

    {
        NSExpression *steppingExpression = [NSExpression mgl_expressionForSteppingExpression:NSExpression.zoomLevelVariableExpression
                                                                              fromExpression:[NSExpression expressionForConstantValue:[UIColor greenColor]]
                                                                                       stops:[NSExpression expressionForConstantValue:@{}]];

        @try {
            layer.circleColor = steppingExpression;
            XCTFail();
        }
        @catch (NSException *exception) {
            XCTAssertNotNil(exception);
            XCTAssert(exception.name == NSInvalidArgumentException);
        }
    }

    [self.mapView.style addLayer:layer];
    [self waitForMapViewToBeRenderedWithTimeout:5.0];
}

@end