示例#1
0
        public void Create_WithNonExistingItem_DoesNotThrow()
        {
            var user = new UserDetailModel
            {
                FirstName = "Johny",
                Id        = Guid.NewGuid(),
                LastName  = "Depp"
            };

            var team = new TeamDetailModel
            {
                Id   = Guid.NewGuid(),
                Name = "Pirates of the Caribean"
            };


            var model = new ThreadDetailModel
            {
                Id    = Guid.NewGuid(),
                Team  = team,
                Title = "Test title"
            };

            var returnedModel = fixture.Repository.Create(model);

            Assert.NotNull(returnedModel);

            fixture.Repository.Delete(returnedModel.Id);
        }
示例#2
0
        public void GetAll_ShouldNotReturnNull()
        {
            var user = new UserDetailModel
            {
                FirstName = "Johny",
                Id        = Guid.NewGuid(),
                LastName  = "Depp"
            };

            var team = new TeamDetailModel
            {
                Id   = Guid.NewGuid(),
                Name = "Pirates of the Caribean"
            };

            var model = new ThreadDetailModel
            {
                Id    = Guid.NewGuid(),
                Team  = team,
                Title = "Test title"
            };
            var createdModel = fixture.Repository.Create(model);

            var returnedUsersAll = fixture.Repository.GetAll();

            Assert.NotNull(returnedUsersAll);

            fixture.Repository.Delete(createdModel.Id);
        }
示例#3
0
        public void Delete_ShouldNotEqual()
        {
            var user = new UserDetailModel
            {
                FirstName = "Johny",
                Id        = Guid.NewGuid(),
                LastName  = "Depp"
            };

            var team = new TeamDetailModel
            {
                Id   = Guid.NewGuid(),
                Name = "Pirates of the Caribean"
            };


            var model = new ThreadDetailModel
            {
                Id    = Guid.NewGuid(),
                Team  = team,
                Title = "Test title"
            };

            var createdModelId = fixture.Repository.Create(model).Id;

            fixture.Repository.Delete(createdModelId);
            void Act() => fixture.Repository.GetById(createdModelId);

            Assert.Throws <InvalidOperationException>((Action)Act);
        }
示例#4
0
 public void Update(ThreadDetailModel model)
 {
     using (var dbContext = dbContextFactory.CreateDbContext())
     {
         var entity = ThreadMapper.DetailModelToEntity(model);
         dbContext.Threads.Update(entity);
         dbContext.SaveChanges();
     }
 }
示例#5
0
 public ThreadDetailModel Create(ThreadDetailModel model)
 {
     using (var dbContext = dbContextFactory.CreateDbContext())
     {
         var entity = ThreadMapper.DetailModelToEntity(model);
         dbContext.Threads.Add(entity);
         dbContext.SaveChanges();
         return(ThreadMapper.EntityToDetailModel(entity));
     }
 }
示例#6
0
 public static Thread DetailModelToEntity(ThreadDetailModel model)
 {
     if (model == null)
     {
         return(null);
     }
     return(new Thread
     {
         Id = model.Id,
         Title = model.Title,
         Team = TeamMapper.DetailModelToEntity(model.Team)
     });
 }
示例#7
0
        public void GetById_ShouldBeEqual()
        {
            var model = new ThreadDetailModel
            {
                Id    = Guid.NewGuid(),
                Title = "Test title"
            };

            var createdModel = fixture.Repository.Create(model);

            Assert.Equal(createdModel.Id, fixture.Repository.GetById(createdModel.Id).Id);

            fixture.Repository.Delete(createdModel.Id);
        }
        public static ThreadDetailModel ThreadToThreadDetailModel(Thread thread)
        {
            var threadModel = new ThreadDetailModel()
            {
                Content = thread.Content,
                DateCreated = thread.DateCreated,
                ThreadId = thread.ThreadId,
                Title = thread.Title,
            };

            foreach (var category in thread.Categories)
            {
                threadModel.Categories.Add(category.Name);
            }

            foreach (var post in thread.Posts)
            {
                var postModel = new PostModel()
                    {
                        Content = post.Content,
                        PostDate = post.PostDate,
                        PostedBy = post.Author.Nickname
                    };

                double averageVote = 0;
                double sumVotes = 0;
                foreach (var vote in post.Votes)
                {
                    sumVotes += vote.Value;
                }
                averageVote = sumVotes/post.Votes.Count;
                postModel.Rating = averageVote.ToString();
                threadModel.Posts.Add(postModel);
            }

            threadModel.CreatedBy = thread.User == null ? null : thread.User.Nickname;

            return threadModel;
        } 
示例#9
0
        public void Update_ShouldNotEqual()
        {
            var user = new UserDetailModel
            {
                FirstName = "Johny",
                Id        = Guid.NewGuid(),
                LastName  = "Depp"
            };

            var team = new TeamDetailModel
            {
                Id   = Guid.NewGuid(),
                Name = "Pirates of the Caribean"
            };


            var model = new ThreadDetailModel
            {
                Id    = Guid.NewGuid(),
                Team  = team,
                Title = "Test title"
            };

            var createdModel = fixture.Repository.Create(model);

            var updatedModel = model;

            updatedModel.Title = "Updated title";

            fixture.Repository.Update(updatedModel);

            var afterUpdateModel = fixture.Repository.GetById(updatedModel.Id);

            Assert.NotEqual(afterUpdateModel.Title, createdModel.Title);

            fixture.Repository.Delete(createdModel.Id);
        }
示例#10
0
        public void DetailMOdelToEntity_ShouldBeEqual()
        {
            var team = new TeamDetailModel
            {
                Id   = Guid.NewGuid(),
                Name = "Pirates of the Caribean"
            };


            var model = new ThreadDetailModel
            {
                Id    = Guid.NewGuid(),
                Team  = team,
                Title = "Test title"
            };

            var returned = ThreadMapper.DetailModelToEntity(model);

            Assert.Equal(model.Id, returned.Id);
            Assert.Equal(model.Title, returned.Title);
            Assert.Equal(model.Team.Name, returned.Team.Name);

            Assert.IsType <Thread>(returned);
        }
 public bool AddNewThread(ThreadDetailModel newThread)
 {
     throw new NotImplementedException();
 }