blob: 099914d8fb2c15cec2e9e13a6bc89944a4f089d0 [file] [log] [blame]
Darin Petkov887f2982011-07-14 16:10:17 -07001// Copyright (c) 2011 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
5#include <base/stl_util-inl.h>
6#include <gtest/gtest.h>
7
8#include "shill/manager.h"
9#include "shill/mock_control.h"
10#include "shill/mock_glib.h"
Chris Masone2ae797d2011-08-23 20:41:00 -070011#include "shill/mock_manager.h"
Darin Petkov887f2982011-07-14 16:10:17 -070012#include "shill/modem_info.h"
13#include "shill/modem_manager.h"
14
15using testing::_;
16using testing::Return;
17using testing::Test;
18
19namespace shill {
20
21class ModemInfoTest : public Test {
22 public:
23 ModemInfoTest()
24 : manager_(&control_interface_, &dispatcher_, &glib_),
25 modem_info_(&control_interface_, &dispatcher_, &manager_, &glib_) {}
26
27 protected:
28 MockGLib glib_;
29 MockControl control_interface_;
30 EventDispatcher dispatcher_;
Chris Masone2ae797d2011-08-23 20:41:00 -070031 MockManager manager_;
Darin Petkov887f2982011-07-14 16:10:17 -070032 ModemInfo modem_info_;
33};
34
35TEST_F(ModemInfoTest, StartStop) {
36 const int kWatcher1 = 123;
37 const int kWatcher2 = 456;
38 EXPECT_EQ(0, modem_info_.modem_managers_.size());
39 EXPECT_CALL(glib_, BusWatchName(_, _, _, _, _, _, _))
40 .WillOnce(Return(kWatcher1))
41 .WillOnce(Return(kWatcher2));
42 modem_info_.Start();
43 EXPECT_EQ(2, modem_info_.modem_managers_.size());
44
45 EXPECT_CALL(glib_, BusUnwatchName(kWatcher1)).Times(1);
46 EXPECT_CALL(glib_, BusUnwatchName(kWatcher2)).Times(1);
47 modem_info_.Stop();
48 EXPECT_EQ(0, modem_info_.modem_managers_.size());
49}
50
51TEST_F(ModemInfoTest, RegisterModemManager) {
52 const int kWatcher = 123;
53 static const char kService[] = "some.dbus.service";
54 EXPECT_CALL(glib_, BusWatchName(_, _, _, _, _, _, _))
55 .WillOnce(Return(kWatcher));
56 modem_info_.RegisterModemManager(kService, "/dbus/service/path");
57 ASSERT_EQ(1, modem_info_.modem_managers_.size());
58 ModemManager *manager = modem_info_.modem_managers_[0];
59 EXPECT_EQ(kService, manager->service_);
60 EXPECT_EQ(kWatcher, manager->watcher_id_);
61 manager->watcher_id_ = 0;
62}
63
64} // namespace shill