Make LogReader own SimulatedEventLoopFactory

This reduces some code duplication and makes things easier once we start
need to be able to mess with the config from the LogReader.

Change-Id: Ia1c04f37865cfd284c3675ca138d38b3f4b7717f
diff --git a/aos/events/logging/logger_test.cc b/aos/events/logging/logger_test.cc
index 91190e7..d96d4c6 100644
--- a/aos/events/logging/logger_test.cc
+++ b/aos/events/logging/logger_test.cc
@@ -64,16 +64,16 @@
   LOG(INFO) << "Config " << FlatbufferToJson(reader.configuration());
   EXPECT_EQ(reader.node(), nullptr);
 
-  SimulatedEventLoopFactory log_reader_factory(reader.configuration());
-
   // This sends out the fetched messages and advances time to the start of the
   // log file.
-  reader.Register(&log_reader_factory);
+  reader.Register();
 
-  EXPECT_EQ(log_reader_factory.node(), nullptr);
+  EXPECT_EQ(reader.node(), nullptr);
+
+  EXPECT_EQ(reader.event_loop_factory()->node(), nullptr);
 
   std::unique_ptr<EventLoop> test_event_loop =
-      log_reader_factory.MakeEventLoop("log_reader");
+      reader.event_loop_factory()->MakeEventLoop("log_reader");
 
   int ping_count = 10;
   int pong_count = 10;
@@ -93,10 +93,8 @@
         EXPECT_EQ(ping_count, pong_count);
       });
 
-  log_reader_factory.RunFor(std::chrono::seconds(100));
+  reader.event_loop_factory()->RunFor(std::chrono::seconds(100));
   EXPECT_EQ(ping_count, 2010);
-
-  reader.Deregister();
 }
 
 // Tests that a large number of messages per second doesn't overwhelm writev.
@@ -209,22 +207,22 @@
   }
 
   LogReader reader(logfile);
-  ASSERT_NE(reader.node(), nullptr);
-  EXPECT_EQ(reader.node()->name()->string_view(), "pi1");
 
   // TODO(austin): Also replay as pi2 or pi3 and make sure we see the pong
   // messages.  This won't work today yet until the log reading code gets
   // significantly better.
-  SimulatedEventLoopFactory log_reader_factory(reader.configuration(),
-                                               reader.node());
-  log_reader_factory.set_send_delay(chrono::microseconds(0));
 
   // This sends out the fetched messages and advances time to the start of the
   // log file.
-  reader.Register(&log_reader_factory);
+  reader.Register();
+
+  ASSERT_NE(reader.node(), nullptr);
+  EXPECT_EQ(reader.node()->name()->string_view(), "pi1");
+
+  reader.event_loop_factory()->set_send_delay(chrono::microseconds(0));
 
   std::unique_ptr<EventLoop> test_event_loop =
-      log_reader_factory.MakeEventLoop("test");
+      reader.event_loop_factory()->MakeEventLoop("test");
 
   int ping_count = 10;
   int pong_count = 10;
@@ -252,11 +250,9 @@
         EXPECT_EQ(ping_count, pong_count);
       });
 
-  log_reader_factory.RunFor(std::chrono::seconds(100));
+  reader.event_loop_factory()->RunFor(std::chrono::seconds(100));
   EXPECT_EQ(ping_count, 2010);
   EXPECT_EQ(pong_count, 2010);
-
-  reader.Deregister();
 }
 
 }  // namespace testing