public void GetAllNews_ShouldReturnAllNews()
        {
            var context = new NewsContext();
            context.News.Delete();
            var firstNews = new Models.News()
            {
                Title = "Murder",
                Content = "A man was slaughterd in Sofia last night.",
                PublishDate = DateTime.Now
            };
            context.News.Add(firstNews);
            var secNews = new Models.News()
            {
                Title = "Eros Ramazzotti",
                Content = "Ramazzotti will sing in Sofia in September",
                PublishDate = DateTime.Now
            };
            context.News.Add(secNews);
            context.SaveChanges();
            var repo = new NewsRepository(context);
            var newsFromDB = repo.All().ToArray();
            Assert.IsNotNull(newsFromDB[0]);
            Assert.AreEqual(firstNews.Title, newsFromDB[0].Title);
            Assert.AreEqual(firstNews.Content, newsFromDB[0].Content);
            Assert.AreEqual(firstNews.PublishDate, newsFromDB[0].PublishDate);
            Assert.IsTrue(newsFromDB[0].Id != 0);

            Assert.IsNotNull(newsFromDB[1]);
            Assert.AreEqual(secNews.Title, newsFromDB[1].Title);
            Assert.AreEqual(secNews.Content, newsFromDB[1].Content);
            Assert.AreEqual(secNews.PublishDate, newsFromDB[1].PublishDate);
            Assert.IsTrue(newsFromDB[1].Id != 0);
        }
Ejemplo n.º 2
0
        public ActionResult AddNews(ViewModel viewModel)
        {
            try
            {
                Models.News news = new Models.News();
                news.Descr = viewModel.Descr;
                string fileName  = Path.GetFileNameWithoutExtension(viewModel.file.FileName);
                string extension = Path.GetExtension(viewModel.file.FileName);
                fileName            = fileName + " " + DateTime.Now.ToString("yymmssfff") + extension;
                viewModel.NewsImage = "~/Content/image/news/" + fileName;
                fileName            = Path.Combine(Server.MapPath("~/Content/image/news/"), fileName);
                viewModel.file.SaveAs(fileName);
                news.Image = viewModel.NewsImage;

                db.News.Add(news);
                db.SaveChanges();
                ModelState.Clear();

                return(RedirectToAction("NewsDetail"));
            }
            catch (Exception ex)
            {
                ViewData["message"] = ex.Message;
                return(RedirectToAction("Error"));
            }
        }
        public void CreateNews_WhenNewsIsAddedToDbWithCorrectData_ShouldReturnNews()
        {
            // Arrange -> prapare the objects

            var repo = new NewsRepository(new NewsContext());
            var news = new Models.News()
            {
                Title = "Sample New News",
                PublishDate = DateTime.Now,
                Content = "Sample New News Content"
            };

            // Act -> perform some logic
            repo.Add(news);
            repo.SaveChanges();

            // Assert -> validate the results
            var newsFromDb = repo.Find(news.Id);

            Assert.IsNotNull(newsFromDb);
            Assert.AreEqual(news.Title, newsFromDb.Title);
            Assert.AreEqual(news.Content, newsFromDb.Content);
            Assert.AreEqual(news.PublishDate, newsFromDb.PublishDate);
            Assert.IsTrue(newsFromDb.Id != 0);
        }
Ejemplo n.º 4
0
        public void _Return_View_With_Model(string cloud, string apiKey, string apiSecret, int newsId)
        {
            //Arrange
            var model = new NewsDetailsViewModel();
            var news  = new Models.News();

            var mockedAuthProvider = new Mock <IAuthenticationProvider>();

            var mockedNewsService = new Mock <INewsService>();

            mockedNewsService.Setup(n => n.GetNewsById(newsId)).Returns(news);

            var mockedViewModelFactory = new Mock <IViewModelFactory>();

            mockedViewModelFactory.Setup(v => v.CreateNewsDetailsViewModel(It.IsAny <Models.News>())).Returns(model);

            var fakeAcc          = new CloudinaryDotNet.Account(cloud, apiKey, apiSecret);
            var mockedCloudinary = new Mock <Cloudinary>(fakeAcc);

            var newsControllerSUT = new NewsController(mockedAuthProvider.Object, mockedNewsService.Object, mockedViewModelFactory.Object, mockedCloudinary.Object);

            //Act
            var res = newsControllerSUT.Details(newsId) as ViewResult;

            //Assert
            Assert.AreEqual(model, res.Model);
        }
Ejemplo n.º 5
0
        public IActionResult News(ANews _news)
        {
            Models.News pro = new Models.News();
            pro = _news.editedNews;
            if (ModelState.IsValid)
            {
                if (pro != null)
                {
                    if (_news.editedNews.id == 0)
                    {
                        db.News.Add(pro);
                    }
                    else
                    {
                        Models.News pd = db.News.FirstOrDefault();
                        db.Entry(pd).State = Microsoft.EntityFrameworkCore.EntityState.Detached;
                        db.SaveChanges();
                        db.News.Update(pro);
                    }
                }
            }

            db.SaveChanges();
            updateNewsList(1, "", "", 1);
            ModelState.Clear();

            // ViewBag.pName = aProduct.editedProduct.name;
            // ViewBag.Id=aProduct.editedProduct.id;
            ViewBag.isCreation = "Create";
            ViewBag.totalPage  = Math.Ceiling(this.aNews.news.Count() / (double)nPageSize);

            return(View(this.aNews));
        }
Ejemplo n.º 6
0
        public HttpResponseMessage Put(int Id, Models.News value)
        {
            try
            {
                var News = from d in db.MstNews where d.Id == Id select d;

                if (News.Any())
                {
                    var UpdatedNews = News.FirstOrDefault();

                    SqlDateTime NewsDate = new SqlDateTime(new DateTime(Convert.ToDateTime(value.NewsDate).Year, +
                                                                        Convert.ToDateTime(value.NewsDate).Month, +
                                                                        Convert.ToDateTime(value.NewsDate).Day));

                    UpdatedNews.NewsDate    = NewsDate.Value;
                    UpdatedNews.News        = value.NewsDescription;
                    UpdatedNews.Particulars = value.Particulars;

                    db.SubmitChanges();

                    return(Request.CreateResponse(HttpStatusCode.OK));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.NotFound));
                }
            }
            catch (NullReferenceException)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
        }
Ejemplo n.º 7
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            if (context.Session["User"] == null)
            {
                context.Response.Write("no permission");
            }
            int  id       = -1;
            bool topState = false;

            int.TryParse(context.Request["id"], out id);
            topState = Convert.ToBoolean(context.Request["topState"]);
            if (id <= 0)
            {
                context.Response.Write("error");
                context.Response.End();
                return;
            }
            Models.News n = new Models.News()
            {
                NewsId = id, IsTop = topState
            };
            if (CommonNews.Helper.OperateContext.Current.TransferTopState(n))
            {
                context.Response.Write("true");
            }
            else
            {
                context.Response.Write("error");
            }
        }
Ejemplo n.º 8
0
 public void ProcessRequest(HttpContext context)
 {
     context.Response.ContentType = "text/plain";
     //判断Session,验证权限
     if (context.Session["User"] != null)
     {
         string title = context.Request["newsTitle"], content = context.Request["newsContent"], type = context.Request["newsType"], imgPath = context.Request["imagePath"], attachPath = context.Request["attachPath"], externalLink = context.Request["externalLink"], publishDate = context.Request["publishDate"];
         int    nType = -1;
         int.TryParse(type, out nType);
         //验证数据合法性
         if (nType <= 0 || String.IsNullOrEmpty(title))
         {
             return;
         }
         Models.News n = new Models.News()
         {
             NewsTitle = title, NewsContent = Common.ConverterHelper.GetContent(content), NewsTypeId = nType, NewsImagePath = Common.ConverterHelper.GetContent(imgPath), NewsAttachPath = Common.ConverterHelper.GetContent(attachPath), NewsExternalLink = Common.ConverterHelper.GetContent(externalLink), PublishTime = String.IsNullOrEmpty(publishDate)?DateTime.Now:Convert.ToDateTime(publishDate)
         };
         if (CommonNews.Helper.OperateContext.Current.AddNews(n))
         {
             context.Response.Write("true");
         }
         else
         {
             context.Response.Write("false");
         }
     }
     else
     {
         context.Response.Write("no permission");
     }
 }
Ejemplo n.º 9
0
        public async Task <IActionResult> Edit(long id, [Bind("Id,Title,PublisherId,NewsDate,Content,Image")] Models.News news)
        {
            if (id != news.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(news);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!NewsExists(news.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(news));
        }
Ejemplo n.º 10
0
        public virtual System.Web.Mvc.ActionResult Edit(Models.News news)
        {
            news.UpdateDateTime = Infrastructure.Utility.Now;

            if (ModelState.IsValid)
            {
                if (Request.Files["FileName"].ContentLength > 0)
                {
                    string directoryReal = string.Format("{0}/{1}", Server.MapPath("~/Content/NewsFiles"), Request.Files["FileName"].FileName);
                    string filname       = Request.Files["FileName"].FileName;
                    Request.Files["FileName"].SaveAs(directoryReal);
                    news.FileName = filname;
                }
                else
                {
                }
                news.FA_Description = System.Web.HttpUtility.HtmlDecode(news.FA_Description);
                UnitOfWork.NewsRepository.Update(news);

                UnitOfWork.Save();

                return(RedirectToAction(MVC.News.AdminIndex()));
            }

            return(View(news));
        }
        public void AddNewsWhenNewsIsAddedToDbShouldReturnNews()
        {
            //Arange -> prepare the objects
            var repo = new Repository<Models.News>(new NewsContext());
            var news = new Models.News()
            {
                Id = 1,
                Title = "title 1",
                Content = "content 1",
                PublishedData = DateTime.Now
            };

            //Act -> perform some logic
            repo.Add(news);
            repo.SaveChanges();

            //Assert -> validate the results
            var newsFromDb = repo.GetById(news.Id);

            Assert.IsNotNull(newsFromDb);
            Assert.AreEqual(news.Title, newsFromDb.Title);
            Assert.AreEqual(news.Content, newsFromDb.Content);
            Assert.AreEqual(news.PublishedData, newsFromDb.PublishedData);
            Assert.IsTrue(newsFromDb.Id != 0);
        }
Ejemplo n.º 12
0
 public ActionResult DeleteConfirmed(int id)
 {
     Models.News news = db.News.Find(id);
     db.News.Remove(news);
     db.SaveChanges();
     return(RedirectToAction("Index"));
 }
Ejemplo n.º 13
0
 /// <summary>
 /// 添加新闻
 /// </summary>
 /// <param name="news"></param>
 /// <param name="u"></param>
 /// <returns></returns>
 public bool AddNews(Models.News news)
 {
     //设置新闻发布时间--已经在Handler处设置
     //news.PublishTime = DateTime.Now;
     //新闻发布人
     news.NewsPublisher = (HttpContext.Current.Session["User"] as Models.User).UserName;
     try
     {
         if (String.IsNullOrEmpty(news.NewsExternalLink))
         {
             //news 静态化,设置news 的NewsPath
             //获取当前时间字符串,构建新闻路径
             string timeString = DateTime.Now.ToString("yyyyMMddHHmmssfff");
             news.NewsPath = "/News/" + news.NewsTypeId.ToString() + "/" + timeString.Substring(0, 6) + "/" + timeString + ".html";
             //添加新闻并获取新闻id,统计浏览次数
             news.NewsId = BLLSession.INews.AddDataWithIdReturn(news);
             //创建静态文件
             CreateNewsFile(news);
         }
         return(true);
     }
     catch (Exception ex)
     {
         logger.Error(ex);
         return(false);
     }
 }
Ejemplo n.º 14
0
 /// <summary>
 /// 更新新闻
 /// </summary>
 /// <param name="news">新闻ViewModel实体</param>
 /// <returns></returns>
 public bool UpdateNews(Models.News news)
 {
     news.NewsPublisher = (HttpContext.Current.Session["User"] as Models.User).UserName;
     try
     {
         //判断新闻有指向外链
         if (String.IsNullOrEmpty(news.NewsExternalLink))
         {
             //news 静态化,设置news 的 NewsId,统计浏览次数
             //获取新闻路径
             if (String.IsNullOrEmpty(news.NewsPath))
             {
                 news.NewsPath = SelectNews(news.NewsId).NewsPath;
             }
             //创建静态文件
             CreateNewsFile(news);
         }
         //设置修改项
         return(BLLSession.INews.Modify(news, "NewsTypeId", "NewsTitle", "NewsContent", "NewsPublisher", "NewsPath", "NewsImagePath", "NewsAttachPath", "NewsExternalLink", "IsTop") == 1);
     }
     catch (Exception ex)
     {
         logger.Error(ex);
         return(false);
     }
 }
Ejemplo n.º 15
0
        public ActionResult Edit(Models.News editPro)
        {
            if (Session["accname"] == null)
            {
                Session["accname"] = null;
                return(RedirectToAction("Login", "Account"));
            }
            else
            {
                ViewBag.pdcListEdit = new SelectList(news.Themes, "ID", "TenChuDe");



                try
                {
                    news.Entry(editPro).State = System.Data.Entity.EntityState.Modified;
                    news.SaveChanges();
                    SetAlert("Cập nhật tin tuc thành công!", "success");
                    return(RedirectToAction("Index", "News"));
                }
                catch (Exception)
                {
                    ViewBag.EditProError = "Không thể cập nhật tin tức.";
                }
                return(View());
            }
        }
Ejemplo n.º 16
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            //Model.FormatModel.JsonMsgModel jsonMsg;
            int id = -1;

            int.TryParse(context.Request["id"], out id);
            if (id <= 0)
            {
                //jsonMsg = new Model.FormatModel.JsonMsgModel() { BackupUrl = context.Request.UrlReferrer.ToString(), Msg = "error", Status = Model.FormatModel.JsonMsgStatus.error };
                context.Response.Write("error");
                context.Response.End();
                return;
            }
            try
            {
                Models.News news = CommonNews.Helper.OperateContext.Current.SelectNews(id);
                //jsonMsg = new Model.FormatModel.JsonMsgModel() { BackupUrl = context.Request.UrlReferrer.ToString(), Data = news, Msg = "success", Status = Model.FormatModel.JsonMsgStatus.ok };
                string jsonData = Common.ConverterHelper.ObjectToJson(news);
                context.Response.Write(jsonData);
            }
            catch (System.Exception)
            {
                context.Response.Write("error");
            }
        }
Ejemplo n.º 17
0
        public int Post(Models.News value)
        {
            try
            {
                Data.MstNew NewNews = new Data.MstNew();

                DateTime myDate = Convert.ToDateTime(value.NewsDate, new CultureInfo("en-US"));

                SqlDateTime NewsDate = new SqlDateTime(new DateTime(Convert.ToDateTime(myDate).Year, +
                                                                    Convert.ToDateTime(myDate).Month, +
                                                                    Convert.ToDateTime(myDate).Day));


                NewNews.NewsDate    = NewsDate.Value;
                NewNews.News        = value.NewsDescription;
                NewNews.Particulars = value.Particulars;

                db.MstNews.InsertOnSubmit(NewNews);
                db.SubmitChanges();

                return(NewNews.Id);
            }
            catch
            {
                return(0);
            }
        }
Ejemplo n.º 18
0
        public override System.Web.Mvc.ActionResult Edit(Models.News news)
        {
            var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Edit);

            ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "news", news);
            EditOverride(callInfo, news);
            return(callInfo);
        }
Ejemplo n.º 19
0
        protected async Task Hide(Models.News item)
        {
            await _newsService.HideAsync(item.Id);

            await SaveAsync();

            StateHasChanged();
        }
Ejemplo n.º 20
0
 public ShortNewsViewModel(Models.News news)
 {
     this.Id            = news.NewsId;
     this.Title         = news.Title;
     this.ImageUrl      = news.ImageUrl;
     this.DatePublished = news.DatePublished;
     this.Views         = news.Views;
 }
Ejemplo n.º 21
0
        private (bool, string) CanLikeOrDislikeNews(Models.News news)
        {
            var userId = User.FindFirst(JwtRegisteredClaimNames.Sub)?.Value;

            var foundedUserNews = _context.Set <UserNews>().Where(userNews => userNews.NewsId == news.Id)
                                  .Where(userNews => userNews.UserId == userId).Any();

            return(!foundedUserNews, userId);
        }
Ejemplo n.º 22
0
 public NewsDetailPage(Models.News news)
 {
     InitializeComponent();
     viewModel           = new ViewModels.NewsDetailViewModel(news);
     this.BindingContext = viewModel;
     web.Source          = new HtmlWebViewSource()
     {
         Html = news.HtmlContent
     };
 }
Ejemplo n.º 23
0
        //Action to insert new news
        public IActionResult AddNews(Models.News model)
        {
            model.Date = DateTime.Now;
            var category = _dataBaseContext.Categories.Where(c => c.Name == model.Category.Name).ToList();

            model.CategoryId = category[0].Id;
            model.Category   = null;
            _dataBaseContext.Add(model);
            _dataBaseContext.SaveChanges();
            return(RedirectToAction("Admin"));
        }
Ejemplo n.º 24
0
 public ActionResult Edit([Bind(Include = "News_id,News_title,News_content,News_date,Cat_id")] Models.News news)
 {
     if (ModelState.IsValid)
     {
         db.Entry(news).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.Cat_id = new SelectList(db.Categories, "Cat_id", "Cat_title", news.Cat_id);
     return(View(news));
 }
Ejemplo n.º 25
0
        protected void Add()
        {
            Model = new Models.News();

            // Model.AppUser = new AppUser();
            Model.GamesGroups = new List <Models.GamesGroup>();
            Model.Images      = new List <Image>();

            _showAdd            = true;
            _isButtonAddVisible = false;
        }
Ejemplo n.º 26
0
        async void Save_Clicked(object sender, EventArgs e)
        {
            Loading.IsVisible = true;
            Loading.IsRunning = true;
            try
            {
                App.localizer.SetLocale(App.defaultCulture);
                RestClient  restClient = App.restClient;
                Models.News news       = new Models.News();
                news.User = App.user;
                if (news.User == null)
                {
                    await DisplayAlert(App.localizeResProvider.GetText("Notification"), App.localizeResProvider.GetText("String186"), "Ok");
                }
                else
                {
                    if (this.news != null)
                    {
                        this.news.User    = App.user;
                        this.news.Content = Content;
                        this.news.Title   = txtTitle.Text;
                        var result = await restClient.PutAsync("news", this.news.ToModel(), this.news.NewsId);

                        if (result == ApiStatusConstant.SUCCESS)
                        {
                            await DisplayAlert(App.localizeResProvider.GetText("Notification"), App.localizeResProvider.GetText("String195"), "Ok");
                        }
                    }
                    else
                    {
                        news.Status      = 0;
                        news.Content     = Content;
                        news.Title       = txtTitle.Text;
                        news.CreatedTime = DateTime.Now;
                        var result = await restClient.PostAsync("news", news);

                        if (result == ApiStatusConstant.SUCCESS)
                        {
                            await DisplayAlert(App.localizeResProvider.GetText("Notification"), App.localizeResProvider.GetText("String196"), "Ok");
                        }
                    }
                    var existingPages = Navigation.NavigationStack.ToList();
                    for (int i = 1; i < existingPages.Count; i++)
                    {
                        Navigation.RemovePage(existingPages[i]);
                    }
                }
            }
            catch (Exception ex)
            {
            }
            Loading.IsVisible = false;
            Loading.IsRunning = false;
        }
        public async Task <IActionResult> Post(Models.News model)
        {
            if (model == null)
            {
                return(BadRequest());
            }

            var createdEntity = await _entityService.Create(model);

            return(Created(createdEntity));
        }
Ejemplo n.º 28
0
 public NewsDetailsViewModel(Models.News news)
 {
     this.Id            = news.NewsId;
     this.Title         = news.Title;
     this.Text          = news.Text;
     this.ImageUrl      = news.ImageUrl;
     this.DatePublished = news.DatePublished;
     this.Views         = news.Views;
     this.Category      = news.Category.Name;
     this.Author        = news.Author.UserName;
     this.Comments      = news.Comments;
 }
Ejemplo n.º 29
0
 public static NewsItemViewModel FromModel(Models.News news)
 {
     return(new NewsItemViewModel
     {
         PreviewImageUri = news.Body != null?news.Body.GetFirstImageUri() : "",
                               NewsId = news.NewsId,
                               Title = news.Title,
                               AuthorId = news.AuthorId,
                               Date = news.Date,
                               _dataModel = news
     });
 }
Ejemplo n.º 30
0
        public NewsViewModel Execute(EditNewsViewModel request)
        {
            UnitOfWork.BeginTransaction();
            Models.News model;
            if (!request.Id.HasDefaultValue())
            {
                model = Repository
                        .AsQueryable <Models.News>()
                        .Where(t => t.Id == request.Id)
                        .ToList()
                        .FirstOne();
            }
            else
            {
                model = new Models.News();
            }
            model.Version     = request.Version;
            model.CategoryId  = request.CategoryId;
            model.Title       = request.Title;
            model.Title_en    = request.Title_en;
            model.Summary     = request.Summary;
            model.Summary_en  = request.Summary_en;
            model.Content     = request.Content;
            model.Content_en  = request.Content_en;
            model.PublishDate = request.PublishDate;
            model.SortOrder   = request.SortOrder;
            if (request.Image != null && request.Image.ImageId.HasValue)
            {
                model.Image = Repository.AsProxy <MediaImage>(request.Image.ImageId.Value);
            }
            else
            {
                model.Image = null;
            }
            Repository.Save(model);
            UnitOfWork.Commit();

            if (!request.Image.ImageId.HasValue)
            {
                request.Image.ThumbnailUrl = "/file/bcms-pages/content/styles/images/bcms-no-image-2.png";
            }

            return(new NewsViewModel
            {
                Id = model.Id,
                CategoryId = model.CategoryId,
                Title = model.Title,
                Title_en = model.Title_en,
                SortOrder = model.SortOrder,
                Image = request.Image
            });
        }
        public void Creating_News_With_Incorrect_Data_Should_Throw_Exception()
        {
            var fakeNews = new Models.News
            {
                Title = null,
                Content = null,
                PublishDate = DateTime.Now
            };

            repo.News.Add(fakeNews);

            repo.SaveChanges();
        }
Ejemplo n.º 32
0
        public void Modify_Existing_News_Item_With_Incorrect_Data_Should_Throw_Exception()
        {
            var news = new Models.News
            {
                Id          = 2,
                Title       = null,
                Content     = null,
                PublishDate = DateTime.Now
            };

            repo.News.Update(news);
            repo.SaveChanges();
        }
Ejemplo n.º 33
0
        public void Modifying_Non_Existing_News_Should_Throw_Exception()
        {
            var news = new Models.News
            {
                Id          = 2000,
                Title       = "eeee",
                Content     = "Modified",
                PublishDate = DateTime.Now
            };

            repo.News.Update(news);
            repo.SaveChanges();
        }
Ejemplo n.º 34
0
        public void Creating_News_With_Incorrect_Data_Should_Throw_Exception()
        {
            var fakeNews = new Models.News
            {
                Title       = null,
                Content     = null,
                PublishDate = DateTime.Now
            };

            repo.News.Add(fakeNews);

            repo.SaveChanges();
        }
        public void AddNewsWhenNewsIsInvalidShouldThrowException()
        {
            //Arrange -> prepare the objects
            var repo = new Repository<Models.News>(new NewsContext());
            var invalidNews = new Models.News()
            {
                Content = null
            };

            //Act -> perform some logic
            repo.Add(invalidNews);
            repo.SaveChanges();

            //Assert -> expect an exception
        }
        public void Creating_News_Should_Create_And_Return_The_News()
        {
            var news = new Models.News
            {
                Title = "New 1",
                Content = "New 1",
                PublishDate = DateTime.Now
            };

            repo.News.Add(news);

            repo.SaveChanges();

            var newsFromDb = repo.News.Find(news.Id);

            Assert.IsNotNull(newsFromDb);
            Assert.AreEqual(news, newsFromDb);
        }
        public void Modify_Existing_News_Item_With_Correct_Data_Modifies_The_Item()
        {
            var news = new Models.News
            {
                Id = 2,
                Title = "Modified",
                Content = "Modified",
                PublishDate = DateTime.Now
            };

            repo.News.Update(news);

            repo.SaveChanges();

            var modifiedNews = repo.News.Find(2);

            Assert.IsNotNull(modifiedNews);
            Assert.AreEqual(news, modifiedNews);
        }
        public void Modifying_Non_Existing_News_Should_Throw_Exception()
        {
            var news = new Models.News
            {
                Id = 2000,
                Title = "eeee",
                Content = "Modified",
                PublishDate = DateTime.Now
            };

            repo.News.Update(news);
            repo.SaveChanges();
        }
        public void Modify_Existing_News_Item_With_Incorrect_Data_Should_Throw_Exception()
        {
            var news = new Models.News
            {
                Id = 2,
                Title = null,
                Content = null,
                PublishDate = DateTime.Now
            };

            repo.News.Update(news);
            repo.SaveChanges();
           
        }
        public void ModifyNewsWhenExistingItemShouldModify()
        {
            var repo = new Repository<Models.News>(new NewsContext());
            var news = new Models.News()
            {
                Id = 1,
                Title = "1",
                Content = "1",
                PublishedData = DateTime.Now
            };

            //Act -> perform some logic
            repo.Add(news);
            repo.SaveChanges();

            news.Title = "2";
            news.Content = "2";

            repo.Update(news);
            repo.SaveChanges();

            var newsFromDb = repo.GetById(news.Id);
            
            Assert.IsNotNull(newsFromDb);
            Assert.AreEqual("2", newsFromDb.Title);
            Assert.AreEqual("2", newsFromDb.Content);
            Assert.IsTrue(newsFromDb.Id != 0);
        }
        public void DeleteNewsWhenExistingItemShouldDelete()
        {
            //Arrange -> prepare the objects
            var repo = new Repository<Models.News>(new NewsContext());
            var news = new Models.News()
            {
                Id = 1,
                Title = "1",
                Content = "1",
                PublishedData = DateTime.Now
            };

            //Act -> perform some logic
            repo.Add(news);
            repo.SaveChanges();

            var newsFromDb = repo.GetById(news.Id);

            repo.Delete(newsFromDb);
            repo.SaveChanges();

            var newNewsFromDb = repo.GetById(news.Id);

            Assert.IsNull(newNewsFromDb);
        }
        public void CreateNews_WhenNewsIsInvalid_ShouldThrowException()
        {
            var repo = new NewsRepository(new NewsContext());
            var invalidNews = new Models.News()
            {
                Title = null,
                Content = "bla bla",
                PublishDate = DateTime.Now
            };

            repo.Add(invalidNews);
            repo.SaveChanges();

            // Assert -> expect an exception
        }
 public void ModifyNews_WhenExistingNewsIsModifiedWithCorrectData_ShouldReturnNews()
 {
     var context = new NewsContext();
     context.News.Delete();
     var news = new Models.News()
     {
         Title = "Murder",
         Content = "A man was slaughterd in Sofia last night.",
         PublishDate = DateTime.Now
     };
     context.News.Add(news);
     context.SaveChanges();
     var repo = new NewsRepository(context);
     var newsToChange = repo.Find(news.Id);
     newsToChange.Title = "Murder committed last night";
     repo.SaveChanges();
     var newsFromDb = repo.Find(news.Id);
     Assert.IsNotNull(newsFromDb);
     Assert.AreEqual(newsToChange.Title, newsFromDb.Title);
     Assert.AreEqual(news.Content, newsFromDb.Content);
     Assert.AreEqual(news.PublishDate, newsFromDb.PublishDate);
     Assert.IsTrue(newsFromDb.Id != 0);
 }
 public void ModifyNews_WhenExistingNewsIsModifiedWithIncorrectData_ShouldThrowException()
 {
     var context = new NewsContext();
     context.News.Delete();
     var news = new Models.News()
     {
         Title = "Murder",
         Content = "A man was slaughterd in Sofia last night.",
         PublishDate = DateTime.Now
     };
     context.News.Add(news);
     context.SaveChanges();
     var repo = new NewsRepository(context);
     var newsToChange = repo.Find(news.Id);
     newsToChange.Title = null;
     repo.SaveChanges();
 }
 public void DeleteNews_WhenDeletingExistingNews_ShouldDeleteNews()
 {
     var context = new NewsContext();
     context.News.Delete();
     var news = new Models.News()
     {
         Title = "Murder",
         Content = "A man was slaughterd in Sofia last night.",
         PublishDate = DateTime.Now
     };
     context.News.Add(news);
     context.SaveChanges();
     var repo = new NewsRepository(context);
     repo.Delete(news);
     repo.SaveChanges();
     var newsFromDb = repo.All().ToArray();
     Assert.AreEqual(0, newsFromDb.Count());
 }