diff options
Diffstat (limited to 'Example/Core/Tests/FIRComponentTypeTest.m')
-rw-r--r-- | Example/Core/Tests/FIRComponentTypeTest.m | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/Example/Core/Tests/FIRComponentTypeTest.m b/Example/Core/Tests/FIRComponentTypeTest.m new file mode 100644 index 0000000..7076fdd --- /dev/null +++ b/Example/Core/Tests/FIRComponentTypeTest.m @@ -0,0 +1,60 @@ +// Copyright 2018 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 "FIRTestCase.h" + +#import <FirebaseCore/FIRComponentContainerInternal.h> +#import <FirebaseCore/FIRComponentType.h> + +#import "FIRTestComponents.h" + +@interface FIRComponentTypeTest : FIRTestCase + +@property(nonatomic, strong) id componentContainerMock; +@end + +@implementation FIRComponentTypeTest + +- (void)setUp { + [super setUp]; + _componentContainerMock = OCMClassMock([FIRComponentContainer class]); +} + +- (void)tearDown { + [super tearDown]; + [_componentContainerMock stopMocking]; +} + +- (void)testForwardsCallToContainer { + Protocol *testProtocol = @protocol(FIRTestProtocol); + OCMExpect([self.componentContainerMock instanceForProtocol:testProtocol]); + + // Grab an instance from the container, through ComponentType. + __unused id<FIRTestProtocol> instance = + [FIRComponentType<id<FIRTestProtocol>> instanceForProtocol:@protocol(FIRTestProtocol) + inContainer:self.componentContainerMock]; + OCMVerifyAll(self.componentContainerMock); +} + +- (void)testMacroForwardsCallToContainer { + Protocol *testProtocol = @protocol(FIRTestProtocol); + OCMExpect([self.componentContainerMock instanceForProtocol:testProtocol]); + + // Grab an instance from the container, through the macro that uses FIRComponentType. + __unused id<FIRTestProtocol> instance = + FIR_COMPONENT(FIRTestProtocol, self.componentContainerMock); + + OCMVerifyAll(self.componentContainerMock); +} +@end |