diff --git a/test/http/server_sent_event_test.cpp b/test/http/server_sent_event_test.cpp
index 43b830d..d8d8836 100644
--- a/test/http/server_sent_event_test.cpp
+++ b/test/http/server_sent_event_test.cpp
@@ -28,15 +28,20 @@
     boost::beast::test::stream out(io);
     stream.connect(out);
 
+    Request req;
+
     bool openCalled = false;
-    auto openHandler = [&openCalled](Connection&) { openCalled = true; };
+    auto openHandler = [&openCalled](Connection&,
+                                     const Request& /*handedReq*/) {
+        openCalled = true;
+    };
     bool closeCalled = false;
     auto closeHandler = [&closeCalled](Connection&) { closeCalled = true; };
 
     std::shared_ptr<ConnectionImpl<boost::beast::test::stream>> conn =
         std::make_shared<ConnectionImpl<boost::beast::test::stream>>(
             std::move(stream), openHandler, closeHandler);
-    conn->start();
+    conn->start(req);
     // Connect
     {
         constexpr std::string_view expected =
diff --git a/test/redfish-core/include/filter_expr_executor_test.cpp b/test/redfish-core/include/filter_expr_executor_test.cpp
index 0761668..5770ce1 100644
--- a/test/redfish-core/include/filter_expr_executor_test.cpp
+++ b/test/redfish-core/include/filter_expr_executor_test.cpp
@@ -19,7 +19,7 @@
         return;
     }
     EXPECT_EQ(json["Members"].size(), 1);
-    EXPECT_TRUE(applyFilter(json, *ast));
+    EXPECT_TRUE(applyFilterToCollection(json, *ast));
     EXPECT_EQ(json["Members"].size(), 1);
 }
 
@@ -32,7 +32,7 @@
         return;
     }
     EXPECT_EQ(json["Members"].size(), 1);
-    EXPECT_TRUE(applyFilter(json, *ast));
+    EXPECT_TRUE(applyFilterToCollection(json, *ast));
     EXPECT_EQ(json["Members"].size(), 0);
 }
 
