Example #1
0
        public async void Handle_RegisterBot_Valid()
        {
            var stateManager = new Mock <IStateService>();

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

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

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

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

            var tag = Guid.NewGuid();

            var account   = BogusData.ValidBotAccounts.Generate();
            var startTime = now.Subtract(TimeSpan.FromSeconds(30));

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

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

            var registerBotHandler = new RegisterBotHandler(NewContext, logger.Object, dateTime.Object, stateManager.Object);

            var result = await registerBotHandler.Handle(
                new FORFarm.Application.Bots.Commands.RegisterBot.RegisterBot {
                Tag = tag, Username = account.Username
            }, CancellationToken.None);

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

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

            uBot.Tag.Should().Be(tag);
            uBot.LastUpdate.Should().Be(now);
        }
Example #2
0
        public async void Handle_RegisterBot_NotRunning()
        {
            var stateManager = new Mock <IStateService>();

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

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

            var registerBotHandler = new RegisterBotHandler(NewContext, logger.Object, dateTime.Object, stateManager.Object);

            var result =
                await registerBotHandler.Handle(new FORFarm.Application.Bots.Commands.RegisterBot.RegisterBot(),
                                                CancellationToken.None);

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