176c14c3bSShawn McCarney /**
276c14c3bSShawn McCarney  * Copyright © 2020 IBM Corporation
376c14c3bSShawn McCarney  *
476c14c3bSShawn McCarney  * Licensed under the Apache License, Version 2.0 (the "License");
576c14c3bSShawn McCarney  * you may not use this file except in compliance with the License.
676c14c3bSShawn McCarney  * You may obtain a copy of the License at
776c14c3bSShawn McCarney  *
876c14c3bSShawn McCarney  *     http://www.apache.org/licenses/LICENSE-2.0
976c14c3bSShawn McCarney  *
1076c14c3bSShawn McCarney  * Unless required by applicable law or agreed to in writing, software
1176c14c3bSShawn McCarney  * distributed under the License is distributed on an "AS IS" BASIS,
1276c14c3bSShawn McCarney  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1376c14c3bSShawn McCarney  * See the License for the specific language governing permissions and
1476c14c3bSShawn McCarney  * limitations under the License.
1576c14c3bSShawn McCarney  */
1676c14c3bSShawn McCarney #pragma once
1776c14c3bSShawn McCarney 
1876c14c3bSShawn McCarney #include "error_logging.hpp"
19*5dab5d3dSShawn McCarney #include "phase_fault.hpp"
2076c14c3bSShawn McCarney 
2176c14c3bSShawn McCarney #include <gmock/gmock.h>
2276c14c3bSShawn McCarney 
2376c14c3bSShawn McCarney namespace phosphor::power::regulators
2476c14c3bSShawn McCarney {
2576c14c3bSShawn McCarney 
2676c14c3bSShawn McCarney /**
2776c14c3bSShawn McCarney  * @class MockErrorLogging
2876c14c3bSShawn McCarney  *
2976c14c3bSShawn McCarney  * Mock implementation of the ErrorLogging interface.
3076c14c3bSShawn McCarney  */
3176c14c3bSShawn McCarney class MockErrorLogging : public ErrorLogging
3276c14c3bSShawn McCarney {
3376c14c3bSShawn McCarney   public:
3476c14c3bSShawn McCarney     // Specify which compiler-generated methods we want
3576c14c3bSShawn McCarney     MockErrorLogging() = default;
3676c14c3bSShawn McCarney     MockErrorLogging(const MockErrorLogging&) = delete;
3776c14c3bSShawn McCarney     MockErrorLogging(MockErrorLogging&&) = delete;
3876c14c3bSShawn McCarney     MockErrorLogging& operator=(const MockErrorLogging&) = delete;
3976c14c3bSShawn McCarney     MockErrorLogging& operator=(MockErrorLogging&&) = delete;
4076c14c3bSShawn McCarney     virtual ~MockErrorLogging() = default;
4176c14c3bSShawn McCarney 
421df5954cSShawn McCarney     MOCK_METHOD(void, logConfigFileError,
431df5954cSShawn McCarney                 (Entry::Level severity, Journal& journal), (override));
441df5954cSShawn McCarney 
451df5954cSShawn McCarney     MOCK_METHOD(void, logDBusError, (Entry::Level severity, Journal& journal),
461df5954cSShawn McCarney                 (override));
471df5954cSShawn McCarney 
481df5954cSShawn McCarney     MOCK_METHOD(void, logI2CError,
491df5954cSShawn McCarney                 (Entry::Level severity, Journal& journal,
501df5954cSShawn McCarney                  const std::string& bus, uint8_t addr, int errorNumber),
511df5954cSShawn McCarney                 (override));
521df5954cSShawn McCarney 
531df5954cSShawn McCarney     MOCK_METHOD(void, logInternalError,
541df5954cSShawn McCarney                 (Entry::Level severity, Journal& journal), (override));
551df5954cSShawn McCarney 
56*5dab5d3dSShawn McCarney     MOCK_METHOD(void, logPhaseFault,
57*5dab5d3dSShawn McCarney                 (Entry::Level severity, Journal& journal, PhaseFaultType type,
58*5dab5d3dSShawn McCarney                  const std::string& inventoryPath,
59*5dab5d3dSShawn McCarney                  (std::map<std::string, std::string> additionalData)),
60*5dab5d3dSShawn McCarney                 (override));
61*5dab5d3dSShawn McCarney 
621df5954cSShawn McCarney     MOCK_METHOD(void, logPMBusError,
631df5954cSShawn McCarney                 (Entry::Level severity, Journal& journal,
641df5954cSShawn McCarney                  const std::string& inventoryPath),
651df5954cSShawn McCarney                 (override));
661df5954cSShawn McCarney 
671df5954cSShawn McCarney     MOCK_METHOD(void, logWriteVerificationError,
681df5954cSShawn McCarney                 (Entry::Level severity, Journal& journal,
691df5954cSShawn McCarney                  const std::string& inventoryPath),
701df5954cSShawn McCarney                 (override));
7176c14c3bSShawn McCarney };
7276c14c3bSShawn McCarney 
7376c14c3bSShawn McCarney } // namespace phosphor::power::regulators
74