Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Unified Diff: third_party/ocmock/OCMock/OCObserverMockObject.m

Issue 2624143003: Update OCMock to 3.1.5 (Closed)
Patch Set: Patches in more commits Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/ocmock/OCMock/OCObserverMockObject.h ('k') | third_party/ocmock/OCMock/OCPartialMockObject.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/ocmock/OCMock/OCObserverMockObject.m
diff --git a/third_party/ocmock/OCMock/OCObserverMockObject.m b/third_party/ocmock/OCMock/OCObserverMockObject.m
index 74be80da05640a5ba5770cefec7ae8ffae9417b4..c02c8acd7cd26102a1586c435de02e6207682d4c 100644
--- a/third_party/ocmock/OCMock/OCObserverMockObject.m
+++ b/third_party/ocmock/OCMock/OCObserverMockObject.m
@@ -1,10 +1,23 @@
-//---------------------------------------------------------------------------------------
-// $Id$
-// Copyright (c) 2009 by Mulle Kybernetik. See License file for details.
-//---------------------------------------------------------------------------------------
+/*
+ * Copyright (c) 2009-2015 Erik Doernenburg and contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
+ * not use these files 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 "OCObserverMockObject.h"
#import "OCMObserverRecorder.h"
+#import "OCMLocation.h"
+#import "OCMFunctions.h"
@implementation OCObserverMockObject
@@ -13,13 +26,25 @@
- (id)init
{
- self = [super init];
- recorders = [[NSMutableArray alloc] init];
+ if ((self = [super init]))
+ {
+ recorders = [[NSMutableArray alloc] init];
+ centers = [[NSMutableArray alloc] init];
+ }
+
return self;
}
+- (id)retain
+{
+ return [super retain];
+}
+
- (void)dealloc
{
+ for(NSNotificationCenter *c in centers)
+ [c removeObserver:self];
+ [centers release];
[recorders release];
[super dealloc];
}
@@ -34,6 +59,11 @@
expectationOrderMatters = flag;
}
+- (void)autoRemoveFromCenter:(NSNotificationCenter *)aCenter
+{
+ [centers addObject:aCenter];
+}
+
#pragma mark Public API
@@ -46,19 +76,33 @@
- (void)verify
{
- if([recorders count] == 1)
- {
- [NSException raise:NSInternalInconsistencyException format:@"%@: expected notification was not observed: %@",
- [self description], [[recorders lastObject] description]];
- }
- if([recorders count] > 0)
- {
- [NSException raise:NSInternalInconsistencyException format:@"%@ : %ld expected notifications were not observed.",
- [self description], (unsigned long)[recorders count]];
- }
+ [self verifyAtLocation:nil];
+}
+
+- (void)verifyAtLocation:(OCMLocation *)location
+{
+ if([recorders count] == 1)
+ {
+ NSString *description = [NSString stringWithFormat:@"%@: expected notification was not observed: %@",
+ [self description], [[recorders lastObject] description]];
+ OCMReportFailure(location, description);
+ }
+ else if([recorders count] > 0)
+ {
+ NSString *description = [NSString stringWithFormat:@"%@ : %@ expected notifications were not observed.",
+ [self description], @([recorders count])];
+ OCMReportFailure(location, description);
+ }
}
+#pragma mark Receiving recording requests via macro
+
+- (void)notificationWithName:(NSString *)name object:(id)sender
+{
+ [[self expect] notificationWithName:name object:sender];
+}
+
#pragma mark Receiving notifications
« no previous file with comments | « third_party/ocmock/OCMock/OCObserverMockObject.h ('k') | third_party/ocmock/OCMock/OCPartialMockObject.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698