public async Task RedirectWhenUpdateAsAdmin() { // Assign var oldNewsItem = GetFakeNews().First(); var newNewsItem = GetFakeNews().First(); var dateTimeFactory = new DateTimeFactory(); var fileServiceMock = new Mock <IFileStorageService>(); var user = new ClaimsPrincipalFake(new Claim(ClaimTypes.Role, "Admin")); newNewsItem.UserId = "anne.the.admin"; DbContextFake.SeedDb <IntranetApiContext>(c => c.News.AddRange(oldNewsItem), ensureDeleted: true); using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { var newsController = ControllerFake.GetController <NewsController>(context, dateTimeFactory, fileServiceMock.Object); newsController.ControllerContext.HttpContext.User = user; // Act var result = await newsController.Edit(1, new NewsViewModel(newNewsItem)); // Assert Assert.True(result.ValidateActionRedirect("Details")); } }
public async Task CheckNewsItemWasCorrectlyPosted() { // Assign var newsItem = GetFakeNews().First(); var dateTimeFactory = new DateTimeFactory(); var fileServiceMock = new Mock <IFileStorageService>(); var username = "******"; var displayName = "Test User"; var user = new ClaimsPrincipalFake(new[] { new Claim(ClaimTypes.NameIdentifier, username), new Claim(ClaimTypes.Name, displayName), }); using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { var newsController = ControllerFake.GetController <NewsController>(context, dateTimeFactory, fileServiceMock.Object); newsController.ControllerContext.HttpContext.User = user; // Act await newsController.Create(new NewsViewModel(newsItem)); } using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { var news = context.News.Include(m => m.User).First(); // Assert Assert.NotNull(news); Assert.True(news.Text == newsItem.Text); Assert.True(news.Title == newsItem.Title); Assert.True(news.UserId == username); Assert.True(news.User.Username == username); Assert.True(news.User.DisplayName == displayName); } }
public async Task SetPublishDateWhenCreatingNews() { // Assign var dateTimeOffsetCreated = new DateTimeOffset(2017, 7, 18, 0, 0, 0, TimeSpan.Zero); var newsItem = GetFakeNews(dateTimeOffsetCreated).First(); var dateTimeFactoryCreatedMock = new Mock <IDateTimeFactory>(); var fileServiceMock = new Mock <IFileStorageService>(); dateTimeFactoryCreatedMock.SetupGet(d => d.DateTimeOffsetUtc).Returns(dateTimeOffsetCreated); var user = new ClaimsPrincipalFake(new Claim(ClaimTypes.NameIdentifier, "anne.the.admin")); newsItem.UserId = "anne.the.admin"; newsItem.Published = true; DbContextFake.SeedDb <IntranetApiContext>(c => c.News.AddRange(newsItem), ensureDeleted: true); using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { var newsController = ControllerFake.GetController <NewsController>(context, dateTimeFactoryCreatedMock.Object, fileServiceMock.Object); newsController.ControllerContext.HttpContext.User = user; // Act var result = await newsController.Create(new NewsViewModel(newsItem)); } using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { // Assert Assert.Equal(context.News.First().Created, dateTimeOffsetCreated); Assert.Equal(context.News.First().Updated, dateTimeOffsetCreated); Assert.True(context.News.First().Published); Assert.True(context.News.First().HasEverBeenPublished); } }
public void CheckNewsItemWasCorrectlyPosted() { // Assign var newsItem = GetFakeNews().First(); var dateTimeFactory = new DateTimeFactory(); var username = "******"; var displayName = "Test User"; var user = new ClaimsPrincipalFake(new[] { new Claim("username", username), new Claim("displayName", displayName), }); using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { var newsController = ControllerFake.GetController <NewsController>(context, dateTimeFactory); newsController.ControllerContext.HttpContext.User = user; // Act newsController.Post(new NewsViewModel(newsItem)); } using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { var news = context.News.Include(m => m.User).First(); // Assert Assert.NotNull(news); Assert.True(news.Text == newsItem.Text); Assert.True(news.Title == newsItem.Title); Assert.True(news.UserId == username); Assert.True(news.User.Username == username); Assert.True(news.User.DisplayName == displayName); } }
public void ReturnOkResultWhenDeleteAsAdmin() { // Assign var news = GetFakeNews().First(); var user = new ClaimsPrincipalFake(new Claim("role", "admin")); var dateTimeFactory = new DateTimeFactory(); DbContextFake.SeedDb <IntranetApiContext>(c => c.News.AddRange(news), ensureDeleted: true); using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { var newsController = ControllerFake.GetController <NewsController>(context, dateTimeFactory); newsController.ControllerContext.HttpContext.User = user; // Act var result = newsController.Delete(1); // Assert Assert.IsType <OkResult>(result); } }
public void ReturnOkResultWhenPosting() { // Assign var newsItem = GetFakeNews().First(); var newsItemVM = new NewsViewModel(newsItem); var username = "******"; var user = new ClaimsPrincipalFake(new Claim("username", username)); var dateTimeFactory = new DateTimeFactory(); using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { var newsController = ControllerFake.GetController <NewsController>(context, dateTimeFactory); newsController.ControllerContext.HttpContext.User = user; // Act var result = newsController.Post(newsItemVM); // Assert Assert.IsType <OkObjectResult>(result); } }
public async Task ValidModelStateWhenPosting() { // Assign var newsItem = GetFakeNews().First(); var newsItemVM = new NewsViewModel(newsItem); var username = "******"; var user = new ClaimsPrincipalFake(new Claim(ClaimTypes.NameIdentifier, username)); var dateTimeFactory = new DateTimeFactory(); var fileServiceMock = new Mock <IFileStorageService>(); using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { var newsController = ControllerFake.GetController <NewsController>(context, dateTimeFactory, fileServiceMock.Object); newsController.ControllerContext.HttpContext.User = user; // Act var result = await newsController.Create(newsItemVM); // Assert Assert.True(result.ValidateActionRedirect("Details")); } }
public async Task RedirectWhenDeleteAsAdmin() { // Assign var news = GetFakeNews().First(); var user = new ClaimsPrincipalFake(new Claim(ClaimTypes.Role, "Admin")); var dateTimeFactory = new DateTimeFactory(); var fileServiceMock = new Mock <IFileStorageService>(); DbContextFake.SeedDb <IntranetApiContext>(c => c.News.AddRange(news), ensureDeleted: true); using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { var newsController = ControllerFake.GetController <NewsController>(context, dateTimeFactory, fileServiceMock.Object); newsController.ControllerContext.HttpContext.User = user; // Act var result = await newsController.DeleteConfirmed(1); // Assert Assert.True(result.ValidateActionRedirect("Index")); } }
public async Task ValidModelStateWhenDeleteOwnNews() { // Assign var news = GetFakeNews().First(); var user = new ClaimsPrincipalFake(new Claim(ClaimTypes.NameIdentifier, "anne.the.admin")); var dateTimeFactory = new DateTimeFactory(); var fileServiceMock = new Mock <IFileStorageService>(); DbContextFake.SeedDb <IntranetApiContext>(c => c.News.AddRange(news), ensureDeleted: true); using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { var newsController = ControllerFake.GetController <NewsController>(context, dateTimeFactory, fileServiceMock.Object); newsController.ControllerContext.HttpContext.User = user; // Act var result = await newsController.Delete(1); // Assert Assert.IsType <ViewResult>(result); Assert.True(result.ModelStateIsValid()); } }
public void SetPublishDateWhenUpdateNews() { // Assign var dateTimeOffsetCreated = new DateTimeOffset(2017, 7, 18, 0, 0, 0, TimeSpan.Zero); var dateTimeOffsetUpdated = new DateTimeOffset(2017, 7, 19, 0, 0, 0, TimeSpan.Zero); var oldNewsItem = GetFakeNews(dateTimeOffsetCreated).First(); var newNewsItem = GetFakeNews(dateTimeOffsetCreated).First(); var dateTimeFactoryCreatedMock = new Mock <IDateTimeFactory>(); var dateTimeFactoryUpdatedMock = new Mock <IDateTimeFactory>(); dateTimeFactoryUpdatedMock.SetupGet(d => d.DateTimeOffsetUtc).Returns(dateTimeOffsetUpdated); var user = new ClaimsPrincipalFake(new Claim("username", "anne.the.admin")); oldNewsItem.Published = true; newNewsItem.UserId = "anne.the.admin"; newNewsItem.Published = true; DbContextFake.SeedDb <IntranetApiContext>(c => c.News.AddRange(oldNewsItem), ensureDeleted: true); using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { var newsController = ControllerFake.GetController <NewsController>(context, dateTimeFactoryUpdatedMock.Object); newsController.ControllerContext.HttpContext.User = user; // Act var result = newsController.Put(oldNewsItem.Id, new NewsViewModel(newNewsItem)); } using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { // Assert Assert.Equal(context.News.First().Created, dateTimeOffsetCreated); Assert.Equal(context.News.First().Updated, dateTimeOffsetUpdated); } }
public void ReturnOkResultWhenUpdateAsAdmin() { // Assign var oldNewsItem = GetFakeNews().First(); var newNewsItem = GetFakeNews().First(); var dateTimeFactory = new DateTimeFactory(); var user = new ClaimsPrincipalFake(new Claim("role", "admin")); newNewsItem.UserId = "anne.the.admin"; DbContextFake.SeedDb <IntranetApiContext>(c => c.News.AddRange(oldNewsItem), ensureDeleted: true); using (var context = DbContextFake.GetDbContext <IntranetApiContext>()) { var newsController = ControllerFake.GetController <NewsController>(context, dateTimeFactory); newsController.ControllerContext.HttpContext.User = user; // Act var result = newsController.Put(1, new NewsViewModel(newNewsItem)); // Assert Assert.IsType <OkObjectResult>(result); } }