// Copyright 2015 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 TRUNKS_MOCK_BLOB_PARSER_H_
#define TRUNKS_MOCK_BLOB_PARSER_H_

#include "trunks/blob_parser.h"

#include <string>

#include <gmock/gmock.h>

namespace trunks {

class MockBlobParser : public BlobParser {
 public:
  MockBlobParser();
  ~MockBlobParser() override;

  MOCK_METHOD3(SerializeKeyBlob, bool(const TPM2B_PUBLIC&,
                                      const TPM2B_PRIVATE&,
                                      std::string*));
  MOCK_METHOD3(ParseKeyBlob, bool(const std::string&,
                                  TPM2B_PUBLIC*,
                                  TPM2B_PRIVATE*));
  MOCK_METHOD4(SerializeCreationBlob, bool(const TPM2B_CREATION_DATA&,
                                           const TPM2B_DIGEST&,
                                           const TPMT_TK_CREATION&,
                                           std::string*));
  MOCK_METHOD4(ParseCreationBlob, bool(const std::string&,
                                       TPM2B_CREATION_DATA*,
                                       TPM2B_DIGEST*,
                                       TPMT_TK_CREATION*));
};

}  // namespace trunks

#endif  // TRUNKS_MOCK_BLOB_PARSER_H_
