Пример #1
0
        public async Task AddNew(NewAddInputModel input, string userId)
        {
            if (input == null)
            {
                throw new ArgumentNullException("input", $"The given input was null!");
            }

            if (!this.db.Users.Any(u => u.Id == userId))
            {
                throw new ArgumentNullException("userId", $"There is no user with the given user Id!");
            }

            var newDb = new New()
            {
                Title      = input.Title,
                Content    = input.Content,
                Image      = input.Image,
                UserId     = userId,
                UploadedOn = DateTime.Now,
            };

            await this.db.News.AddAsync(newDb);

            await this.db.SaveChangesAsync();
        }
        public async Task <IActionResult> AddNew(NewAddInputModel input)
        {
            var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier);

            if (!this.User.IsInRole("Administrator"))
            {
                return(this.Redirect("/"));
            }

            await this.newsService.AddNew(input, userId);

            return(this.Redirect("/LOL/Home"));
        }
        public async Task EditNewShouldReturnTrueWhenSuccessfullyEditedNew()
        {
            var user = new ApplicationUser()
            {
                Email        = "*****@*****.**",
                PasswordHash = "4297F44B13955235245B2497399D7A93",
            };

            var testNewTitle   = "Test";
            var testNewContent = "TestContentTestContentTestContent";
            var testNewImage   = "https://p.bigstockphoto.com/GeFvQkBbSLaMdpKXF1Zv_bigstock-Aerial-View-Of-Blue-Lakes-And--227291596.jpg";

            var newDbF = new New()
            {
                Title      = testNewTitle,
                Content    = testNewContent,
                Image      = testNewImage,
                UserId     = user.Id,
                UploadedOn = DateTime.UtcNow,
            };

            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase("test");
            var db = new ApplicationDbContext(options.Options);

            await db.Users.AddAsync(user);

            await db.News.AddAsync(newDbF);

            await db.SaveChangesAsync();

            var service = new NewsService(db);

            var editedInput = new NewAddInputModel()
            {
                Title   = "EditTitle",
                Content = "EditContent",
                Image   = "EditedImage",
            };

            bool isEdited = await service.EditNew(editedInput, newDbF.NewId);

            var editedNew = db.News.First();

            Assert.True(isEdited, "Edit New does not return true upon successfully editing a new!");
            Assert.Equal(editedInput.Title, editedNew.Title);
            Assert.Equal(editedInput.Content, editedNew.Content);
            Assert.Equal(editedInput.Image, editedNew.Image);
        }
        public async Task EditNewShouldThrowArgumentNullExceptionIfGivenInvalidNewId()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase("test");
            var db = new ApplicationDbContext(options.Options);

            var service = new NewsService(db);

            var editedInput = new NewAddInputModel()
            {
                Title   = "EditTitle",
                Content = "EditContent",
                Image   = "EditedImage",
            };

            await Assert.ThrowsAsync <ArgumentNullException>(() => service.EditNew(editedInput, "fake_id"));
        }
        public async Task AddNewShouldThrowArgumentNullExceptionIfGivenInvalidUserId()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase("test");
            var db = new ApplicationDbContext(options.Options);

            var service = new NewsService(db);

            var testNewTitle   = "Test";
            var testNewContent = "TestContentTestContentTestContent";
            var testNewImage   = "https://p.bigstockphoto.com/GeFvQkBbSLaMdpKXF1Zv_bigstock-Aerial-View-Of-Blue-Lakes-And--227291596.jpg";

            var addNewInput = new NewAddInputModel()
            {
                Title   = testNewTitle,
                Content = testNewContent,
                Image   = testNewImage,
            };

            await Assert.ThrowsAsync <ArgumentNullException>(() => service.AddNew(addNewInput, "fake_user_id"));
        }
        public async Task AddNewShouldAddNewWithGivenValidNewAddInputModelAndUserId()
        {
            var user = new ApplicationUser()
            {
                Email        = "*****@*****.**",
                PasswordHash = "4297F44B13955235245B2497399D7A93",
            };

            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase("testadd");
            var db = new ApplicationDbContext(options.Options);

            await db.Users.AddAsync(user);

            await db.SaveChangesAsync();

            var service = new NewsService(db);

            var testNewTitle   = "Test";
            var testNewContent = "TestContentTestContentTestContent";
            var testNewImage   = "https://p.bigstockphoto.com/GeFvQkBbSLaMdpKXF1Zv_bigstock-Aerial-View-Of-Blue-Lakes-And--227291596.jpg";

            var addNewInput = new NewAddInputModel()
            {
                Title   = testNewTitle,
                Content = testNewContent,
                Image   = testNewImage,
            };

            int newsCountBeforeAdd = db.News.Count();

            await service.AddNew(addNewInput, user.Id);

            var addedNew = db.News.First();

            Assert.Equal(newsCountBeforeAdd + 1, db.News.Count());
            Assert.Equal(addNewInput.Title, addedNew.Title);
            Assert.Equal(addNewInput.Content, addedNew.Content);
            Assert.Equal(addNewInput.Image, addedNew.Image);
        }
Пример #7
0
        public async Task <bool> EditNew(NewAddInputModel input, string newId)
        {
            if (input == null)
            {
                throw new ArgumentNullException("input", $"The given input was null!");
            }

            var newDb = this.db.News.FirstOrDefault(n => n.NewId == newId);

            if (newDb != null)
            {
                newDb.Title   = input.Title;
                newDb.Content = input.Content;
                newDb.Image   = input.Image;

                await this.db.SaveChangesAsync();

                return(true);
            }
            else
            {
                throw new ArgumentNullException("newId", $"There is no new with the given new Id ({newId})");
            }
        }