public void Does_Not_Throw_Raising_DiagnosticGenerated_If_No_Handlers_Bound(string message)
        {
            using (var client = new SoulseekClient(options: null))
            {
                PeerMessageHandler l = new PeerMessageHandler(client);

                var diagnostic = l.GetProperty <IDiagnosticFactory>("Diagnostic");

                var ex = Record.Exception(() => diagnostic.Info(message));

                Assert.Null(ex);
            }
        }
        public void Raises_DiagnosticGenerated_On_Diagnostic(string message)
        {
            using (var client = new SoulseekClient(options: null))
            {
                DiagnosticEventArgs args = default;

                PeerMessageHandler l = new PeerMessageHandler(client);
                l.DiagnosticGenerated += (sender, e) => args = e;

                var diagnostic = l.GetProperty <IDiagnosticFactory>("Diagnostic");
                diagnostic.Info(message);

                Assert.Equal(message, args.Message);
            }
        }
        private (PeerMessageHandler Handler, Mocks Mocks) GetFixture(string username = null, IPEndPoint endpoint = null, SoulseekClientOptions options = null)
        {
            var mocks = new Mocks(options);

            endpoint = endpoint ?? new IPEndPoint(IPAddress.None, 0);

            mocks.ServerConnection.Setup(m => m.Username)
            .Returns(username ?? "username");
            mocks.ServerConnection.Setup(m => m.IPEndPoint)
            .Returns(endpoint);

            mocks.PeerConnection.Setup(m => m.Username)
            .Returns(username ?? "username");
            mocks.PeerConnection.Setup(m => m.IPEndPoint)
            .Returns(endpoint);

            var handler = new PeerMessageHandler(
                mocks.Client.Object,
                mocks.Diagnostic.Object);

            return(handler, mocks);
        }
        private (PeerMessageHandler Handler, Mocks Mocks) GetFixture(string username = null, IPAddress ip = null, int port = 0, ClientOptions options = null)
        {
            var mocks = new Mocks(options);

            mocks.ServerConnection.Setup(m => m.Username)
            .Returns(username ?? "username");
            mocks.ServerConnection.Setup(m => m.IPAddress)
            .Returns(ip ?? IPAddress.Parse("0.0.0.0"));
            mocks.ServerConnection.Setup(m => m.Port)
            .Returns(port);

            mocks.PeerConnection.Setup(m => m.Username)
            .Returns(username ?? "username");
            mocks.PeerConnection.Setup(m => m.IPAddress)
            .Returns(ip ?? IPAddress.Parse("0.0.0.0"));
            mocks.PeerConnection.Setup(m => m.Port)
            .Returns(port);

            var handler = new PeerMessageHandler(
                mocks.Client.Object,
                mocks.Diagnostic.Object);

            return(handler, mocks);
        }