Skip to content

Commit

Permalink
Move attachPostProcessor to TyphoonAssembly protocol.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jasper Blues committed Apr 21, 2015
1 parent baea9c9 commit a9086bc
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 13 deletions.
10 changes: 10 additions & 0 deletions Source/Factory/Assembly/TyphoonAssembly.m
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,16 @@ - (void)makeDefault
[_factory makeDefault];
}

- (void)attachPostProcessor:(id<TyphoonDefinitionPostProcessor>)postProcessor
{
if (!_factory) {
[NSException raise:NSInternalInconsistencyException
format:@"attachPostProcessor: requires the assembly to be activated."];
}
[_factory attachPostProcessor:postProcessor];
}



//-------------------------------------------------------------------------------------------
#pragma mark - Interface Methods
Expand Down
12 changes: 6 additions & 6 deletions Source/Factory/TyphoonComponentFactory.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,12 @@

- (void)makeDefault;

/**
Attach a TyphoonComponentFactoryPostProcessor to this component factory.
@param postProcessor The post-processor to attach.
*/
- (void)attachPostProcessor:(id <TyphoonDefinitionPostProcessor>)postProcessor;

@end

/**
Expand Down Expand Up @@ -160,11 +166,5 @@

- (void)enumerateDefinitions:(void(^)(TyphoonDefinition *definition, NSUInteger index, TyphoonDefinition **definitionToReplace, BOOL *stop))block;

/**
Attach a TyphoonComponentFactoryPostProcessor to this component factory.
@param postProcessor The post-processor to attach.
*/
- (void)attachPostProcessor:(id <TyphoonDefinitionPostProcessor>)postProcessor;


@end
24 changes: 18 additions & 6 deletions Tests/Factory/Assembly/TyphoonAssemblyTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ - (void)test_activated_assembly_returns_activated_collaborators
XCTAssertTrue([quest conformsToProtocol:@protocol(Quest)]);
}

- (void)test_non_activated_assembly_raises_exception_when_invoking_TyphoonComponentFactory_componentForType
- (void)test_before_activation_raises_exception_when_invoking_TyphoonComponentFactory_componentForType
{
@try {
MiddleAgesAssembly *assembly = [MiddleAgesAssembly assembly];
Expand All @@ -53,7 +53,7 @@ - (void)test_non_activated_assembly_raises_exception_when_invoking_TyphoonCompon
}
}

- (void)test_non_activated_assembly_raises_exception_when_invoking_TyphoonComponentFactory_allComponentsForType
- (void)test_before_activation_raises_exception_when_invoking_TyphoonComponentFactory_allComponentsForType
{
@try {
MiddleAgesAssembly *assembly = [MiddleAgesAssembly assembly];
Expand All @@ -65,7 +65,7 @@ - (void)test_non_activated_assembly_raises_exception_when_invoking_TyphoonCompon
}
}

- (void)test_non_activated_assembly_raises_exception_when_invoking_TyphoonComponentFactory_componentForKey
- (void)test_before_activation_raises_exception_when_invoking_TyphoonComponentFactory_componentForKey
{
@try {
MiddleAgesAssembly *assembly = [MiddleAgesAssembly assembly];
Expand All @@ -77,7 +77,7 @@ - (void)test_non_activated_assembly_raises_exception_when_invoking_TyphoonCompon
}
}

- (void)test_non_activated_assembly_raises_exception_when_invoking_TyphoonComponentFactory_inject
- (void)test_before_activation_raises_exception_when_invoking_TyphoonComponentFactory_inject
{
@try {
MiddleAgesAssembly *assembly = [MiddleAgesAssembly assembly];
Expand All @@ -89,7 +89,7 @@ - (void)test_non_activated_assembly_raises_exception_when_invoking_TyphoonCompon
}
}

- (void)test_non_activated_assembly_raises_exception_when_invoking_TyphoonComponentFactory_inject_withSelector
- (void)test_before_activation_raises_exception_when_invoking_TyphoonComponentFactory_inject_withSelector
{
@try {
MiddleAgesAssembly *assembly = [MiddleAgesAssembly assembly];
Expand All @@ -101,7 +101,7 @@ - (void)test_non_activated_assembly_raises_exception_when_invoking_TyphoonCompon
}
}

- (void)test_non_activated_assembly_raises_exception_when_invoking_TyphoonComponentFactory_makeDefault
- (void)test_before_activation_raises_exception_when_invoking_TyphoonComponentFactory_makeDefault
{
@try {
MiddleAgesAssembly *assembly = [MiddleAgesAssembly assembly];
Expand All @@ -113,6 +113,18 @@ - (void)test_non_activated_assembly_raises_exception_when_invoking_TyphoonCompon
}
}

- (void)test_before_activation_raises_exception_when_invoking_attachPostProcessor
{
@try {
MiddleAgesAssembly *assembly = [MiddleAgesAssembly assembly];
[assembly attachPostProcessor:nil];
XCTFail(@"Should have thrown exception");
}
@catch (NSException *e) {
XCTAssertEqualObjects(@"attachPostProcessor: requires the assembly to be activated.", [e description]);
}
}

- (void)test_after_activation_TyphoonComponentFactory_methods_are_available
{
MiddleAgesAssembly *assembly = [MiddleAgesAssembly assembly];
Expand Down
2 changes: 1 addition & 1 deletion Typhoon.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |spec|
spec.name = 'Typhoon'
spec.version = '3.0.3'
spec.version = '3.1.0'
spec.license = 'Apache2.0'
spec.summary = 'Dependency injection for Objective-C and Swift. Light-weight, yet flexible and full-featured.'
spec.homepage = 'http://www.typhoonframework.org'
Expand Down

0 comments on commit a9086bc

Please sign in to comment.