Ejemplo n.º 1
0
        public void RegisterBot_ExistingBot_ShouldReturnDuplicatedIdError()
        {
            var databaseContext = DatabaseFactory.Create();
            var timeProvider    = TimeProviderFactory.Create();
            var botService      = new BotsService(databaseContext, timeProvider);

            databaseContext.Bots.Add(new BotModel
            {
                Id         = "1000",
                Name       = "Some other bot",
                CreateTime = DateTime.Now
            });
            databaseContext.SaveChanges();

            var bot = new RegisterBotDto
            {
                Id   = "1000",
                Name = "Bot1"
            };

            var result = botService.RegisterBot(bot);

            Assert.Equal(RegisterResult.DuplicatedIdError, result);
            Assert.Equal(1, databaseContext.Bots.Count());
        }
Ejemplo n.º 2
0
        public void GetAllBots_ExistingBots_ShouldReturnListOfBots()
        {
            var databaseContext = DatabaseFactory.Create();
            var timeProvider    = TimeProviderFactory.Create();
            var botService      = new BotsService(databaseContext, timeProvider);

            databaseContext.Bots.Add(new BotModel
            {
                Id         = "1000",
                Name       = "Bot1",
                CreateTime = timeProvider.Get()
            });
            databaseContext.Bots.Add(new BotModel
            {
                Id         = "1001",
                Name       = "Bot2",
                CreateTime = timeProvider.Get()
            });
            databaseContext.SaveChanges();

            var result = botService.GetAllBots();

            Assert.Equal(2, result.Count);
            Assert.Equal("1000", result[0].Id);
            Assert.Equal("1001", result[1].Id);
        }
Ejemplo n.º 3
0
        public void GetStatsForBot_ExistingBot_ShouldReturnListOfStats()
        {
            var databaseContext = DatabaseFactory.Create();
            var timeProvider    = TimeProviderFactory.Create();
            var statsService    = new StatsService(databaseContext, timeProvider);

            databaseContext.Bots.Add(new BotModel
            {
                Id    = "1",
                Name  = "Bot1",
                Stats = new List <StatsModel>
                {
                    new StatsModel {
                        BotId = "1", CreateTime = timeProvider.Get(), ExecutedCommandsCount = 1001
                    },
                    new StatsModel {
                        BotId = "1", CreateTime = timeProvider.Get().AddDays(1), ExecutedCommandsCount = 1002
                    },
                    new StatsModel {
                        BotId = "1", CreateTime = timeProvider.Get().AddDays(1), ExecutedCommandsCount = 1003
                    }
                }
            });
            databaseContext.SaveChanges();

            var result = statsService.GetStatsForBot("1");

            Assert.Equal(2, result.Count);
            Assert.Equal(1001, result[0].ExecutedCommandsCount);
            Assert.Equal(1003, result[1].ExecutedCommandsCount);
        }
Ejemplo n.º 4
0
        public void Log_ExistingBot_ShouldReturnTrueAndSaveInDatabase()
        {
            var databaseContext = DatabaseFactory.Create();
            var timeProvider    = TimeProviderFactory.Create();
            var statsService    = new StatsService(databaseContext, timeProvider);

            databaseContext.Bots.Add(new BotModel
            {
                Id   = "1",
                Name = "Bot1"
            });
            databaseContext.SaveChanges();

            var stats = new LogStatsDto
            {
                BotId = "1",
                ExecutedCommandsCount = 2,
                GuildsCount           = 3,
                MembersCount          = 4
            };

            var result      = statsService.Log(stats);
            var loggedStats = databaseContext.Stats.First();

            Assert.True(result);
            Assert.Equal(1, databaseContext.Stats.Count());
            Assert.Equal("1", loggedStats.BotId);
            Assert.Equal(timeProvider.Get(), loggedStats.CreateTime);
            Assert.Equal(2, loggedStats.ExecutedCommandsCount);
            Assert.Equal(3, loggedStats.GuildsCount);
            Assert.Equal(4, loggedStats.MembersCount);
        }
Ejemplo n.º 5
0
        public void IsBotRegistered_NonExistingBot_ShouldReturnTrue()
        {
            var databaseContext = DatabaseFactory.Create();
            var timeProvider    = TimeProviderFactory.Create();
            var botService      = new BotsService(databaseContext, timeProvider);

            var result = botService.IsBotRegistered("1000");

            Assert.False(result);
        }
Ejemplo n.º 6
0
        public void GetBot_NonExistingBot_ShouldReturnBotData()
        {
            var databaseContext = DatabaseFactory.Create();
            var timeProvider    = TimeProviderFactory.Create();
            var botService      = new BotsService(databaseContext, timeProvider);

            var result = botService.GetBot("1000");

            Assert.Null(result);
        }
Ejemplo n.º 7
0
        public void GetStatsForBot_NonExistingBot_ShouldReturnNull()
        {
            var databaseContext = DatabaseFactory.Create();
            var timeProvider    = TimeProviderFactory.Create();
            var statsService    = new StatsService(databaseContext, timeProvider);

            var result = statsService.GetStatsForBot("0");

            Assert.Null(result);
        }
        public void GetBot_ExistingBotId_ShouldReturnValidBotData()
        {
            var botServiceMock = new Mock <IBotsService>();
            var timeProvider   = TimeProviderFactory.Create();

            botServiceMock.Setup(p => p.GetBot("1000")).Returns(new BotDto
            {
                Id         = "1000",
                Name       = "Bot1",
                CreateTime = timeProvider.Get()
            });

            var controller = new BotsController(botServiceMock.Object);
            var jsonResult = controller.GetBot("1000") as JsonResult;

            Assert.IsAssignableFrom <BotDto>(jsonResult.Value);
        }
Ejemplo n.º 9
0
        public void IsBotRegistered_ExistingBot_ShouldReturnTrue()
        {
            var databaseContext = DatabaseFactory.Create();
            var timeProvider    = TimeProviderFactory.Create();
            var botService      = new BotsService(databaseContext, timeProvider);

            databaseContext.Bots.Add(new BotModel
            {
                Id         = "1000",
                Name       = "Bot1",
                CreateTime = DateTime.Now
            });
            databaseContext.SaveChanges();

            var result = botService.IsBotRegistered("1000");

            Assert.True(result);
        }
Ejemplo n.º 10
0
        public void Log_NonExistingBot_ShouldReturnFalse()
        {
            var databaseContext = DatabaseFactory.Create();
            var timeProvider    = TimeProviderFactory.Create();
            var statsService    = new StatsService(databaseContext, timeProvider);

            var stats = new LogStatsDto
            {
                BotId = "1",
                ExecutedCommandsCount = 2,
                GuildsCount           = 3,
                MembersCount          = 4
            };

            var result = statsService.Log(stats);

            Assert.False(result);
            Assert.Equal(0, databaseContext.Stats.Count());
        }
Ejemplo n.º 11
0
        public void GetBot_ExistingBot_ShouldReturnBotData()
        {
            var databaseContext = DatabaseFactory.Create();
            var timeProvider    = TimeProviderFactory.Create();
            var botService      = new BotsService(databaseContext, timeProvider);

            databaseContext.Bots.Add(new BotModel
            {
                Id         = "1000",
                Name       = "Bot1",
                CreateTime = timeProvider.Get()
            });
            databaseContext.SaveChanges();

            var result = botService.GetBot("1000");

            Assert.Equal("1000", result.Id);
            Assert.Equal("Bot1", result.Name);
            Assert.Equal(timeProvider.Get(), result.CreateTime);
        }
Ejemplo n.º 12
0
        public void RegisterBot_NonExistingBot_ShouldReturnSuccessAndSaveInDatabase()
        {
            var databaseContext = DatabaseFactory.Create();
            var timeProvider    = TimeProviderFactory.Create();
            var botService      = new BotsService(databaseContext, timeProvider);

            var bot = new RegisterBotDto
            {
                Id   = "1000",
                Name = "Bot1"
            };

            var result        = botService.RegisterBot(bot);
            var registeredBot = databaseContext.Bots.First();

            Assert.Equal(RegisterResult.Success, result);
            Assert.Equal(1, databaseContext.Bots.Count());
            Assert.Equal("1000", registeredBot.Id);
            Assert.Equal("Bot1", registeredBot.Name);
            Assert.Equal(timeProvider.Get(), registeredBot.CreateTime);
        }