public async void Handler_SignalBotHeartbeat_Valid()
        {
            var stateManager = new Mock <IStateService>();

            stateManager.Setup(f => f.IsRunning()).ReturnsAsync(true);

            var logger = new Mock <ILogger <SignalBotHeartbeatHandler> >();

            var now      = DateTime.UtcNow;
            var dateTime = new Mock <IDateTime>();

            dateTime.Setup(d => d.UtcNow).Returns(now);

            var tag       = Guid.NewGuid();
            var startTime = now.Subtract(TimeSpan.FromSeconds(30));

            var account = BogusData.ValidBotAccounts.Generate();

            var bot = new Bot
            {
                Account    = account,
                Tag        = tag,
                StartTime  = startTime,
                LastUpdate = startTime
            };

            using (var context = NewContext)
            {
                context.Bots.Add(bot);
                await context.SaveChangesAsync();
            }

            var signalBotHeartbeatHandler = new SignalBotHeartbeatHandler(NewContext, logger.Object, dateTime.Object, stateManager.Object);

            var result = await signalBotHeartbeatHandler.Handle(
                new FORFarm.Application.Bots.Commands.SignalHeartbeat.SignalBotHeartbeat
            {
                Tag = tag
            }, CancellationToken.None);

            result.Should().NotBeNull();
            result.Command.Should().Be(Command.Continue);

            var uBot = await NewContext.Bots.FindAsync(bot.ID);

            uBot.LastUpdate.Should().Be(now);
        }
        public async void Handle_SignalBotHeartbeat_NonExistingTag()
        {
            var stateManager = new Mock <IStateService>();

            stateManager.Setup(f => f.IsRunning()).ReturnsAsync(true);

            var logger   = new Mock <ILogger <SignalBotHeartbeatHandler> >();
            var dateTime = new Mock <IDateTime>();

            var tag = Guid.NewGuid();

            var signalBotHeartbeatHandler = new SignalBotHeartbeatHandler(NewContext, logger.Object, dateTime.Object, stateManager.Object);

            var result = await signalBotHeartbeatHandler.Handle(
                new FORFarm.Application.Bots.Commands.SignalHeartbeat.SignalBotHeartbeat {
                Tag = tag
            },
                CancellationToken.None);

            result.Should().NotBeNull();
            result.Command.Should().Be(Command.Terminate);
        }