Browse Source

Add tests for GDTCORPlatform (#4972)

* add GDTCORPlatformTest

* styled

* tests changes

* add endbackgroundtest assert
Doudou Nan 6 years ago
parent
commit
dd242dc243
1 changed files with 81 additions and 0 deletions
  1. 81 0
      GoogleDataTransport/GDTCORTests/Unit/GDTCORPlatformTest.m

+ 81 - 0
GoogleDataTransport/GDTCORTests/Unit/GDTCORPlatformTest.m

@@ -0,0 +1,81 @@
+/*
+ * Copyright 2020 Google
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import <GoogleDataTransport/GDTCORPlatform.h>
+#import <GoogleDataTransport/GDTCORReachability.h>
+
+#import "GDTCORTests/Unit/GDTCORTestCase.h"
+
+@interface GDTCORPlatformTest : GDTCORTestCase
+
+@end
+
+@implementation GDTCORPlatformTest
+
+/** Tests the reachability of mobile network connection in current platform. */
+- (void)testMobileConnectionReachability {
+  SCNetworkReachabilityFlags reachabilityFlags;
+  XCTAssertNoThrow(reachabilityFlags = [GDTCORReachability currentFlags]);
+  XCTAssertNotEqual(reachabilityFlags, 0);
+  // The mobile network connection should be always false in simulator logic test.
+  XCTAssertFalse(GDTCORReachabilityFlagsContainWWAN(reachabilityFlags));
+}
+
+/** Tests network connection type message generating in current platform. */
+- (void)testGetNetworkConnectionType {
+  NSInteger networkConnectionType;
+  XCTAssertNoThrow(networkConnectionType = GDTCORNetworkTypeMessage());
+  // The network connection type should be always WIFI in simulator logic test.
+  XCTAssertEqual(networkConnectionType, GDTCORNetworkTypeWIFI);
+}
+
+/** Tests mobile network connection subtype generating in current platform. */
+- (void)testGetNetworkMobileSubtype {
+  NSInteger networkMobileSubtype;
+  XCTAssertNoThrow(networkMobileSubtype = GDTCORNetworkMobileSubTypeMessage());
+  // The network connection moblie subtype should be always UNKNOWN in simulator logic test.
+  XCTAssertEqual(networkMobileSubtype, GDTCORNetworkMobileSubtypeUNKNOWN);
+}
+
+/** Tests the designated initializer of GDTCORApplication. */
+- (void)testInitializeGDTCORApplication {
+  GDTCORApplication *application;
+  XCTAssertNoThrow(application = [[GDTCORApplication alloc] init]);
+  XCTAssertNotNil(application);
+  XCTAssertFalse(application.isRunningInBackground);
+}
+
+/** Tests the sharedApplication generating of GDTCORApplication. */
+- (void)testGenerateSharedGDTCORApplication {
+  GDTCORApplication *application;
+  XCTAssertNoThrow(application = [GDTCORApplication sharedApplication]);
+  XCTAssertNotNil(application);
+}
+
+/** Tests background task creating of GDTCORApplication. */
+- (void)testGDTCORApplicationBeginBackgroundTask {
+  GDTCORApplication *application;
+  application = [[GDTCORApplication alloc] init];
+  __block GDTCORBackgroundIdentifier bgID;
+  XCTAssertNoThrow(bgID = [application beginBackgroundTaskWithName:@"GDTCORPlatformTest"
+                                                 expirationHandler:^{
+                                                   [application endBackgroundTask:bgID];
+                                                   bgID = GDTCORBackgroundIdentifierInvalid;
+                                                 }]);
+  XCTAssertNoThrow([application endBackgroundTask:bgID]);
+}
+
+@end