aboutsummaryrefslogtreecommitdiffhomepage
path: root/Functions/Example/TestUtils
diff options
context:
space:
mode:
Diffstat (limited to 'Functions/Example/TestUtils')
-rw-r--r--Functions/Example/TestUtils/FUNFakeApp.h39
-rw-r--r--Functions/Example/TestUtils/FUNFakeApp.m71
-rw-r--r--Functions/Example/TestUtils/FUNFakeInstanceID.h34
-rw-r--r--Functions/Example/TestUtils/FUNFakeInstanceID.m33
4 files changed, 177 insertions, 0 deletions
diff --git a/Functions/Example/TestUtils/FUNFakeApp.h b/Functions/Example/TestUtils/FUNFakeApp.h
new file mode 100644
index 0000000..d07262b
--- /dev/null
+++ b/Functions/Example/TestUtils/FUNFakeApp.h
@@ -0,0 +1,39 @@
+/*
+ * 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 <Foundation/Foundation.h>
+
+@class FUNFakeOptions;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * FUNFakeApp is a mock app to use for tests.
+ */
+@interface FUNFakeApp : NSObject
+
+- (id)init NS_UNAVAILABLE;
+
+- (instancetype)initWithProjectID:(NSString *)projectID;
+
+- (instancetype)initWithProjectID:(NSString *)projectID
+ token:(NSString *_Nullable)token NS_DESIGNATED_INITIALIZER;
+
+@property(nonatomic, strong, readonly) FUNFakeOptions *options;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Functions/Example/TestUtils/FUNFakeApp.m b/Functions/Example/TestUtils/FUNFakeApp.m
new file mode 100644
index 0000000..5b31d01
--- /dev/null
+++ b/Functions/Example/TestUtils/FUNFakeApp.m
@@ -0,0 +1,71 @@
+/*
+ * 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 "FUNFakeApp.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FUNFakeOptions : NSObject
+
+@property(nonatomic, readonly, copy) NSString *projectID;
+
+- (id)init NS_UNAVAILABLE;
+
+- (instancetype)initWithProjectID:(NSString *)projectID NS_DESIGNATED_INITIALIZER;
+
+@end
+
+@implementation FUNFakeOptions
+
+- (instancetype)initWithProjectID:(NSString *)projectID {
+ self = [super init];
+ if (self) {
+ self->_projectID = [projectID copy];
+ }
+ return self;
+}
+
+@end
+
+@interface FUNFakeApp () {
+ NSString *_token;
+}
+@end
+
+@implementation FUNFakeApp
+
+- (instancetype)initWithProjectID:(NSString *)projectID {
+ return [self initWithProjectID:projectID token:nil];
+}
+
+- (instancetype)initWithProjectID:(NSString *)projectID token:(NSString *_Nullable)token {
+ self = [super init];
+ if (self) {
+ _options = [[FUNFakeOptions alloc] initWithProjectID:projectID];
+ _token = [token copy];
+ }
+ return self;
+}
+
+- (void)getTokenForcingRefresh:(BOOL)forceRefresh
+ withCallback:
+ (void (^)(NSString *_Nullable token, NSError *_Nullable error))callback {
+ callback(_token, nil);
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Functions/Example/TestUtils/FUNFakeInstanceID.h b/Functions/Example/TestUtils/FUNFakeInstanceID.h
new file mode 100644
index 0000000..9925410
--- /dev/null
+++ b/Functions/Example/TestUtils/FUNFakeInstanceID.h
@@ -0,0 +1,34 @@
+/*
+ * 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 <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * This FIRInstanceID is a mock instance ID provider to use for tests.
+ * Since FirebaseFunctions loads FIRInstanceID as a weak dependency by reflection, we just have to
+ * make a class with the same name.
+ */
+@interface FIRInstanceID : NSObject
+
++ (instancetype)instanceID;
+
+- (NSString *)token;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Functions/Example/TestUtils/FUNFakeInstanceID.m b/Functions/Example/TestUtils/FUNFakeInstanceID.m
new file mode 100644
index 0000000..a81e67a
--- /dev/null
+++ b/Functions/Example/TestUtils/FUNFakeInstanceID.m
@@ -0,0 +1,33 @@
+/*
+ * 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 "FUNFakeInstanceID.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation FIRInstanceID
+
++ (instancetype)instanceID {
+ return [[FIRInstanceID alloc] init];
+}
+
+- (NSString *)token {
+ return @"iid";
+}
+
+@end
+
+NS_ASSUME_NONNULL_END