Example #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());
        }
        public ActionResult RegisterBot([FromBody] RegisterBotDto registerBotDto)
        {
            if (_botsService.IsBotRegistered(registerBotDto.Id))
            {
                return(new BadRequestResult());
            }

            if (_botsService.RegisterBot(registerBotDto) != RegisterResult.Success)
            {
                return(new StatusCodeResult(500));
            }

            return(new NoContentResult());
        }
Example #3
0
        public RegisterResult RegisterBot(RegisterBotDto registerBotDto)
        {
            if (_databaseContext.Bots.Any(p => p.Id == registerBotDto.Id))
            {
                return(RegisterResult.DuplicatedIdError);
            }

            var botModel = Mapper.Map <BotModel>(registerBotDto);

            botModel.CreateTime = _timeProvider.Get();

            _databaseContext.Bots.Add(botModel);
            _databaseContext.SaveChanges();

            return(RegisterResult.Success);
        }
        public void RegisterBot_ExistingId_ShouldReturnBadRequest()
        {
            var botServiceMock = new Mock <IBotsService>();
            var registerBotDto = new RegisterBotDto
            {
                Id   = "1000",
                Name = "Bot1"
            };

            botServiceMock.Setup(p => p.IsBotRegistered("1000")).Returns(true);

            var controller = new BotsController(botServiceMock.Object);
            var result     = controller.RegisterBot(registerBotDto);

            Assert.IsAssignableFrom <BadRequestResult>(result);
        }
        public void RegisterBot_NonExistingId_ShouldReturnNoContent()
        {
            var botServiceMock = new Mock <IBotsService>();
            var registerBotDto = new RegisterBotDto
            {
                Id   = "1000",
                Name = "Bot1"
            };

            botServiceMock.Setup(p => p.IsBotRegistered("1000")).Returns(false);
            botServiceMock.Setup(p => p.RegisterBot(registerBotDto)).Returns(RegisterResult.Success);

            var controller = new BotsController(botServiceMock.Object);
            var result     = controller.RegisterBot(registerBotDto);

            Assert.IsAssignableFrom <NoContentResult>(result);
        }
Example #6
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);
        }