public void Update_ShouldThrowExceptionWhenTopicDoesNotExists() { var user = UserCreator.Create("test"); var topic = TopicCreator.Create(user); var list = new List <Topic>(); var topicRepo = DeletableEntityRepositoryMock.Get <Topic>(list); var service = new TopicService(topicRepo.Object); Exception ex = Assert.Throws <AggregateException>(() => service.UpdateAsync(topic.Id, user.Id, string.Empty, string.Empty).Wait()); Assert.Contains("Topic does not exist", ex.Message); }
public void GetById_ShouldReturnCorrectData() { var user = UserCreator.Create("test"); var topic = TopicCreator.Create(user); var topicRepo = DeletableEntityRepositoryMock.Get <Topic>(new List <Topic>() { topic }); var service = new TopicService(topicRepo.Object); var result = service.GetById <TopicViewModel>(topic.Id); Assert.NotNull(result); Assert.Equal(topic.Id, result.Id); }
public void GetLatest_ShouldReturnCorrectData() { var user = UserCreator.Create("test"); var list = new List <Topic>() { TopicCreator.Create(user), TopicCreator.Create(user), }; var topicRepo = DeletableEntityRepositoryMock.Get <Topic>(list); var service = new TopicService(topicRepo.Object); var result = service.GetLatest <TopicViewModel>(); Assert.Equal(2, result.Count); }
public void Add_ShouldExecuteCorrectly() { var user = UserCreator.Create("test"); var topic = TopicCreator.Create(user); var list = new List <TopicReply>(); var topicRepo = DeletableEntityRepositoryMock.Get <Topic>(new List <Topic>() { topic }); var topicRepliesRepo = EfRepositoryMock.Get <TopicReply>(list); var service = new TopicReplyService(topicRepliesRepo.Object, topicRepo.Object); service.AddAsync(topic.Id, user.Id, string.Empty).Wait(); Assert.Single(list); }
public void GetAllByUser_ShouldReturnCorrectData() { var user = UserCreator.Create("test"); var visitor = UserCreator.Create("visitor"); var other = UserCreator.Create("other"); var list = new List <Topic>() { TopicCreator.Create(user), TopicCreator.Create(visitor) }; var topicRepo = DeletableEntityRepositoryMock.Get <Topic>(list); var service = new TopicService(topicRepo.Object); var userTopics = service.GetAllByUser <TopicViewModel>(user.Id); var visitorTopics = service.GetAllByUser <TopicViewModel>(visitor.Id); var otherTopics = service.GetAllByUser <TopicViewModel>(other.Id); Assert.Single(userTopics); Assert.Single(visitorTopics); Assert.Empty(otherTopics); }
public IActionResult CreateHost([FromBody] PlayerForUpdateDto player) { try { if (player == null) { _logger.LogError("Player object sent from client is null."); return(BadRequest("Player object is null")); } if (!ModelState.IsValid) { _logger.LogError("Invalid Player object sent from client."); return(BadRequest("Invalid model object")); } SessionCodeGenerator generator = new SessionCodeGenerator(); TopicCreator creator = new TopicCreator(); // create new session // start create new session code string session_code = ""; bool inUse = true; while (inUse) { session_code = generator.GenerateSessionCode(); inUse = _repository.SessionData.ValidateIfActive(session_code); } // end create new session code // start create new session SessionData sessionData = new SessionData(); sessionData.session_code = session_code; _repository.SessionData.CreateSession(sessionData); // end create new session // start create new topic TopicData data = creator.CreateNewTopic(session_code); data.sessionCode = session_code; _repository.TopicData.CreateTopic(data); _repository.Save(); // end create new topic // start create new player Player PlayerEntity = _mapper.Map <Player>(player); PlayerEntity.orderNumber = 1; PlayerEntity.session_id = sessionData.id; _repository.Player.CreatePlayer(PlayerEntity); _repository.Save(); // end create new player var session = _repository.SessionData.GetBySessionCodeWithDetails(session_code); SessionDataDto result = _mapper.Map <SessionDataDto>(session); return(Ok(result)); //return CreatedAtRoute("CategoryById", new { id = createdEntity.id }, createdEntity); } catch (Exception ex) { _logger.LogError($"Something went wrong inside CreateArtist action: {ex.Message}"); return(StatusCode(500, "Internal server error")); } }