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

#ifndef CHAPS_ISOLATE_MOCK_H_
#define CHAPS_ISOLATE_MOCK_H_

#include "chaps/isolate.h"

#include <string>

#include <brillo/secure_blob.h>
#include <gmock/gmock.h>
#include <gtest/gtest.h>

namespace chaps {

class IsolateCredentialManagerMock : public IsolateCredentialManager {
 public:
  MOCK_METHOD1(GetCurrentUserIsolateCredential, bool(brillo::SecureBlob*));
  MOCK_METHOD2(GetUserIsolateCredential, bool(const std::string&,
                                              brillo::SecureBlob*));
  MOCK_METHOD2(SaveIsolateCredential, bool(const std::string&,
                                           const brillo::SecureBlob&));
};

}  // namespace chaps

#endif  // CHAPS_ISOLATE_MOCK_H_
