| // Copyright (c) 2012 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. |
| |
| #include "cromo/cromo_server.h" |
| |
| #include <mm/mm-modem.h> |
| |
| #include <base/logging.h> |
| #include <dbus-c++/glib-integration.h> |
| #include <gtest/gtest.h> |
| |
| #include "cromo/carrier.h" |
| |
| TEST(Carrier, Find) { |
| DBus::Glib::BusDispatcher dispatcher; |
| DBus::default_dispatcher = &dispatcher; |
| dispatcher.attach(nullptr); |
| |
| DBus::Connection conn = DBus::Connection::SystemBus(); |
| |
| std::string service_name = |
| std::string(CromoServer::kServiceName) + ".UnitTest"; |
| ASSERT_TRUE(conn.acquire_name(service_name.c_str())) |
| << "Failed to acquire D-Bus name " << service_name; |
| |
| static const char kTestName[] = "test_carrier"; |
| |
| CromoServer* server = new CromoServer(conn); |
| |
| Carrier* not_found = server->FindCarrierByName(kTestName); |
| EXPECT_EQ(nullptr, not_found); |
| not_found = server->FindCarrierByCarrierId(38747); |
| EXPECT_EQ(nullptr, not_found); |
| |
| Carrier* test_carrier = new Carrier( |
| kTestName, "dir", 17, MM_MODEM_TYPE_CDMA, Carrier::kNone, "activation"); |
| |
| server->AddCarrier(test_carrier); |
| |
| Carrier* by_id = server->FindCarrierByCarrierId(17); |
| EXPECT_EQ(test_carrier, by_id); |
| |
| Carrier* by_name = server->FindCarrierByName(kTestName); |
| EXPECT_EQ(test_carrier, by_name); |
| |
| // Testing carrier ctor, accessors |
| EXPECT_STREQ(kTestName, by_name->name()); |
| EXPECT_STREQ("dir", by_name->firmware_directory()); |
| EXPECT_EQ(MM_MODEM_TYPE_CDMA, by_name->carrier_type()); |
| EXPECT_EQ(Carrier::kNone, by_name->activation_method()); |
| EXPECT_STREQ("activation", by_name->activation_code()); |
| } |
| |
| int main(int argc, char* argv[]) { |
| testing::InitGoogleTest(&argc, argv); |
| |
| return RUN_ALL_TESTS(); |
| } |