blob: c7c83d0e8eda1db9bc27a391bd76fe58adcd63b8 [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 <gtest/gtest.h>
6
7#include "shill/manager.h"
8#include "shill/mock_control.h"
9#include "shill/mock_glib.h"
10#include "shill/modem_manager.h"
11
12using testing::_;
13using testing::Return;
14using testing::StrEq;
15using testing::Test;
16
17namespace shill {
18
19class ModemManagerTest : public Test {
20 public:
21 ModemManagerTest()
22 : manager_(&control_interface_, &dispatcher_, &glib_),
23 modem_manager_(kService,
24 kPath,
25 &control_interface_,
26 &dispatcher_,
27 &manager_,
28 &glib_) {}
29
30 virtual void TearDown() {
31 modem_manager_.watcher_id_ = 0;
32 }
33
34 protected:
35 static const char kService[];
36 static const char kPath[];
37
38 MockGLib glib_;
39 MockControl control_interface_;
40 EventDispatcher dispatcher_;
41 Manager manager_;
42 ModemManager modem_manager_;
43};
44
45const char ModemManagerTest::kService[] = "test.dbus.service";
46const char ModemManagerTest::kPath[] = "/dbus/service/test/path";
47
48TEST_F(ModemManagerTest, Start) {
49 const int kWatcher = 123;
50 EXPECT_CALL(glib_, BusWatchName(G_BUS_TYPE_SYSTEM,
51 StrEq(kService),
52 G_BUS_NAME_WATCHER_FLAGS_NONE,
53 ModemManager::OnAppear,
54 ModemManager::OnVanish,
55 &modem_manager_,
56 NULL))
57 .WillOnce(Return(kWatcher));
58 EXPECT_EQ(0, modem_manager_.watcher_id_);
59 modem_manager_.Start();
60 EXPECT_EQ(kWatcher, modem_manager_.watcher_id_);
61}
62
63TEST_F(ModemManagerTest, Stop) {
64 const int kWatcher = 345;
65 static const char kOwner[] = ":1.30";
66 modem_manager_.watcher_id_ = kWatcher;
67 modem_manager_.owner_ = kOwner;
68 EXPECT_CALL(glib_, BusUnwatchName(kWatcher)).Times(1);
69 modem_manager_.Stop();
70 EXPECT_EQ(0, modem_manager_.watcher_id_);
71 EXPECT_EQ("", modem_manager_.owner_);
72}
73
74TEST_F(ModemManagerTest, Connect) {
75 EXPECT_EQ("", modem_manager_.owner_);
76 static const char kOwner[] = ":1.20";
77 modem_manager_.Connect(kOwner);
78 EXPECT_EQ(kOwner, modem_manager_.owner_);
79}
80
81TEST_F(ModemManagerTest, Disconnect) {
82 static const char kOwner[] = ":1.22";
83 modem_manager_.owner_ = kOwner;
84 modem_manager_.Disconnect();
85 EXPECT_EQ("", modem_manager_.owner_);
86}
87
88TEST_F(ModemManagerTest, OnAppear) {
89 EXPECT_EQ("", modem_manager_.owner_);
90 static const char kOwner[] = ":1.17";
91 ModemManager::OnAppear(NULL, NULL, kOwner, &modem_manager_);
92 EXPECT_EQ(kOwner, modem_manager_.owner_);
93}
94
95TEST_F(ModemManagerTest, OnVanish) {
96 static const char kOwner[] = ":1.18";
97 modem_manager_.owner_ = kOwner;
98 ModemManager::OnVanish(NULL, NULL, &modem_manager_);
99 EXPECT_EQ("", modem_manager_.owner_);
100}
101
102} // namespace shill