// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "cc/test/mock_helper.h"

#include "testing/gtest/include/gtest/gtest-spi.h"

namespace {
class TestingMock {
 public:
  MOCK_METHOD0(Test, void(void));
};

TEST(ExpectMockFailureTest, FailsWhenNoMock) {
  EXPECT_NONFATAL_FAILURE({ EXPECT_MOCK_FAILURE({ ; }); }, "");
}

TEST(ExpectMockFailureTest, FailsWhenMockSucceeds) {
  EXPECT_NONFATAL_FAILURE({
    EXPECT_MOCK_FAILURE({
      ::testing::NiceMock<TestingMock> t1;
      EXPECT_CALL(t1, Test());

      t1.Test();
    });
  }, "");
}

TEST(ExpectMockFailureTest, PassesWhenMockFailsForMissing) {
  EXPECT_MOCK_FAILURE({
    ::testing::NiceMock<TestingMock> t1;
    EXPECT_CALL(t1, Test());
  });
}

TEST(ExpectMockFailureTest, PassesWhenMockFailsForUnexpected) {
  EXPECT_MOCK_FAILURE({
    ::testing::StrictMock<TestingMock> t1;
    t1.Test();
  });
}

}  // namespace
