blob: 1522cd85790803b29f3879fdc360da4db4eaa3ec [file] [log] [blame]
// Copyright (c) 2012 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_SESSION_MOCK_H_
#define CHAPS_SESSION_MOCK_H_
#include <string>
#include <vector>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include "chaps/attributes.h"
#include "chaps/session.h"
#include "pkcs11/cryptoki.h"
namespace chaps {
class SessionMock : public Session {
public:
SessionMock();
SessionMock(const SessionMock&) = delete;
SessionMock& operator=(const SessionMock&) = delete;
~SessionMock() override;
MOCK_CONST_METHOD0(GetSlot, int());
MOCK_CONST_METHOD0(GetState, CK_STATE());
MOCK_CONST_METHOD0(IsReadOnly, bool());
MOCK_CONST_METHOD1(IsOperationActive, bool(OperationType));
MOCK_METHOD3(CreateObject, CK_RV(const CK_ATTRIBUTE_PTR, int, int*));
MOCK_METHOD4(CopyObject, CK_RV(const CK_ATTRIBUTE_PTR, int, int, int*));
MOCK_METHOD1(DestroyObject, CK_RV(int));
MOCK_METHOD2(GetObject, bool(int, const Object**));
MOCK_METHOD2(GetModifiableObject, bool(int, Object**));
MOCK_METHOD1(FlushModifiableObject, CK_RV(Object*));
MOCK_METHOD2(FindObjectsInit, CK_RV(const CK_ATTRIBUTE_PTR, int));
MOCK_METHOD2(FindObjects, CK_RV(int, std::vector<int>*));
MOCK_METHOD0(FindObjectsFinal, CK_RV());
MOCK_METHOD4(OperationInit,
CK_RV(OperationType,
CK_MECHANISM_TYPE,
const std::string&,
const Object*));
MOCK_METHOD4(OperationUpdate,
CK_RV(OperationType, const std::string&, int*, std::string*));
MOCK_METHOD3(OperationFinal, CK_RV(OperationType, int*, std::string*));
MOCK_METHOD1(OperationCancel, void(OperationType));
MOCK_METHOD1(VerifyFinal, CK_RV(const std::string&));
MOCK_METHOD4(OperationSinglePart,
CK_RV(OperationType, const std::string&, int*, std::string*));
MOCK_METHOD5(GenerateKey,
CK_RV(CK_MECHANISM_TYPE,
const std::string&,
const CK_ATTRIBUTE_PTR,
int,
int*));
MOCK_METHOD8(GenerateKeyPair,
CK_RV(CK_MECHANISM_TYPE,
const std::string&,
const CK_ATTRIBUTE_PTR,
int,
const CK_ATTRIBUTE_PTR,
int,
int*,
int*));
MOCK_METHOD1(SeedRandom, CK_RV(const std::string&));
MOCK_METHOD2(GenerateRandom, CK_RV(int, std::string*));
MOCK_METHOD0(IsPrivateLoaded, bool());
};
} // namespace chaps
#endif // CHAPS_SESSION_MOCK_H_