Paul Stewart | 8c116a9 | 2012-05-02 18:30:03 -0700 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
| 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
Ben Chan | c54afe5 | 2014-11-05 10:28:08 -0800 | [diff] [blame] | 5 | #ifndef SHILL_CELLULAR_MOCK_MODEM_INFO_H_ |
| 6 | #define SHILL_CELLULAR_MOCK_MODEM_INFO_H_ |
Paul Stewart | 8c116a9 | 2012-05-02 18:30:03 -0700 | [diff] [blame] | 7 | |
Ben Chan | c20ed13 | 2014-10-16 12:25:03 -0700 | [diff] [blame] | 8 | #include <memory> |
Alex Vakulenko | 8a53229 | 2014-06-16 17:18:44 -0700 | [diff] [blame] | 9 | #include <string> |
| 10 | |
Ben Chan | cc67c52 | 2014-09-03 07:19:18 -0700 | [diff] [blame] | 11 | #include <base/macros.h> |
Paul Stewart | 8c116a9 | 2012-05-02 18:30:03 -0700 | [diff] [blame] | 12 | #include <gmock/gmock.h> |
| 13 | |
Ben Chan | c54afe5 | 2014-11-05 10:28:08 -0800 | [diff] [blame] | 14 | #include "shill/cellular/modem_info.h" |
Prathmesh Prabhu | 27526f1 | 2013-03-25 19:42:18 -0700 | [diff] [blame] | 15 | #include "shill/mock_control.h" |
| 16 | #include "shill/mock_event_dispatcher.h" |
| 17 | #include "shill/mock_glib.h" |
| 18 | #include "shill/mock_manager.h" |
| 19 | #include "shill/mock_metrics.h" |
Arman Uguray | 41cc634 | 2013-03-29 16:34:39 -0700 | [diff] [blame] | 20 | #include "shill/mock_pending_activation_store.h" |
Paul Stewart | 8c116a9 | 2012-05-02 18:30:03 -0700 | [diff] [blame] | 21 | |
| 22 | namespace shill { |
| 23 | |
| 24 | class MockModemInfo : public ModemInfo { |
| 25 | public: |
| 26 | MockModemInfo(); |
Prathmesh Prabhu | 27526f1 | 2013-03-25 19:42:18 -0700 | [diff] [blame] | 27 | |
Ben Chan | ea18c6c | 2014-09-30 13:08:26 -0700 | [diff] [blame] | 28 | // All nullptr parameters are replaced by mock objects. |
Paul Stewart | 2f6c789 | 2015-06-16 13:13:10 -0700 | [diff] [blame^] | 29 | MockModemInfo(ControlInterface* control, |
| 30 | EventDispatcher* dispatcher, |
| 31 | Metrics* metrics, |
| 32 | Manager* manager, |
| 33 | GLib* glib); |
Prathmesh Prabhu | 27526f1 | 2013-03-25 19:42:18 -0700 | [diff] [blame] | 34 | |
Ben Chan | 5ea763b | 2014-08-13 11:07:54 -0700 | [diff] [blame] | 35 | ~MockModemInfo() override; |
Paul Stewart | 8c116a9 | 2012-05-02 18:30:03 -0700 | [diff] [blame] | 36 | |
Prathmesh Prabhu | 27526f1 | 2013-03-25 19:42:18 -0700 | [diff] [blame] | 37 | // Replaces data members in ModemInfo by mock objects. |
Ben Chan | ea18c6c | 2014-09-30 13:08:26 -0700 | [diff] [blame] | 38 | // The following are relaced by mocks if they are nullptr: control_interface, |
Prathmesh Prabhu | 27526f1 | 2013-03-25 19:42:18 -0700 | [diff] [blame] | 39 | // dispatcher, metrics, manager, glib. |
Prathmesh Prabhu | 3b66bb9 | 2014-05-22 11:15:25 -0700 | [diff] [blame] | 40 | // The following are always replaced by mocks: pending_activation_store. |
Prathmesh Prabhu | 27526f1 | 2013-03-25 19:42:18 -0700 | [diff] [blame] | 41 | void SetMockMembers(); |
| 42 | |
Prathmesh Prabhu | 27526f1 | 2013-03-25 19:42:18 -0700 | [diff] [blame] | 43 | // Accessors for mock objects |
Arman Uguray | 41cc634 | 2013-03-29 16:34:39 -0700 | [diff] [blame] | 44 | MockPendingActivationStore* mock_pending_activation_store() const { |
| 45 | return mock_pending_activation_store_; |
Prathmesh Prabhu | 27526f1 | 2013-03-25 19:42:18 -0700 | [diff] [blame] | 46 | } |
Prathmesh Prabhu | 27526f1 | 2013-03-25 19:42:18 -0700 | [diff] [blame] | 47 | MockControl* mock_control_interface() const { |
| 48 | return mock_control_.get(); |
| 49 | } |
| 50 | MockEventDispatcher* mock_dispatcher() const { |
| 51 | return mock_dispatcher_.get(); |
| 52 | } |
| 53 | MockMetrics* mock_metrics() const { |
| 54 | return mock_metrics_.get(); |
| 55 | } |
| 56 | MockManager* mock_manager() const { |
| 57 | return mock_manager_.get(); |
| 58 | } |
| 59 | MockGLib* mock_glib() const { |
| 60 | return mock_glib_.get(); |
| 61 | } |
| 62 | |
Paul Stewart | 8c116a9 | 2012-05-02 18:30:03 -0700 | [diff] [blame] | 63 | MOCK_METHOD0(Start, void()); |
| 64 | MOCK_METHOD0(Stop, void()); |
Paul Stewart | 2f6c789 | 2015-06-16 13:13:10 -0700 | [diff] [blame^] | 65 | MOCK_METHOD1(OnDeviceInfoAvailable, void(const std::string& link_name)); |
Paul Stewart | 8c116a9 | 2012-05-02 18:30:03 -0700 | [diff] [blame] | 66 | |
Prathmesh Prabhu | 27526f1 | 2013-03-25 19:42:18 -0700 | [diff] [blame] | 67 | private: |
Ben Chan | c20ed13 | 2014-10-16 12:25:03 -0700 | [diff] [blame] | 68 | std::unique_ptr<MockControl> mock_control_; |
| 69 | std::unique_ptr<MockEventDispatcher> mock_dispatcher_; |
| 70 | std::unique_ptr<MockMetrics> mock_metrics_; |
| 71 | std::unique_ptr<MockManager> mock_manager_; |
| 72 | std::unique_ptr<MockGLib> mock_glib_; |
Prathmesh Prabhu | 27526f1 | 2013-03-25 19:42:18 -0700 | [diff] [blame] | 73 | |
| 74 | // owned by ModemInfo |
Paul Stewart | 2f6c789 | 2015-06-16 13:13:10 -0700 | [diff] [blame^] | 75 | MockPendingActivationStore* mock_pending_activation_store_; |
Prathmesh Prabhu | 27526f1 | 2013-03-25 19:42:18 -0700 | [diff] [blame] | 76 | |
Paul Stewart | 8c116a9 | 2012-05-02 18:30:03 -0700 | [diff] [blame] | 77 | DISALLOW_COPY_AND_ASSIGN(MockModemInfo); |
| 78 | }; |
| 79 | |
| 80 | } // namespace shill |
| 81 | |
Ben Chan | c54afe5 | 2014-11-05 10:28:08 -0800 | [diff] [blame] | 82 | #endif // SHILL_CELLULAR_MOCK_MODEM_INFO_H_ |