diff --git a/cellular/mock_cellular.h b/cellular/mock_cellular.h
index 7d57148..b5a517d 100644
--- a/cellular/mock_cellular.h
+++ b/cellular/mock_cellular.h
@@ -16,26 +16,26 @@
 
 class MockCellular : public Cellular {
  public:
-  MockCellular(ModemInfo *modem_info,
-               const std::string &link_name,
-               const std::string &address,
+  MockCellular(ModemInfo* modem_info,
+               const std::string& link_name,
+               const std::string& address,
                int interface_index,
                Type type,
-               const std::string &owner,
-               const std::string &service,
-               const std::string &path,
-               ProxyFactory *proxy_factory);
+               const std::string& owner,
+               const std::string& service,
+               const std::string& path,
+               ProxyFactory* proxy_factory);
   ~MockCellular() override;
 
-  MOCK_METHOD1(Connect, void(Error *error));
-  MOCK_METHOD2(Disconnect, void(Error *error, const char *reason));
+  MOCK_METHOD1(Connect, void(Error* error));
+  MOCK_METHOD2(Disconnect, void(Error* error, const char* reason));
   MOCK_METHOD3(OnDBusPropertiesChanged, void(
-      const std::string &interface,
-      const DBusPropertiesMap &changed_properties,
-      const std::vector<std::string> &invalidated_properties));
+      const std::string& interface,
+      const DBusPropertiesMap& changed_properties,
+      const std::vector<std::string>& invalidated_properties));
   MOCK_METHOD1(set_modem_state, void(ModemState state));
   MOCK_METHOD0(DestroyService, void());
-  MOCK_METHOD1(StartPPP, void(const std::string &serial_device));
+  MOCK_METHOD1(StartPPP, void(const std::string& serial_device));
 
  private:
   DISALLOW_COPY_AND_ASSIGN(MockCellular);
