Exemple #1
0
 public void Enqueue_WithNullEvent_ShouldThrow()
 {
     Assert.That(() =>
     {
         _eventsQueue.Enqueue(null);
     }, Throws.TypeOf <ArgumentNullException>());
 }
    /// <summary>
    ///     Initialize events after initialize client
    /// </summary>
    /// <typeparam name="TAccount">Specified type of account</typeparam>
    /// <typeparam name="TSession">Specified type of session</typeparam>
    /// <param name="superNetCoreSocketClient">Instance of client</param>

    #region InitializeEvents

    private static void InitializeEvents <TAccount, TSession>(
        G9SuperNetCoreSocketClient <TAccount, TSession> superNetCoreSocketClient)
        where TAccount : AClientAccount <TSession>, new()
        where TSession : AClientSession, new()
    {
        // On connected
        superNetCoreSocketClient.OnConnected += account =>
                                                EventsQueue.Enqueue(() => AccessToG9Events4Unity.OnConnectedHandler?.Invoke(account));


        // On disconnect
        superNetCoreSocketClient.OnDisconnected += (account, reason) =>
                                                   EventsQueue.Enqueue(() => AccessToG9Events4Unity.OnDisconnectedHandler?.Invoke(account, reason));

        // On error
        superNetCoreSocketClient.OnError += (error, reason) =>
                                            EventsQueue.Enqueue(() => AccessToG9Events4Unity.OnErrorHandler?.Invoke(error, reason));

        // On reconnect
        superNetCoreSocketClient.OnReconnect +=
            (account, tryReconnectNumber) =>
            EventsQueue.Enqueue(
                () => AccessToG9Events4Unity.OnReconnectHandler?.Invoke(account, tryReconnectNumber));

        // On unhandled command
        superNetCoreSocketClient.OnUnhandledCommand +=
            (packet, account) =>
            EventsQueue.Enqueue(() => AccessToG9Events4Unity.OnUnhandledCommand?.Invoke(packet, account));

        // On unable to connect
        superNetCoreSocketClient.OnUnableToConnect +=
            () =>
            EventsQueue.Enqueue(() => AccessToG9Events4Unity.OnUnableToConnect?.Invoke());
    }
        public void DiscardQueuedEvents_WithQueueName_ShouldClearSpecificQueue()
        {
            _eventsQueueNamesServiceMock
            .Setup(x => x.IsQueueNameExisting(_queueName))
            .Returns(true)
            .Verifiable();

            _eventsScopeMock
            .Setup(x => x.GetOrAddFeature(It.IsAny <Func <IScopedAppServiceProvider, IEventsScopeQueuesFeature> >()))
            .Returns(_eventsScopeQueuesFeatureMock.Object)
            .Verifiable();

            _eventsScopeQueuesFeatureMock
            .Setup(x => x.GetOrAddEventsQueue(_eventsContextMock.Object, _queueName))
            .Returns(_eventsQueue)
            .Verifiable();

            _eventsQueue.Enqueue(new QueuedPipelineEvent(null));

            _eventsQueuesService.DiscardQueuedEvents(_eventsScopeMock.Object, _queueName);

            Assert.That(_eventsQueue.DequeueAll(), Has.Exactly(0).Items);
        }