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()); }
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); }
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); }