diff --git a/src/c#/GeneralUpdate.Core/GeneralUpdate.Core.csproj b/src/c#/GeneralUpdate.Core/GeneralUpdate.Core.csproj
index e93ee2a2..de6d0919 100644
--- a/src/c#/GeneralUpdate.Core/GeneralUpdate.Core.csproj
+++ b/src/c#/GeneralUpdate.Core/GeneralUpdate.Core.csproj
@@ -12,9 +12,6 @@
upgrade,update,client
10.0.0-preview
netstandard2.0
-
- true
- true
diff --git a/tests/CoreTest/Event/EventListenerTests.cs b/tests/CoreTest/Event/EventListenerTests.cs
new file mode 100644
index 00000000..4aac595b
--- /dev/null
+++ b/tests/CoreTest/Event/EventListenerTests.cs
@@ -0,0 +1,118 @@
+using System;
+using GeneralUpdate.Core.Download;
+using GeneralUpdate.Core.Download.Models;
+using GeneralUpdate.Core.Event;
+using Xunit;
+
+namespace CoreTest.Event;
+
+public class EventListenerTests
+{
+ private class TestListener : IUpdateEventListener
+ {
+ public int AllDownloadCompletedCalls;
+ public int DownloadCompletedCalls;
+ public int DownloadErrorCalls;
+ public int DownloadStatisticsCalls;
+ public int UpdateInfoCalls;
+ public int ExceptionCalls;
+ public int ProgressCalls;
+
+ public void OnAllDownloadCompleted(MultiAllDownloadCompletedEventArgs args)
+ => AllDownloadCompletedCalls++;
+
+ public void OnDownloadCompleted(MultiDownloadCompletedEventArgs args)
+ => DownloadCompletedCalls++;
+
+ public void OnDownloadError(MultiDownloadErrorEventArgs args)
+ => DownloadErrorCalls++;
+
+ public void OnDownloadStatistics(MultiDownloadStatisticsEventArgs args)
+ => DownloadStatisticsCalls++;
+
+ public void OnUpdateInfo(UpdateInfoEventArgs args)
+ => UpdateInfoCalls++;
+
+ public void OnException(ExceptionEventArgs args)
+ => ExceptionCalls++;
+
+ public void OnProgress(DownloadProgress progress)
+ => ProgressCalls++;
+ }
+
+ [Fact]
+ public void EventManager_AddListener_And_Dispatch()
+ {
+ var listener = new TestListener();
+ EventManager.Instance.AddListener((s, e) => listener.OnAllDownloadCompleted(e));
+
+ var args = new MultiAllDownloadCompletedEventArgs(true, Array.Empty<(object, string)>());
+ EventManager.Instance.Dispatch(this, args);
+
+ Assert.Equal(1, listener.AllDownloadCompletedCalls);
+ }
+
+ [Fact]
+ public void EventManager_RemoveListener_StopsDispatch()
+ {
+ var listener = new TestListener();
+ Action