public void Constructor_ForProviderNull_Throws(
            Lazy <DeskCommandExecutor> sut,
            [BeNull] IDeskCommandsProvider provider)
        {
            // ReSharper disable once UnusedVariable
            Action action = () =>
            {
                var test = sut.Value;
            };

            action.Should( )
            .Throw <ArgumentNullException> ( )
            .WithParameter(nameof(provider));
        }
        public async Task Up_ForInvokedWithUnknownCommand_ReturnsFalse(
            DeskCommandExecutor sut,
            [Freeze] IDeskCommandsProvider provider,
            [Freeze] IControl control)
        {
            provider.TryGetValue(DeskCommands.MoveUp,
                                 out Arg.Any <IEnumerable <byte> > ( ))
            .Returns(x =>
            {
                x [1] = null;
                return(false);
            });
            await sut.Up( );

            await control.DidNotReceive( )
            .TryWriteRawControl2(Arg.Any <IEnumerable <byte> > ( ));
        }
        public async Task Stop_ForInvoked_ReturnsTrueForSuccess(
            DeskCommandExecutor sut,
            [Freeze] IDeskCommandsProvider provider)
        {
            var bytes = new byte [] { 0, 1 };

            provider.TryGetValue(DeskCommands.MoveStop,
                                 out Arg.Any <IEnumerable <byte> > ( ))
            .Returns(x =>
            {
                x [1] = bytes;
                return(true);
            });
            var actual = await sut.Stop( );

            actual.Should( )
            .BeTrue( );
        }
        public async Task Stop_ForInvoked_CallsControl(
            DeskCommandExecutor sut,
            [Freeze] IDeskCommandsProvider provider,
            [Freeze] IControl control)
        {
            var bytes = new byte [] { 0, 1 };

            provider.TryGetValue(DeskCommands.MoveStop,
                                 out Arg.Any <IEnumerable <byte> > ( ))
            .Returns(x =>
            {
                x [1] = bytes;
                return(true);
            });
            await sut.Stop( );

            await control.Received( )
            .TryWriteRawControl2(bytes);
        }
示例#5
0
        public DeskCommandExecutor([NotNull] ILogger logger,
                                   [NotNull] IErrorManager errorManager,
                                   [NotNull] IDeskCommandsProvider provider,
                                   [NotNull] IControl control)
        {
            Guard.ArgumentNotNull(logger,
                                  nameof(logger));
            Guard.ArgumentNotNull(provider,
                                  nameof(provider));
            Guard.ArgumentNotNull(control,
                                  nameof(control));
            Guard.ArgumentNotNull(errorManager,
                                  nameof(errorManager));

            _logger       = logger;
            _errorManager = errorManager;
            _provider     = provider;
            _control      = control;
        }