コード例 #1
0
ファイル: MessageManagerTest.cs プロジェクト: galaktor/ngin
        public void CreateInstance_LogManagerNull_ThrowArgumentNullException()
        {
            // arrange
            ILogManager logManagerMock = null;
            IMainLoopManager loopManagerMock = this.mocks.NewMock<IMainLoopManager>();
            Stub.On( loopManagerMock ).EventAdd( "HeartbeatEnded" );
            MessageManager m;

            // act
            m = new MessageManager( logManagerMock, loopManagerMock );

            // assert
            Assert.IsNotNull( m );
            Assert.IsInstanceOf<MessageManager>( m );
        }
コード例 #2
0
ファイル: MessageManagerTest.cs プロジェクト: galaktor/ngin
        public void CreateInstance_MainLoopManagerNull_ThrowArgumentNullException()
        {
            // arrange
            ILogManager logManagerMock = this.mocks.NewMock<ILogManager>();
            Stub.On( logManagerMock ).Method( "Trace" ).WithAnyArguments();
            IMainLoopManager loopManagerMock = null;
            MessageManager m;

            // act
            m = new MessageManager( logManagerMock, loopManagerMock );

            // assert
            Assert.IsNotNull( m );
            Assert.IsInstanceOf<MessageManager>( m );
        }
コード例 #3
0
ファイル: MessageManagerTest.cs プロジェクト: galaktor/ngin
        public void UnregisterMessageType10Times_ValidParametersRemoveAll_MessageRegistryEmpty()
        {
            // arrange
            ILogManager logManagerMock = this.mocks.NewMock<ILogManager>();
            Stub.On( logManagerMock ).Method( "Trace" ).WithAnyArguments();
            IMainLoopManager loopManagerMock = this.mocks.NewMock<IMainLoopManager>();
            Stub.On( loopManagerMock ).EventAdd( "HeartbeatEnded" );
            MessageManager m = new MessageManager( logManagerMock, loopManagerMock );
            int addTimes = 10;
            EventHandler<ActionRequestEventArgs> a = ( sender, args ) => { };
            for ( int i = 0; i < addTimes; i++ )
            {
                m.RegisterMessageType( "test", a );
            }

            // act
            m.UnregisterMessageType( "test", a, true );

            // assert
            Assert.AreEqual( 0, m.GetInvocationCountForType( "test" ) );
        }
コード例 #4
0
ファイル: MessageManagerTest.cs プロジェクト: galaktor/ngin
        public void UnregisterMessageType_TypeNullSend10Messages_Receive0Messages()
        {
            // arrange
            ILogManager logManagerMock = this.mocks.NewMock<ILogManager>();
            Stub.On( logManagerMock ).Method( "Trace" ).WithAnyArguments();
            IMainLoopManager loopManagerMock = this.mocks.NewMock<IMainLoopManager>();
            Stub.On( loopManagerMock ).EventAdd( "HeartbeatEnded" );
            MessageManager m = new MessageManager( logManagerMock, loopManagerMock );
            int sendTimes = 10;
            int receiveCount = 0;
            EventHandler<ActionRequestEventArgs> a = ( sender, args ) => { receiveCount++; };
            m.RegisterMessageType( null, a );

            // act
            m.UnregisterMessageType( null, a, false );
            for ( int i = 0; i < sendTimes; i++ )
            {
                m.SendMessage( this, "blah" );
            }

            // assert
            Assert.AreEqual( 0, receiveCount );
        }
コード例 #5
0
ファイル: MessageManagerTest.cs プロジェクト: galaktor/ngin
        public void SendMessage_MessageTypeRegistered_MessageHandledSuccessfully()
        {
            // arrange
            ILogManager logManagerMock = this.mocks.NewMock<ILogManager>();
            Stub.On( logManagerMock ).Method( "Trace" ).WithAnyArguments();
            IMainLoopManager loopManagerMock = this.mocks.NewMock<IMainLoopManager>();
            Stub.On( loopManagerMock ).EventAdd( "HeartbeatEnded" );
            MessageManager m = new MessageManager( logManagerMock, loopManagerMock );
            EventHandler<ActionRequestEventArgs> a = ( sender, args ) => { };
            m.RegisterMessageType( "test", a );

            // act
            m.SendMessage( this, "test" );

            // assert
            Assert.AreEqual( 1, m.MessageBufferCount );
        }
コード例 #6
0
ファイル: MessageManagerTest.cs プロジェクト: galaktor/ngin
        public void SendBufferedMessages_NoMessagesRegistered_NothingHappensBufferEmpty()
        {
            // arrange
            ILogManager logManagerMock = this.mocks.NewMock<ILogManager>();
            Stub.On( logManagerMock ).Method( "Trace" ).WithAnyArguments();
            IMainLoopManager loopManagerMock = this.mocks.NewMock<IMainLoopManager>();
            Stub.On( loopManagerMock ).EventAdd( "HeartbeatEnded" );
            MessageManager m = new MessageManager( logManagerMock, loopManagerMock );
            int registerTimes = 10;
            int sendsCounter = 0;
            EventHandler<ActionRequestEventArgs> a = ( sender, args ) => { sendsCounter++; };
            m.SendMessage( this, "test" );

            // act
            m.SendBufferedMessages();

            // assert
            Assert.AreEqual( 0, sendsCounter );
            Assert.AreEqual( 0, m.MessageBufferCount );
        }
コード例 #7
0
ファイル: MessageManagerTest.cs プロジェクト: galaktor/ngin
        public void SendBufferedMessages_MessageTypeRegistered10Times_10MessagesDispatchedBufferEmpty()
        {
            // arrange
            ILogManager logManagerMock = this.mocks.NewMock<ILogManager>();
            Stub.On( logManagerMock ).Method( "Trace" ).WithAnyArguments();
            IMainLoopManager loopManagerMock = this.mocks.NewMock<IMainLoopManager>();
            Stub.On( loopManagerMock ).EventAdd( "HeartbeatEnded" );
            MessageManager m = new MessageManager( logManagerMock, loopManagerMock );
            int registerTimes = 10;
            int sendsCounter = 0;
            EventHandler<ActionRequestEventArgs> a = ( sender, args ) => { sendsCounter++; };
            for ( int i = 0; i < registerTimes; i++ )
            {
                m.RegisterMessageType( "test", a );
            }
            m.SendMessage( this, "test" );

            // act
            m.SendBufferedMessages();

            // assert
            Assert.AreEqual( registerTimes, sendsCounter );
            Assert.AreEqual( 0, m.MessageBufferCount );
        }
コード例 #8
0
ファイル: MessageManagerTest.cs プロジェクト: galaktor/ngin
        public void RegisterMessageType_ValidParameters_MessageSuccessfullyRegisterred()
        {
            // arrange
            ILogManager logManagerMock = this.mocks.NewMock<ILogManager>();
            Stub.On( logManagerMock ).Method( "Trace" ).WithAnyArguments();
            IMainLoopManager loopManagerMock = this.mocks.NewMock<IMainLoopManager>();
            Stub.On( loopManagerMock ).EventAdd( "HeartbeatEnded" );
            MessageManager m = new MessageManager( logManagerMock, loopManagerMock );

            // act
            m.RegisterMessageType( "test", ( sender, args ) => { } );

            // assert
            Assert.AreEqual( 1, m.MessageHandlers.Count<KeyValuePair<string,EventHandler<ActionRequestEventArgs>>>() );
        }
コード例 #9
0
ファイル: MessageManagerTest.cs プロジェクト: galaktor/ngin
        public void CreateInstance_ValidParameters_Success()
        {
            // arrange
            ILogManager logManagerMock = this.mocks.NewMock<ILogManager>();
            Stub.On( logManagerMock ).Method( "Trace" ).WithAnyArguments();
            IMainLoopManager loopManagerMock = this.mocks.NewMock<IMainLoopManager>();
            Stub.On( loopManagerMock ).EventAdd( "HeartbeatEnded" );
            MessageManager m;

            // act
            m = new MessageManager( logManagerMock, loopManagerMock );

            // assert
            Assert.IsNotNull( m );
            Assert.IsInstanceOf<MessageManager>( m );
        }