FIRInstallationsItemTests.m 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /*
  2. * Copyright 2019 Google
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #import <XCTest/XCTest.h>
  17. #import "FirebaseInstallations/Source/Library/FIRInstallationsItem.h"
  18. #import "FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.h"
  19. #import "FirebaseInstallations/Source/Tests/Utils/FIRInstallationsItem+Tests.h"
  20. @interface FIRInstallationsItemTests : XCTestCase
  21. @end
  22. // TODO: Add more tests.
  23. @implementation FIRInstallationsItemTests
  24. - (void)testInstallationsItemInit {
  25. NSString *appID = @"appID";
  26. NSString *name = @"name";
  27. FIRInstallationsItem *item = [[FIRInstallationsItem alloc] initWithAppID:appID
  28. firebaseAppName:name];
  29. XCTAssertEqualObjects(item.appID, appID);
  30. XCTAssertEqualObjects(item.firebaseAppName, name);
  31. }
  32. - (void)testItemUpdateWithStoredItem {
  33. // TODO: Implement.
  34. }
  35. - (void)testGenerateFID {
  36. NSString *FID1 = [FIRInstallationsItem generateFID];
  37. [self assertValidFID:FID1];
  38. NSString *FID2 = [FIRInstallationsItem generateFID];
  39. XCTAssertEqual(FID2.length, 22);
  40. [self assertValidFID:FID2];
  41. XCTAssertNotEqualObjects(FID1, FID2);
  42. }
  43. - (void)testValidate_InvalidItem {
  44. FIRInstallationsItem *unregisteredItem = [[FIRInstallationsItem alloc] initWithAppID:@""
  45. firebaseAppName:@""];
  46. NSError *validationError;
  47. XCTAssertFalse([unregisteredItem isValid:&validationError]);
  48. XCTAssertTrue(
  49. [validationError.localizedFailureReason containsString:@"`appID` must not be empty"]);
  50. XCTAssertTrue([validationError.localizedFailureReason
  51. containsString:@"`firebaseAppName` must not be empty"]);
  52. XCTAssertTrue([validationError.localizedFailureReason
  53. containsString:@"`firebaseInstallationID` must not be empty"]);
  54. XCTAssertTrue(
  55. [validationError.localizedFailureReason containsString:@"invalid `registrationStatus`"]);
  56. FIRInstallationsItem *registerredItem = [[FIRInstallationsItem alloc] initWithAppID:@""
  57. firebaseAppName:@""];
  58. registerredItem.registrationStatus = FIRInstallationStatusRegistered;
  59. XCTAssertFalse([registerredItem isValid:&validationError]);
  60. XCTAssertTrue(
  61. [validationError.localizedFailureReason containsString:@"`appID` must not be empty"]);
  62. XCTAssertTrue([validationError.localizedFailureReason
  63. containsString:@"`firebaseAppName` must not be empty"]);
  64. XCTAssertTrue([validationError.localizedFailureReason
  65. containsString:@"`firebaseInstallationID` must not be empty"]);
  66. XCTAssertTrue([validationError.localizedFailureReason
  67. containsString:@"registered installation must have non-empty `refreshToken`"]);
  68. XCTAssertTrue([validationError.localizedFailureReason
  69. containsString:@"registered installation must have non-empty `authToken.token`"]);
  70. XCTAssertTrue([validationError.localizedFailureReason
  71. containsString:@"registered installation must have non-empty `authToken.expirationDate`"]);
  72. }
  73. - (void)testValidate_ValidItem {
  74. FIRInstallationsItem *item = [FIRInstallationsItem createRegisteredInstallationItem];
  75. NSError *error;
  76. XCTAssertTrue([item isValid:&error]);
  77. XCTAssertNil(error);
  78. }
  79. - (void)assertValidFID:(NSString *)FID {
  80. XCTAssertEqual(FID.length, 22);
  81. XCTAssertFalse([FID containsString:@"/"]);
  82. XCTAssertFalse([FID containsString:@"+"]);
  83. }
  84. @end