Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #5
0
        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"));
            }
        }