Skip to content

Commit 3564b01

Browse files
committed
Add GIDFakeAuthorizationFlowProcessor
1 parent ec80960 commit 3564b01

File tree

2 files changed

+79
-0
lines changed

2 files changed

+79
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/*
2+
* Copyright 2023 Google LLC
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+
17+
#import <Foundation/Foundation.h>
18+
19+
#import "GoogleSignIn/Sources/GIDAuthorizationFlowProcessor/API/GIDAuthorizationFlowProcessor.h"
20+
21+
NS_ASSUME_NONNULL_BEGIN
22+
23+
/// The block which provides the response for the method `startWithOptions:emmSupport:completion:`.
24+
///
25+
/// @param data The OIDAuthorizationResponse object returned if succeed,
26+
/// @param error The error returned if failed.
27+
typedef void(^GIDAuthorizationFlowProcessorFakeResponseProviderBlock)
28+
(OIDAuthorizationResponse *_Nullable authorizationResponse, NSError *_Nullable error);
29+
30+
/// The block to set up data based on the input request for the method
31+
/// `startWithOptions:emmSupport:completion:`.
32+
///
33+
/// @param responseProvider The block which provides the response.
34+
typedef void (^GIDAuthorizationFlowProcessorTestBlock)
35+
(GIDAuthorizationFlowProcessorFakeResponseProviderBlock responseProvider);
36+
37+
@interface GIDFakeAuthorizationFlowProcessor : NSObject <GIDAuthorizationFlowProcessor>
38+
39+
/// Set the test block which provides the response value.
40+
- (void)setTestBlock:(GIDAuthorizationFlowProcessorTestBlock)block;
41+
42+
@end
43+
44+
NS_ASSUME_NONNULL_END
45+
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#import "GoogleSignIn/Sources/GIDAuthorizationFlowProcessor/Implementations/Fakes/GIDFakeAuthorizationFlowProcessor.h"
2+
3+
@interface GIDFakeAuthorizationFlowProcessor ()
4+
5+
@property(nonatomic) GIDAuthorizationFlowProcessorTestBlock testBlock;
6+
7+
@end
8+
9+
@implementation GIDFakeAuthorizationFlowProcessor
10+
11+
- (void)startWithOptions:(GIDSignInInternalOptions *)options
12+
emmSupport:(nullable NSString *)emmSupport
13+
completion:(void (^)(OIDAuthorizationResponse *_Nullable authorizationResponse,
14+
NSError *_Nullable error))completion {
15+
NSAssert(self.testBlock != nil, @"Set the test block before invoking this method.");
16+
self.testBlock(^(OIDAuthorizationResponse *authorizationResponse, NSError *error) {
17+
completion(authorizationResponse, error);
18+
});
19+
}
20+
21+
/// Not used in test for now.
22+
- (BOOL)isStarted {
23+
return YES;
24+
}
25+
26+
/// Not used in test for now.
27+
- (BOOL)resumeExternalUserAgentFlowWithURL:(NSURL *)url {
28+
return YES;
29+
}
30+
31+
/// Not used in test for now.
32+
- (void)cancelAuthenticationFlow {}
33+
34+
@end

0 commit comments

Comments
 (0)