diff options
author | Fredrik Karlsson <bjorn.fredrik.karlsson@gmail.com> | 2016-06-14 13:12:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-14 13:12:56 +0200 |
commit | d564302c6d376da123f01028124b1702b13ad1ef (patch) | |
tree | 65931c0ceec1c9cd0a990c5b75963a08eaab4410 /platform/ios/test | |
parent | a557e1e2c9f76a9b01d2a973a9a162e14525a669 (diff) | |
download | qtlocation-mapboxgl-d564302c6d376da123f01028124b1702b13ad1ef.tar.gz |
[ios] fixes #5129 added annotation property to MGLAnnotationView (#5307)
Also added a test case for MGLAnnotationView
Diffstat (limited to 'platform/ios/test')
-rw-r--r-- | platform/ios/test/MGLAnnotationViewTests.m | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/platform/ios/test/MGLAnnotationViewTests.m b/platform/ios/test/MGLAnnotationViewTests.m new file mode 100644 index 0000000000..541c43b5a1 --- /dev/null +++ b/platform/ios/test/MGLAnnotationViewTests.m @@ -0,0 +1,62 @@ +#import <Mapbox/Mapbox.h> +#import <XCTest/XCTest.h> + +static NSString * const MGLTestAnnotationReuseIdentifer = @"MGLTestAnnotationReuseIdentifer"; + +@interface MGLTestAnnotation : NSObject <MGLAnnotation> +@property (nonatomic, assign) CLLocationCoordinate2D coordinate; +@end + +@implementation MGLTestAnnotation +@end + +@interface MGLAnnotationViewTests : XCTestCase <MGLMapViewDelegate> +@property (nonatomic) XCTestExpectation *expectation; +@property (nonatomic) MGLMapView *mapView; +@property (nonatomic, weak) MGLAnnotationView *annotationView; +@end + +@implementation MGLAnnotationViewTests + +- (void)setUp +{ + [super setUp]; + _mapView = [[MGLMapView alloc] initWithFrame:CGRectZero]; + _mapView.delegate = self; +} + +- (void)testAnnotationView +{ + _expectation = [self expectationWithDescription:@"annotation property"]; + + MGLTestAnnotation *annotation = [[MGLTestAnnotation alloc] init]; + [_mapView addAnnotation:annotation]; + + [self waitForExpectationsWithTimeout:1 handler:nil]; + + XCTAssert(_mapView.annotations.count == 1, @"number of annotations should be 1"); + XCTAssertNotNil(_annotationView.annotation, @"annotation property should not be nil"); + + [_mapView removeAnnotation:_annotationView.annotation]; + + XCTAssert(_mapView.annotations.count == 0, @"number of annotations should be 0"); + XCTAssertNil(_annotationView.annotation, @"annotation property should be nil"); +} + +- (MGLAnnotationView *)mapView:(MGLMapView *)mapView viewForAnnotation:(id<MGLAnnotation>)annotation +{ + MGLAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:MGLTestAnnotationReuseIdentifer]; + + if (!annotationView) + { + annotationView = [[MGLAnnotationView alloc] initWithReuseIdentifier:MGLTestAnnotationReuseIdentifer]; + } + + _annotationView = annotationView; + + [_expectation fulfill]; + + return annotationView; +} + +@end |