1// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef THIRD_PARTY_OCMOCK_GTEST_SUPPORT_H_ 6#define THIRD_PARTY_OCMOCK_GTEST_SUPPORT_H_ 7 8#include "testing/gtest/include/gtest/gtest.h" 9 10@class OCMockObject; 11 12namespace testing { 13namespace internal { 14bool VerifyOCMock(OCMockObject* mock, const char* file, int line); 15} // namespace internal 16} // namespace testing 17 18// Calls -verify of the mock and traps the Objective-C exception that is 19// generated, adding it to the gtest failures and returning true/false 20// for if there was an exception. The result should be used in normal 21// gtest EXECPT_TRUE/ASSERT_TRUE fashion. 22// 23// So code that would do: 24// 25// id mockFoo = [OCMockObject mockForClass:[Foo class]]; 26// ... 27// [mockFoo verify]; 28// 29// Should instead do: 30// 31// id mockFoo = [OCMockObject mockForClass:[Foo class]]; 32// ... 33// EXPECT_OCMOCK_VERIFY(mockFoo); 34// 35#define EXPECT_OCMOCK_VERIFY(m) \ 36 EXPECT_TRUE(testing::internal::VerifyOCMock((m), __FILE__, __LINE__)) 37#define ASSERT_OCMOCK_VERIFY(m) \ 38 ASSERT_TRUE(testing::internal::VerifyOCMock((m), __FILE__, __LINE__)) 39 40#endif // THIRD_PARTY_OCMOCK_GTEST_SUPPORT_H_ 41