コード例 #1
0
        public Task <Unit> Handle(StartPlayingSoundEffect request, CancellationToken cancellationToken)
        {
            _buzzer.StartPlaying(request.Frequency);

            _logger.LogInformation("Sent start playing request.");

            return(Unit.Task);
        }
コード例 #2
0
        public async Task Handle(MotionDetected motionDetected, CancellationToken cancellationToken)
        {
            _logger.LogDebug($"Received {motionDetected} event.");

            if (!Started)
            {
                return;
            }

            var command = new StartPlayingSoundEffect(HighSoundFrequency);
            await _mediator.Send(command);
        }
コード例 #3
0
        public async Task Handle_StartPlayingSoundEffect_starts_playing_sound_effect()
        {
            // Arrange
            var command = new StartPlayingSoundEffect(_frequency);

            // Act
            await _sut.Handle(command, _defaultCancellationToken);

            // Assert
            A.CallTo(() => _buzzer.StartPlaying(_frequency))
            .MustHaveHappenedOnceExactly();
        }
コード例 #4
0
        public async Task Handle(DistanceMeasured distanceMeasured, CancellationToken cancellationToken)
        {
            _logger.LogDebug($"Received {distanceMeasured} event.");

            var soundEffect = _distanceToSoundEffectConverter.DistanceToSoundEffect(distanceMeasured.Distance);

            IRequest command;

            if (soundEffect == null)
            {
                command = new StopPlayingSoundEffect();
            }
            else
            {
                command = new StartPlayingSoundEffect(soundEffect.Frequency);
            }

            await _mediator.Send(command);

            _logger.LogDebug($"Sent {command} command.");
        }