private void OnIntervalElapsed(object state) { var distance = _measureSensor.GetDistance(); _logger.LogInformation($"Measured distance. {distance}cm"); var @event = new DistanceMeasured(distance); Task.Run(async() => await _mediator.Publish(@event)); _logger.LogDebug($"Published {@event} event."); }
public async Task Handle_DistanceMeasured_requests_a_played_sound_effect_being_stopped() { // Arrange A.CallTo(() => _distanceToSoundEffectConverter.DistanceToSoundEffect(A <double> ._)) .Returns(null); var distanceMeasured = new DistanceMeasured(_distance); // Act await _sut.Handle(distanceMeasured, _defaultCancellationToken); // Assert A.CallTo(() => _mediator.Send(A <StopPlayingSoundEffect> ._, A <CancellationToken> ._)) .MustHaveHappenedOnceExactly(); }
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."); }