diff --git a/config/test.exs b/config/test.exs
index 4f024d17c..271ad1b6c 100644
--- a/config/test.exs
+++ b/config/test.exs
@@ -82,3 +82,8 @@ config :junit_formatter, report_dir: "."
 if System.get_env("DOCKER", "false") == "false" && File.exists?("./config/test.secret.exs") do
   import_config "test.secret.exs"
 end
+
+config :mobilizon, Mobilizon.Service.Notifier,
+  notifiers: [
+    Mobilizon.Service.Notifier.Mock
+  ]
diff --git a/lib/service/workers/legacy_notifier_builder.ex b/lib/service/workers/legacy_notifier_builder.ex
index af4305e8f..80f4c25c7 100644
--- a/lib/service/workers/legacy_notifier_builder.ex
+++ b/lib/service/workers/legacy_notifier_builder.ex
@@ -3,8 +3,8 @@ defmodule Mobilizon.Service.Workers.LegacyNotifierBuilder do
   Worker to push legacy notifications
   """
 
-  alias Mobilizon.{Actors, Events, Users}
   alias Mobilizon.Activities.Activity
+  alias Mobilizon.{Actors, Events, Users}
   alias Mobilizon.Service.Notifier
 
   use Mobilizon.Service.Workers.Helper, queue: "activity"
@@ -20,7 +20,7 @@ defmodule Mobilizon.Service.Workers.LegacyNotifierBuilder do
     end
   end
 
-  def build_activity(args) do
+  defp build_activity(args) do
     author = Actors.get_actor(args["author_id"])
 
     %Activity{
diff --git a/test/service/workers/legacy_notifier_builder_test.exs b/test/service/workers/legacy_notifier_builder_test.exs
new file mode 100644
index 000000000..35ae41ffe
--- /dev/null
+++ b/test/service/workers/legacy_notifier_builder_test.exs
@@ -0,0 +1,182 @@
+defmodule Mobilizon.Service.Workers.LegacyNotifierBuilderTest do
+  @moduledoc """
+  Test the ActivityBuilder module
+  """
+
+  alias Mobilizon.Activities.Activity
+  alias Mobilizon.Actors.Actor
+  alias Mobilizon.Discussions.Comment
+  alias Mobilizon.Events.Event
+  alias Mobilizon.Service.Notifier.Mock, as: NotifierMock
+  alias Mobilizon.Service.Workers.LegacyNotifierBuilder
+  alias Mobilizon.Users.User
+
+  use Mobilizon.DataCase, async: true
+  import Mox
+  import Mobilizon.Factory
+
+  @mentionned %{
+    "type" => "comment",
+    "subject" => "event_comment_mention",
+    "object_type" => "comment",
+    "inserted_at" => DateTime.utc_now(),
+    "op" => "legacy_notify"
+  }
+
+  @announcement %{
+    "type" => "comment",
+    "subject" => "participation_event_comment",
+    "object_type" => "comment",
+    "inserted_at" => DateTime.utc_now(),
+    "op" => "legacy_notify"
+  }
+
+  setup :verify_on_exit!
+
+  describe "Generates a comment mention notification " do
+    test "not if the actor is remote" do
+      %User{} = user1 = insert(:user)
+
+      %Actor{id: actor_id} = actor = insert(:actor, user: user1)
+      %Actor{id: actor_id_2} = insert(:actor, domain: "remote.tld", user: nil)
+
+      %Event{title: title, uuid: uuid} = event = insert(:event)
+      %Comment{id: comment_id} = insert(:comment, event: event, actor: actor)
+
+      args =
+        Map.merge(@mentionned, %{
+          "subject_params" => %{
+            event_uuid: uuid,
+            event_title: title
+          },
+          "author_id" => actor_id,
+          "object_id" => to_string(comment_id),
+          "mentions" => [actor_id_2]
+        })
+
+      NotifierMock
+      |> expect(:ready?, 0, fn -> true end)
+      |> expect(:send, 0, fn %User{},
+                             %Activity{
+                               type: :comment,
+                               subject: :event_comment_mention,
+                               object_type: :comment
+                             },
+                             [single_activity: true] ->
+        {:ok, :sent}
+      end)
+
+      assert :ok == LegacyNotifierBuilder.perform(%Oban.Job{args: args})
+    end
+
+    test "if the actor mentionned is local" do
+      %User{} = user1 = insert(:user)
+      %User{} = user2 = insert(:user)
+
+      %Actor{id: actor_id} = actor = insert(:actor, user: user1)
+      %Actor{id: actor_id_2} = insert(:actor, user: user2)
+
+      %Event{title: title, uuid: uuid} = event = insert(:event)
+      %Comment{id: comment_id} = insert(:comment, event: event, actor: actor)
+
+      args =
+        Map.merge(@mentionned, %{
+          "subject_params" => %{
+            event_uuid: uuid,
+            event_title: title
+          },
+          "author_id" => actor_id,
+          "object_id" => to_string(comment_id),
+          "mentions" => [actor_id_2]
+        })
+
+      NotifierMock
+      |> expect(:ready?, fn -> true end)
+      |> expect(:send, fn %User{},
+                          %Activity{
+                            type: :comment,
+                            subject: :event_comment_mention,
+                            object_type: :comment
+                          },
+                          [single_activity: true] ->
+        {:ok, :sent}
+      end)
+
+      assert :ok == LegacyNotifierBuilder.perform(%Oban.Job{args: args})
+    end
+  end
+
+  describe "Generates an announcement comment notification" do
+    test "not if there's no participants" do
+      %User{} = user1 = insert(:user)
+
+      %Actor{id: actor_id} = actor = insert(:actor, user: user1)
+      %Actor{} = insert(:actor, domain: "remote.tld", user: nil)
+
+      %Event{title: title, uuid: uuid, id: event_id} = event = insert(:event)
+      %Comment{id: comment_id} = insert(:comment, event: event, actor: actor)
+
+      args =
+        Map.merge(@announcement, %{
+          "subject_params" => %{
+            "event_uuid" => uuid,
+            "event_title" => title,
+            "event_id" => event_id
+          },
+          "author_id" => actor_id,
+          "object_id" => to_string(comment_id)
+        })
+
+      NotifierMock
+      |> expect(:ready?, 0, fn -> true end)
+      |> expect(:send, 0, fn %User{},
+                             %Activity{
+                               type: :comment,
+                               subject: :participation_event_comment,
+                               object_type: :comment
+                             },
+                             [single_activity: true] ->
+        {:ok, :sent}
+      end)
+
+      assert :ok == LegacyNotifierBuilder.perform(%Oban.Job{args: args})
+    end
+
+    test "if there's some participants" do
+      %User{} = user1 = insert(:user)
+      %User{} = user2 = insert(:user)
+
+      %Actor{id: actor_id} = actor = insert(:actor, user: user1)
+      %Actor{} = actor2 = insert(:actor, user: user2)
+
+      %Event{title: title, uuid: uuid, id: event_id} = event = insert(:event)
+      %Comment{id: comment_id} = insert(:comment, event: event, actor: actor)
+      insert(:participant, event: event, actor: actor2)
+
+      args =
+        Map.merge(@announcement, %{
+          "subject_params" => %{
+            "event_uuid" => uuid,
+            "event_title" => title,
+            "event_id" => event_id
+          },
+          "author_id" => actor_id,
+          "object_id" => to_string(comment_id)
+        })
+
+      NotifierMock
+      |> expect(:ready?, fn -> true end)
+      |> expect(:send, fn %User{},
+                          %Activity{
+                            type: :comment,
+                            subject: :participation_event_comment,
+                            object_type: :comment
+                          },
+                          [single_activity: true] ->
+        {:ok, :sent}
+      end)
+
+      assert :ok == LegacyNotifierBuilder.perform(%Oban.Job{args: args})
+    end
+  end
+end
diff --git a/test/support/data_case.ex b/test/support/data_case.ex
index 575d7839a..e8e6c05c0 100644
--- a/test/support/data_case.ex
+++ b/test/support/data_case.ex
@@ -75,5 +75,10 @@ defmodule Mobilizon.DataCase do
   end
 
   Mox.defmock(Mobilizon.Service.HTTP.ActivityPub.Mock, for: Tesla.Adapter)
-  Mox.defmock(Mobilizon.Service.HTTP.GeospatialClient.Mock, for: Tesla.Adapter)
+
+  Mox.defmock(Mobilizon.Service.HTTP.GeospatialClient.Mock,
+    for: Tesla.Adapter
+  )
+
+  Mox.defmock(Mobilizon.Service.Notifier.Mock, for: Mobilizon.Service.Notifier)
 end