aboutsummaryrefslogtreecommitdiffhomepage
path: root/Example/Auth/Tests
diff options
context:
space:
mode:
authorGravatar Zsika Phillip <protocol86@users.noreply.github.com>2017-09-21 16:35:27 -0700
committerGravatar GitHub <noreply@github.com>2017-09-21 16:35:27 -0700
commitf333bd5c188d553057c2dcc099b5da42edd1d495 (patch)
tree7f2925d9353c2fc6d267843500aac0077e7b176d /Example/Auth/Tests
parent93bcf42a0bf3254f57f948fcdf6411b9f4184f1e (diff)
User meta data (#292)
* Add user metadata * Small improvements * Addresses comments * Fixes broken tests Adds FIRUserMetadata to unbrella file.
Diffstat (limited to 'Example/Auth/Tests')
-rw-r--r--Example/Auth/Tests/FIRUserMetadataTests.m72
-rw-r--r--Example/Auth/Tests/FIRUserTests.m25
2 files changed, 94 insertions, 3 deletions
diff --git a/Example/Auth/Tests/FIRUserMetadataTests.m b/Example/Auth/Tests/FIRUserMetadataTests.m
new file mode 100644
index 0000000..5d9fc16
--- /dev/null
+++ b/Example/Auth/Tests/FIRUserMetadataTests.m
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2017 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 <XCTest/XCTest.h>
+
+#import "FIRUserMetadata_Internal.h"
+
+/** @var kCreationDateInSeconds
+ @brief The fake creation date.
+ */
+static NSTimeInterval const kCreationDateTimeIntervalInSeconds = 1505858500;
+
+/** @var kLastSignInDateTimeIntervalInSeconds
+ @brief The fake last sign in date date.
+ */
+static NSTimeInterval const kLastSignInDateTimeIntervalInSeconds = 1505858583;
+
+/** @class FIRUserMetadataTests
+ @brief Tests for @c FIRUserMetadata.
+ */
+@interface FIRUserMetadataTests : XCTestCase
+
+@end
+
+@implementation FIRUserMetadataTests
+
+/** @fn testUserMetadataCreation
+ @brief Tests succuessful creation of a @c FIRUserMetadata object.
+ */
+- (void)testUserMetadataCreation {
+ NSDate *creationDate = [NSDate dateWithTimeIntervalSince1970:kCreationDateTimeIntervalInSeconds];
+ NSDate *lastSignInDate =
+ [NSDate dateWithTimeIntervalSince1970:kLastSignInDateTimeIntervalInSeconds];
+ FIRUserMetadata *userMetadata =
+ [[FIRUserMetadata alloc]initWithCreationDate:creationDate lastSignInDate:lastSignInDate];
+ XCTAssertEqualObjects(userMetadata.creationDate, creationDate);
+ XCTAssertEqualObjects(userMetadata.lastSignInDate, lastSignInDate);
+}
+
+/** @fn testUserMetadataCoding
+ @brief Tests succuessful archiving and unarchiving of a @c FIRUserMetadata object.
+ */
+- (void)testUserMetadataCoding {
+ NSDate *creationDate = [NSDate dateWithTimeIntervalSince1970:kCreationDateTimeIntervalInSeconds];
+ NSDate *lastSignInDate =
+ [NSDate dateWithTimeIntervalSince1970:kLastSignInDateTimeIntervalInSeconds];
+ FIRUserMetadata *userMetadata =
+ [[FIRUserMetadata alloc]initWithCreationDate:creationDate lastSignInDate:lastSignInDate];
+ NSData *data = [NSKeyedArchiver archivedDataWithRootObject:userMetadata];
+ XCTAssertNotNil(data, @"Should not be nil if archving succeeded.");
+ XCTAssertNoThrow([NSKeyedUnarchiver unarchiveObjectWithData:data],
+ @"Unarchiving should not throw an exception");
+ FIRUserMetadata *unArchivedUserMetadata = [NSKeyedUnarchiver unarchiveObjectWithData:data];
+ XCTAssertTrue([unArchivedUserMetadata isKindOfClass:[FIRUserMetadata class]]);
+ XCTAssertEqualObjects(unArchivedUserMetadata.creationDate, creationDate);
+ XCTAssertEqualObjects(unArchivedUserMetadata.lastSignInDate, lastSignInDate);
+}
+
+@end
diff --git a/Example/Auth/Tests/FIRUserTests.m b/Example/Auth/Tests/FIRUserTests.m
index a0a2644..7dc6ecd 100644
--- a/Example/Auth/Tests/FIRUserTests.m
+++ b/Example/Auth/Tests/FIRUserTests.m
@@ -25,14 +25,15 @@
#import "FirebaseCommunity/FIRAdditionalUserInfo.h"
#import "FirebaseCommunity/FIRAuth.h"
#import "FIRAuthErrorUtils.h"
-#import "FIRAuthGlobalWorkQueue.h"
-#import "FIRUser_Internal.h"
-#import "FIRUserInfo.h"
#import "FIRAuthBackend.h"
+#import "FIRAuthGlobalWorkQueue.h"
#import "FIRGetAccountInfoRequest.h"
#import "FIRGetAccountInfoResponse.h"
#import "FIRSetAccountInfoRequest.h"
#import "FIRSetAccountInfoResponse.h"
+#import "FIRUser_Internal.h"
+#import "FIRUserInfo.h"
+#import "FIRUserMetadata.h"
#import "FIRVerifyAssertionResponse.h"
#import "FIRVerifyAssertionRequest.h"
#import "FIRVerifyPasswordRequest.h"
@@ -215,6 +216,16 @@ static NSString *const kVerificationID = @"55432";
*/
static NSString *const kUserArchiverKey = @"userArchiverKey";
+/** @var kCreationDateInSeconds
+ @brief The fake creation date.
+ */
+static NSTimeInterval const kCreationDateTimeIntervalInSeconds = 1505858500;
+
+/** @var kLastSignInDateTimeIntervalInSeconds
+ @brief The fake last sign in date date.
+ */
+static NSTimeInterval const kLastSignInDateTimeIntervalInSeconds = 1505858583;
+
/** @var kExpectationTimeout
@brief The maximum time waiting for expectations to fulfill.
*/
@@ -302,6 +313,10 @@ static const NSTimeInterval kExpectationTimeout = 1;
OCMStub([mockGetAccountInfoResponseUser emailVerified]).andReturn(YES);
OCMStub([mockGetAccountInfoResponseUser displayName]).andReturn(kGoogleDisplayName);
OCMStub([mockGetAccountInfoResponseUser photoURL]).andReturn([NSURL URLWithString:kPhotoURL]);
+ OCMStub([mockGetAccountInfoResponseUser creationDate]).
+ andReturn([NSDate dateWithTimeIntervalSince1970:kCreationDateTimeIntervalInSeconds]);
+ OCMStub([mockGetAccountInfoResponseUser lastLoginDate]).
+ andReturn([NSDate dateWithTimeIntervalSince1970:kLastSignInDateTimeIntervalInSeconds]);
NSArray *providerUserInfos = @[
#if TARGET_OS_IOS
mockPhoneUserInfo,
@@ -322,6 +337,10 @@ static const NSTimeInterval kExpectationTimeout = 1;
XCTAssertEqualObjects(user.displayName, kGoogleDisplayName);
XCTAssertEqualObjects(user.photoURL, [NSURL URLWithString:kPhotoURL]);
XCTAssertEqualObjects(user.email, kEmail);
+ XCTAssertEqualObjects(user.metadata.creationDate,
+ [NSDate dateWithTimeIntervalSince1970:kCreationDateTimeIntervalInSeconds]);
+ XCTAssertEqualObjects(user.metadata.lastSignInDate,
+ [NSDate dateWithTimeIntervalSince1970:kLastSignInDateTimeIntervalInSeconds]);
// Verify FIRUser properties besides providerData contents.
XCTAssertFalse(user.anonymous);