diff options
author | Zsika Phillip <protocol86@users.noreply.github.com> | 2017-09-21 16:35:27 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-21 16:35:27 -0700 |
commit | f333bd5c188d553057c2dcc099b5da42edd1d495 (patch) | |
tree | 7f2925d9353c2fc6d267843500aac0077e7b176d /Example/Auth/Tests | |
parent | 93bcf42a0bf3254f57f948fcdf6411b9f4184f1e (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.m | 72 | ||||
-rw-r--r-- | Example/Auth/Tests/FIRUserTests.m | 25 |
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); |