task_unittest.cc revision c7f5f8508d98d5952d42ed7648c2a8f30a4da156
1// Copyright (c) 2009 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#include "base/scoped_ptr.h" 6#include "base/task.h" 7 8#include "testing/gtest/include/gtest/gtest.h" 9 10namespace { 11 12class HelperObject { 13 public: 14 HelperObject() : next_number_(0) { } 15 int GetNextNumber() { return ++next_number_; } 16 void GetNextNumberArg(int* number) { *number = GetNextNumber(); } 17 18 private: 19 int next_number_; 20}; 21 22} // namespace 23 24TEST(Task, OneArg) { 25 HelperObject obj; 26 scoped_ptr<Callback1<int*>::Type> callback( 27 NewCallback(&obj, &HelperObject::GetNextNumberArg)); 28 29 int number = 0; 30 callback->Run(&number); 31 EXPECT_EQ(number, 1); 32} 33 34TEST(Task, ReturnValue) { 35 HelperObject obj; 36 scoped_ptr<CallbackWithReturnValue<int>::Type> callback( 37 NewCallbackWithReturnValue(&obj, &HelperObject::GetNextNumber)); 38 39 EXPECT_EQ(callback->Run(), 1); 40} 41