summaryrefslogtreecommitdiff
path: root/platform/ios/test
diff options
context:
space:
mode:
authorFredrik Karlsson <bjorn.fredrik.karlsson@gmail.com>2016-06-14 13:12:56 +0200
committerGitHub <noreply@github.com>2016-06-14 13:12:56 +0200
commitd564302c6d376da123f01028124b1702b13ad1ef (patch)
tree65931c0ceec1c9cd0a990c5b75963a08eaab4410 /platform/ios/test
parenta557e1e2c9f76a9b01d2a973a9a162e14525a669 (diff)
downloadqtlocation-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.m62
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