From 82ae73e80f28c76c5cf0ea7dd911aac2d315317a Mon Sep 17 00:00:00 2001 From: Alexander Kozachenko Date: Thu, 7 Dec 2023 23:31:37 +0000 Subject: [PATCH] 4.0.0-rc.9.0 - removed ISubscriber (#20) Includes - [x] #18 - [x] #19 Co-authored-by: Alexander Kozachenko <119358312+Alex-Kozachenko@users.noreply.github.com> Reviewed-on: https://git.disroot.org/alexenko/ProSol.Messaging/pulls/20 --- Messaging.sln | 14 ---- README.md | 7 +- docs/Subscriptions.md | 82 ------------------- pack/ProSol.Messaging.csproj | 1 - pack/package.nuspec | 2 +- src/Contracts/Publishers/IPublisher.cs | 6 +- src/Contracts/Publishers/IPublisher_T.cs | 6 -- src/Contracts/Publishers/PublishHelper.cs | 17 ++-- src/Contracts/Subscribers/DataSubscriber.cs | 5 +- .../Subscribers/IPipelineSubscriber.cs | 7 +- src/Contracts/Subscribers/ISubscriber.cs | 10 --- src/Contracts/Subscribers/ISubscriber_T.cs | 7 -- src/Filtering/Filtering.csproj | 1 - src/Filtering/IPublisherFluentExtensions.cs | 7 +- src/Publishers/PipelineMessagePublisher.cs | 14 ++-- src/Publishers/Publishers.csproj | 1 - src/Publishers/Unsubscriber.cs | 10 +-- .../IPublisherFluentExtensions.cs | 26 ------ src/Subscriptions/PipelineSubscription.cs | 25 ------ src/Subscriptions/RegularSubscription.cs | 21 ----- src/Subscriptions/Subscriptions.csproj | 12 --- src/Translating/IPublisherFluentExtensions.cs | 8 +- src/Translating/TranslatorBase.cs | 14 +++- tests/Common/TestPublisher.cs | 6 +- .../Subscriptions/Subscriptions.Tests.csproj | 2 - 25 files changed, 60 insertions(+), 251 deletions(-) delete mode 100644 docs/Subscriptions.md delete mode 100644 src/Contracts/Publishers/IPublisher_T.cs delete mode 100644 src/Contracts/Subscribers/ISubscriber.cs delete mode 100644 src/Contracts/Subscribers/ISubscriber_T.cs delete mode 100644 src/Subscriptions/IPublisherFluentExtensions.cs delete mode 100644 src/Subscriptions/PipelineSubscription.cs delete mode 100644 src/Subscriptions/RegularSubscription.cs delete mode 100644 src/Subscriptions/Subscriptions.csproj diff --git a/Messaging.sln b/Messaging.sln index a1d9419..42725b2 100644 --- a/Messaging.sln +++ b/Messaging.sln @@ -11,14 +11,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Publishers", "src\Publisher EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Translating", "src\Translating\Translating.csproj", "{5549AC68-4155-4E42-B88C-672A8D39E420}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Subscriptions", "src\Subscriptions\Subscriptions.csproj", "{08D3A876-4D42-49AC-AD6D-E597F9B89822}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A6E6BB70-923B-4A64-A5E6-8AFE18B535AA}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Translating.Tests", "tests\Translating\Translating.Tests.csproj", "{E33F062A-2120-4AF0-8688-330A8CA7F0B0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Subscriptions.Tests", "tests\Subscriptions\Subscriptions.Tests.csproj", "{90879E74-5F24-4ED6-9988-6FFFFE38B96A}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Filtering", "src\Filtering\Filtering.csproj", "{A24F6F20-3B62-44E3-888D-CBCD3F29C477}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Filtering.Tests", "tests\Filtering\Filtering.Tests.csproj", "{308F1FFC-191C-4C33-900A-0567413BE1BB}" @@ -46,18 +42,10 @@ Global {5549AC68-4155-4E42-B88C-672A8D39E420}.Debug|Any CPU.Build.0 = Debug|Any CPU {5549AC68-4155-4E42-B88C-672A8D39E420}.Release|Any CPU.ActiveCfg = Release|Any CPU {5549AC68-4155-4E42-B88C-672A8D39E420}.Release|Any CPU.Build.0 = Release|Any CPU - {08D3A876-4D42-49AC-AD6D-E597F9B89822}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {08D3A876-4D42-49AC-AD6D-E597F9B89822}.Debug|Any CPU.Build.0 = Debug|Any CPU - {08D3A876-4D42-49AC-AD6D-E597F9B89822}.Release|Any CPU.ActiveCfg = Release|Any CPU - {08D3A876-4D42-49AC-AD6D-E597F9B89822}.Release|Any CPU.Build.0 = Release|Any CPU {E33F062A-2120-4AF0-8688-330A8CA7F0B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E33F062A-2120-4AF0-8688-330A8CA7F0B0}.Debug|Any CPU.Build.0 = Debug|Any CPU {E33F062A-2120-4AF0-8688-330A8CA7F0B0}.Release|Any CPU.ActiveCfg = Release|Any CPU {E33F062A-2120-4AF0-8688-330A8CA7F0B0}.Release|Any CPU.Build.0 = Release|Any CPU - {90879E74-5F24-4ED6-9988-6FFFFE38B96A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {90879E74-5F24-4ED6-9988-6FFFFE38B96A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {90879E74-5F24-4ED6-9988-6FFFFE38B96A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {90879E74-5F24-4ED6-9988-6FFFFE38B96A}.Release|Any CPU.Build.0 = Release|Any CPU {A24F6F20-3B62-44E3-888D-CBCD3F29C477}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A24F6F20-3B62-44E3-888D-CBCD3F29C477}.Debug|Any CPU.Build.0 = Debug|Any CPU {A24F6F20-3B62-44E3-888D-CBCD3F29C477}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -75,9 +63,7 @@ Global {FF4D591C-67FE-4E8E-AD73-D13465D6DB44} = {C9061001-B6D0-49F8-AA95-5D421E96DDA2} {4856538B-EE02-4568-B133-4612B01601B0} = {C9061001-B6D0-49F8-AA95-5D421E96DDA2} {5549AC68-4155-4E42-B88C-672A8D39E420} = {C9061001-B6D0-49F8-AA95-5D421E96DDA2} - {08D3A876-4D42-49AC-AD6D-E597F9B89822} = {C9061001-B6D0-49F8-AA95-5D421E96DDA2} {E33F062A-2120-4AF0-8688-330A8CA7F0B0} = {A6E6BB70-923B-4A64-A5E6-8AFE18B535AA} - {90879E74-5F24-4ED6-9988-6FFFFE38B96A} = {A6E6BB70-923B-4A64-A5E6-8AFE18B535AA} {A24F6F20-3B62-44E3-888D-CBCD3F29C477} = {C9061001-B6D0-49F8-AA95-5D421E96DDA2} {308F1FFC-191C-4C33-900A-0567413BE1BB} = {A6E6BB70-923B-4A64-A5E6-8AFE18B535AA} {22F31937-7F3E-47B2-A8BB-DC2B889BA228} = {A6E6BB70-923B-4A64-A5E6-8AFE18B535AA} diff --git a/README.md b/README.md index 70dd9b0..5766fc0 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,7 @@ Implements a message broker with ability to build a pipeline of listeners. The project consists of: -- observer-related interfaces, -- A publisher (see `PipelineMessagePublisher`). -- [Subscription](/docs/Subscriptions.md) mechanics for smart subscriber triggering; -- [Translators](/docs/Translating.md) for messages. +- observer-related interfaces [here](/src/Contracts/). +- `PipelineMessagePublisher` [here](/src/Publishers/PipelineMessagePublisher.cs). +- [Translating](/docs/Translating.md) for messages. - [Filtering](/docs/Filtering.md) for messages. \ No newline at end of file diff --git a/docs/Subscriptions.md b/docs/Subscriptions.md deleted file mode 100644 index a1f7eea..0000000 --- a/docs/Subscriptions.md +++ /dev/null @@ -1,82 +0,0 @@ -# ProSol.Messaging.Subscriptions - -Enables a conditional subscribing for a publisher: -```csharp -publisher.Subscribe(subscriber, msg => msg.Contains("ERROR")) -``` - -## Demo - -Let`s create a console logger for error messages. - -Add the package: -``` -dotnet add package ProSol.Messaging --version 4.0.0-rc.6.0 -``` - -Include the package: -```csharp -using ProSol.Messaging; -using ProSol.Messaging.Subscriptions; -``` - -Now, let`s build a system, which reacts on errors: -```csharp -var publisher = new PipelineMessagePublisher(); -var subscriber = new DataSubscriber(); - -publisher - .Subscribe(new Logger(), msg => msg.Contains("ERROR")) - .Subscribe(subscriber); -``` - -So, it's a two subscribers: -- `Logger`: writes string to Console; -- `DataSubscriber`: accumulates string in innter list. - -Now, lets simulate some logs: - -```csharp -string[] source = [ - "quick brown fox", - "introduced an ERROR", - "so the lazy dog", - "got a message" -]; - -foreach (var item in source) -{ - publisher.Publish(item); -} -``` - -> Console output: -``` introduced an ERROR ``` -> subscriber.Messages: -``` -"quick brown fox", -"introduced an ERROR", -"so the lazy dog", -"got a message" -``` - -The `Logger` is just a dummy console writer: -```csharp -public class Logger : ISubscriber -{ - public void OnCompleted() - { - } - - public void OnNext(string message) - { - Console.WriteLine(message); - } -} -``` - -So, the `Logger` reacts on the `IPublisher`'s messages if only they contain an "ERROR" string, without interfering the pipeline. - -Happy coding! - -- [BACK](../README.md) \ No newline at end of file diff --git a/pack/ProSol.Messaging.csproj b/pack/ProSol.Messaging.csproj index f08f124..a8995bc 100644 --- a/pack/ProSol.Messaging.csproj +++ b/pack/ProSol.Messaging.csproj @@ -3,7 +3,6 @@ - diff --git a/pack/package.nuspec b/pack/package.nuspec index 52737a2..72336e1 100644 --- a/pack/package.nuspec +++ b/pack/package.nuspec @@ -3,7 +3,7 @@ ProSol.Messaging ProSol.Messaging - 4.0.0-rc.8.0 + 4.0.0-rc.9.0 Alex Kozachenko Alex Kozachenko https://git.disroot.org/alexenko/ProSol.Messaging diff --git a/src/Contracts/Publishers/IPublisher.cs b/src/Contracts/Publishers/IPublisher.cs index f501961..bafa4f4 100644 --- a/src/Contracts/Publishers/IPublisher.cs +++ b/src/Contracts/Publishers/IPublisher.cs @@ -3,12 +3,14 @@ namespace ProSol.Messaging; /// /// A Publisher/Observable object. /// -public interface IPublisher +public interface IPublisher { + void Publish(TMessage message); + /// /// Subscribe a subscriber. /// /// Target. /// Custom IDisposable implementation. - IDisposable Subscribe(ISubscriber subscriber); + IDisposable Subscribe(IPipelineSubscriber subscriber); } diff --git a/src/Contracts/Publishers/IPublisher_T.cs b/src/Contracts/Publishers/IPublisher_T.cs deleted file mode 100644 index ccff95a..0000000 --- a/src/Contracts/Publishers/IPublisher_T.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace ProSol.Messaging; - -public interface IPublisher : IPublisher -{ - void Publish(TMessage message); -} diff --git a/src/Contracts/Publishers/PublishHelper.cs b/src/Contracts/Publishers/PublishHelper.cs index 42209c0..df4cd0f 100644 --- a/src/Contracts/Publishers/PublishHelper.cs +++ b/src/Contracts/Publishers/PublishHelper.cs @@ -2,7 +2,10 @@ namespace ProSol.Messaging; public static class PublishHelper { - public static void Publish(this IPublisher publisher, TMessage message, params ISubscriber[] subscribers) + public static void Publish( + this IPublisher publisher, + TMessage message, + params IPipelineSubscriber[] subscribers) { if (subscribers.Length == 0) { @@ -13,7 +16,11 @@ public static class PublishHelper publisher.Publish(message, subscribers[0], next); } - public static void Publish(this IPublisher publisher, TMessage message, ISubscriber subscriber, NextDelegate next) + public static void Publish( + this IPublisher publisher, + TMessage message, + IPipelineSubscriber subscriber, + NextDelegate next) { switch (subscriber) { @@ -23,12 +30,6 @@ public static class PublishHelper pipelineSubscriber.OnNext(message, next); return; } - case ISubscriber final: - { - final.OnNext(message); - next(); - return; - } default: throw new ArgumentException($"Incorrect subscriber: {subscriber}"); } } diff --git a/src/Contracts/Subscribers/DataSubscriber.cs b/src/Contracts/Subscribers/DataSubscriber.cs index 2f3b545..d526b13 100644 --- a/src/Contracts/Subscribers/DataSubscriber.cs +++ b/src/Contracts/Subscribers/DataSubscriber.cs @@ -2,7 +2,7 @@ using System.Collections.Immutable; namespace ProSol.Messaging; -public sealed class DataSubscriber : ISubscriber +public sealed class DataSubscriber : IPipelineSubscriber { private readonly List messages = []; @@ -12,8 +12,9 @@ public sealed class DataSubscriber : ISubscriber { } - public void OnNext(TMessage message) + public void OnNext(TMessage message, NextDelegate next) { messages.Add(message); + next(); } } \ No newline at end of file diff --git a/src/Contracts/Subscribers/IPipelineSubscriber.cs b/src/Contracts/Subscribers/IPipelineSubscriber.cs index f8c4c3a..15a5251 100644 --- a/src/Contracts/Subscribers/IPipelineSubscriber.cs +++ b/src/Contracts/Subscribers/IPipelineSubscriber.cs @@ -5,7 +5,7 @@ public delegate void NextDelegate(); /// /// An Observer/Subscriber object with pipeline support. /// -public interface IPipelineSubscriber : ISubscriber +public interface IPipelineSubscriber { /// /// Represents a reaction on a message. @@ -16,4 +16,9 @@ public interface IPipelineSubscriber : ISubscriber /// - For more details about ASP.NET pipeline, see https://learn.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?view=aspnetcore-8.0 /// void OnNext(TMessage message, NextDelegate next); + + /// + /// Finalizes a subscriber. + /// + void OnCompleted(); } \ No newline at end of file diff --git a/src/Contracts/Subscribers/ISubscriber.cs b/src/Contracts/Subscribers/ISubscriber.cs deleted file mode 100644 index e8c703a..0000000 --- a/src/Contracts/Subscribers/ISubscriber.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace ProSol.Messaging; - -public interface ISubscriber -{ - /// - /// Finalizes a subscriber. - /// - void OnCompleted(); -} - diff --git a/src/Contracts/Subscribers/ISubscriber_T.cs b/src/Contracts/Subscribers/ISubscriber_T.cs deleted file mode 100644 index 04a9995..0000000 --- a/src/Contracts/Subscribers/ISubscriber_T.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace ProSol.Messaging; - -public interface ISubscriber : ISubscriber -{ - void OnNext(TMessage message); -} - diff --git a/src/Filtering/Filtering.csproj b/src/Filtering/Filtering.csproj index cf94936..95fa5e5 100644 --- a/src/Filtering/Filtering.csproj +++ b/src/Filtering/Filtering.csproj @@ -2,7 +2,6 @@ - diff --git a/src/Filtering/IPublisherFluentExtensions.cs b/src/Filtering/IPublisherFluentExtensions.cs index 5d37af7..5da31e3 100644 --- a/src/Filtering/IPublisherFluentExtensions.cs +++ b/src/Filtering/IPublisherFluentExtensions.cs @@ -7,8 +7,8 @@ public static class IPublisherFluentExtensions /// /// Filters a messages from a publisher. /// - public static IPublisher Filter( - this IPublisher publisher, + public static IPublisher Filter( + this IPublisher publisher, Predicate filterCondition) { var retranslator = new Retranslator(); @@ -21,7 +21,8 @@ public static class IPublisherFluentExtensions /// Filters a messages from a publisher. /// Interrupts a pipeline of a publisher, when the is met. /// - public static IPublisher Endpoint(this IPublisher publisher, + public static IPublisher Endpoint( + this IPublisher publisher, Predicate filterCondition) { var retranslator = new Retranslator(); diff --git a/src/Publishers/PipelineMessagePublisher.cs b/src/Publishers/PipelineMessagePublisher.cs index eaa5922..cb50763 100644 --- a/src/Publishers/PipelineMessagePublisher.cs +++ b/src/Publishers/PipelineMessagePublisher.cs @@ -5,26 +5,26 @@ /// Provides a pipeline mechanics, so a subscriber is able to stop message processing. /// /// Type of message. -public class PipelineMessagePublisher : - IPublisher +public class PipelineMessagePublisher + : IPublisher { - private readonly HashSet subscribers = []; + private readonly HashSet> subscribers = []; /// /// Subscribes a subscriber. /// - /// An implementation of or interfaces. + /// An implementation of interface. /// Unsubscriber. - public IDisposable Subscribe(ISubscriber subscriber) + public IDisposable Subscribe(IPipelineSubscriber subscriber) { subscribers.Add(subscriber); - return new Unsubscriber(subscribers, subscriber); + return new Unsubscriber(subscribers, subscriber); } /// /// Pushes the message to subscribers. /// - /// A message to push to specific . + /// A message to push to specific . public void Publish(TMessage message) => this.Publish(message, [.. subscribers]); diff --git a/src/Publishers/Publishers.csproj b/src/Publishers/Publishers.csproj index 6b116be..48eaaf3 100644 --- a/src/Publishers/Publishers.csproj +++ b/src/Publishers/Publishers.csproj @@ -3,7 +3,6 @@ - diff --git a/src/Publishers/Unsubscriber.cs b/src/Publishers/Unsubscriber.cs index bd31475..c2f3aa1 100644 --- a/src/Publishers/Unsubscriber.cs +++ b/src/Publishers/Unsubscriber.cs @@ -1,13 +1,13 @@ namespace ProSol.Messaging; -public sealed class Unsubscriber : IDisposable +public sealed class Unsubscriber : IDisposable { - private readonly ICollection subscribers; - private readonly ISubscriber target; + private readonly ICollection> subscribers; + private readonly IPipelineSubscriber target; internal Unsubscriber( - ICollection subscribers, - ISubscriber target) + ICollection> subscribers, + IPipelineSubscriber target) { this.subscribers = subscribers; this.target = target; diff --git a/src/Subscriptions/IPublisherFluentExtensions.cs b/src/Subscriptions/IPublisherFluentExtensions.cs deleted file mode 100644 index 8853580..0000000 --- a/src/Subscriptions/IPublisherFluentExtensions.cs +++ /dev/null @@ -1,26 +0,0 @@ -namespace ProSol.Messaging.Subscriptions; - -public static class IPublisherFluentExtensions -{ - [Obsolete("I am planning to remove these methods in next rc-release. Please use Filtering.Filter or Filtering.Endpoint instead.")] - public static IPublisher Subscribe( - this IPublisher publisher, - ISubscriber subscriber, - Predicate condition) - { - var subcription = new RegularSubscription(subscriber, condition); - var unsubscriber = publisher.Subscribe(subcription); - return publisher; - } - - [Obsolete("I am planning to remove these methods in next rc-release. Please use Filtering.Filter or Filtering.Endpoint instead.")] - public static IPublisher Subscribe( - this IPublisher publisher, - IPipelineSubscriber subscriber, - Predicate condition) - { - var subcription = new PipelineSubscription(subscriber, condition); - var unsubscriber = publisher.Subscribe(subcription); - return publisher; - } -} diff --git a/src/Subscriptions/PipelineSubscription.cs b/src/Subscriptions/PipelineSubscription.cs deleted file mode 100644 index 0ccb694..0000000 --- a/src/Subscriptions/PipelineSubscription.cs +++ /dev/null @@ -1,25 +0,0 @@ - -namespace ProSol.Messaging.Subscriptions; - -internal class PipelineSubscription( - IPipelineSubscriber subscriber, - Predicate condition) - : IPipelineSubscriber -{ - public void OnCompleted() - { - } - - public void OnNext(TMessage message, NextDelegate next) - { - static void dropOff() { }; // acts like an endpoint. - if (condition(message)) - { - subscriber.OnNext(message, dropOff); - } - else - { - next(); - } - } -} \ No newline at end of file diff --git a/src/Subscriptions/RegularSubscription.cs b/src/Subscriptions/RegularSubscription.cs deleted file mode 100644 index 3eb7fc8..0000000 --- a/src/Subscriptions/RegularSubscription.cs +++ /dev/null @@ -1,21 +0,0 @@ - -namespace ProSol.Messaging.Subscriptions; - -internal class RegularSubscription( - ISubscriber subscriber, - Predicate condition) - : ISubscriber -{ - public void OnCompleted() - { - } - - public void OnNext(TMessage message) - { - if (condition(message)) - { - subscriber.OnNext(message); - } - } - -} \ No newline at end of file diff --git a/src/Subscriptions/Subscriptions.csproj b/src/Subscriptions/Subscriptions.csproj deleted file mode 100644 index 13e873c..0000000 --- a/src/Subscriptions/Subscriptions.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - net8.0 - enable - enable - - diff --git a/src/Translating/IPublisherFluentExtensions.cs b/src/Translating/IPublisherFluentExtensions.cs index 38220c3..072e68f 100644 --- a/src/Translating/IPublisherFluentExtensions.cs +++ b/src/Translating/IPublisherFluentExtensions.cs @@ -2,13 +2,13 @@ namespace ProSol.Messaging.Translating; public static class IPublisherFluentExtensions { - public static IPublisher Translate( - this IPublisher publisher, + public static IPublisher Translate( + this IPublisher publisher, Func converter) => Translate(publisher, new SimpleTranslator(converter)); - public static IPublisher Translate( - this IPublisher publisher, + public static IPublisher Translate( + this IPublisher publisher, TranslatorBase translatorBase) { var unsubscriber = publisher.Subscribe(translatorBase); diff --git a/src/Translating/TranslatorBase.cs b/src/Translating/TranslatorBase.cs index 3dccfb3..49df332 100644 --- a/src/Translating/TranslatorBase.cs +++ b/src/Translating/TranslatorBase.cs @@ -1,9 +1,9 @@ namespace ProSol.Messaging.Translating; public abstract class TranslatorBase - : IPipelineSubscriber, IPublisher, IDisposable + : IPipelineSubscriber, IPublisher, IDisposable { - private ISubscriber? destSubscriber; + private IPipelineSubscriber? destSubscriber; /// public void OnCompleted() => destSubscriber?.OnCompleted(); @@ -28,7 +28,15 @@ public abstract class TranslatorBase /// protected abstract TDest ConvertMessage(TSource message); - public IDisposable Subscribe(ISubscriber subscriber) + public void Publish(TDest message) + { + if (destSubscriber != null) + { + this.Publish(message, destSubscriber, () => {}); + } + } + + public IDisposable Subscribe(IPipelineSubscriber subscriber) { if (destSubscriber != null) { diff --git a/tests/Common/TestPublisher.cs b/tests/Common/TestPublisher.cs index cbe5d92..c4dedd8 100644 --- a/tests/Common/TestPublisher.cs +++ b/tests/Common/TestPublisher.cs @@ -3,7 +3,7 @@ namespace ProSol.Messaging.Tests.Common; public class TestPublisher(IEnumerable messages) : IPublisher { readonly Queue messages = new(messages); - ISubscriber? subscriber; + IPipelineSubscriber? subscriber; public void PublishAll() { @@ -17,8 +17,8 @@ public class TestPublisher(IEnumerable messages) : IPublishe { this.Publish(message, subscriber!); } - - public IDisposable Subscribe(ISubscriber subscriber) + + public IDisposable Subscribe(IPipelineSubscriber subscriber) { this.subscriber = subscriber; #pragma warning disable CS8603 diff --git a/tests/Subscriptions/Subscriptions.Tests.csproj b/tests/Subscriptions/Subscriptions.Tests.csproj index 8631544..a00c0c6 100644 --- a/tests/Subscriptions/Subscriptions.Tests.csproj +++ b/tests/Subscriptions/Subscriptions.Tests.csproj @@ -4,7 +4,6 @@ net8.0 enable enable - false true @@ -19,7 +18,6 @@ -