public async Task CreateNews_WhenAllParametersAreValid() { var dabataseName = nameof(CreateNews_WhenAllParametersAreValid); var options = NewsTestUtils.GetOptions(dabataseName); var mappingProviderMock = new Mock <IMappingProvider>(); DateTime createdOn = DateTime.Now; string newsTitle = "Spider-Man Far From Home soon in cinemas"; string text = " Spider-Man: Far From Home will be released in theaters on July 5, 2019"; string imageUrl = "anyimage.jpg"; using (var arrangeContext = new MovieManagementContext(options)) { var sut = new NewsService(arrangeContext, mappingProviderMock.Object); await sut.CreateNewsAsync(createdOn, newsTitle, text, imageUrl); arrangeContext.SaveChanges(); } using (var actAndAssertContext = new MovieManagementContext(options)) { Assert.IsTrue(actAndAssertContext.News.Count() == 1); Assert.IsTrue(actAndAssertContext.News.Any(m => m.Title == newsTitle)); } }
public async Task EditNewsText_WithCorrectInformation() { var dabataseName = nameof(Throw_WhenNews_DoesNotExists); var options = NewsTestUtils.GetOptions(dabataseName); NewsTestUtils.FillContextWithNews(options); var mappingProviderMock = new Mock <IMappingProvider>(); string newsTitle = "Spider-Man Far From Home soon in cinemas"; string changedNewsText = "Spider-Man tickets have already been sold out due to huge interest"; var newsViewModel = new NewsViewModel() { Text = changedNewsText }; using (var actAndAssertContext = new MovieManagementContext(options)) { var sut = new NewsService(actAndAssertContext, mappingProviderMock.Object); await sut.EditNewsTextAsync(newsTitle, newsViewModel); Assert.IsTrue(await actAndAssertContext.News.AnyAsync(m => m.Text == changedNewsText)); } }
public async Task Throw_WhenNews_DoesNotExists() { var dabataseName = nameof(Throw_WhenNews_DoesNotExists); var options = NewsTestUtils.GetOptions(dabataseName); NewsTestUtils.FillContextWithNews(options); var mappingProviderMock = new Mock <IMappingProvider>(); using (var actAndAssertContext = new MovieManagementContext(options)) { var sut = new NewsService(actAndAssertContext, mappingProviderMock.Object); string newsTitle = "Michael Jordan received an Oscar for Creed II"; await Assert.ThrowsExceptionAsync <EntityInvalidException>( async() => await sut.GetNewsByNameAsync(newsTitle)); } }
public async Task Call_MapFunction_Once() { var dabataseName = nameof(Call_MapFunction_Once); var options = NewsTestUtils.GetOptions(dabataseName); var collectionOfNews = new List <News>(); var mappingProviderMock = new Mock <IMappingProvider>(); mappingProviderMock .Setup(x => x.MapTo <ICollection <NewsViewModel> >(It.IsAny <List <News> >())) .Callback <object>(inputargs => collectionOfNews = inputargs as List <News>); using (var arrangeContext = new MovieManagementContext(options)) { arrangeContext.News.Add(new News() { Id = "411855e5-579b-4a01-bddd-e5ade62da9f4", Title = "New Spiderman", Text = " Spider-Man: Far From Home will be released in theaters on July 5, 2019, in Bulgaria on 7th.", ImageUrl = "testingimage.jpg" }); arrangeContext.News.Add(new News() { Id = "b6339180-2f36-44b7-89e9-2849b398cf17", Title = "New Marvel movies", Text = "After avengers there will be more marvel movies.", ImageUrl = "testingimage2.jpg" }); await arrangeContext.SaveChangesAsync(); } using (var actAndAssertContext = new MovieManagementContext(options)) { var sut = new NewsService(actAndAssertContext, mappingProviderMock.Object); await sut.GetAllNewsAsync(); mappingProviderMock.Verify(m => m.MapTo <ICollection <NewsViewModel> >(collectionOfNews), Times.Once); } }
public async Task Throw_WhenNews_DoNotExist() { var dabataseName = nameof(Throw_WhenNews_DoNotExist); var options = NewsTestUtils.GetOptions(dabataseName); NewsTestUtils.FillContextWithNews(options); var mappingProviderMock = new Mock <IMappingProvider>(); string newsTitle = "BatMan is back!"; using (var actAndAssertContext = new MovieManagementContext(options)) { var sut = new NewsService(actAndAssertContext, mappingProviderMock.Object); await Assert.ThrowsExceptionAsync <EntityInvalidException>( async() => await sut.DeleteNews(newsTitle)); } }
public async Task Delete_NewsSuccesfully() { var dabataseName = nameof(Delete_NewsSuccesfully); var options = NewsTestUtils.GetOptions(dabataseName); NewsTestUtils.FillContextWithNews(options); var mappingProviderMock = new Mock <IMappingProvider>(); using (var actAndAssertContext = new MovieManagementContext(options)) { var sut = new NewsService(actAndAssertContext, mappingProviderMock.Object); string newsTitle = "Spider-Man Far From Home soon in cinemas"; Assert.IsTrue(actAndAssertContext.News.Count() == 1); await sut.DeleteNews(newsTitle); Assert.IsTrue(actAndAssertContext.News.Count() == 0); } }
public async Task ReturnCorrectViewModel() { var dabataseName = nameof(ReturnCorrectViewModel); var options = NewsTestUtils.GetOptions(dabataseName); var mappingProviderMock = new Mock <IMappingProvider>(); mappingProviderMock.Setup(x => x.MapTo <NewsViewModel>(It.IsAny <News>())).Returns(new NewsViewModel()); using (var actAndAssertContext = new MovieManagementContext(options)) { var sut = new NewsService(actAndAssertContext, mappingProviderMock.Object); DateTime createdOn = DateTime.Now; string newsTitle = "Spider-Man Far From Home soon in cinemas"; string text = " Spider-Man: Far From Home will be released in theaters on July 5, 2019"; string imageUrl = "anyimage.jpg"; var result = await sut.CreateNewsAsync(createdOn, newsTitle, text, imageUrl); Assert.IsInstanceOfType(result, typeof(NewsViewModel)); } }
public async Task Throw_WhenNews_DoExist() { var dabataseName = nameof(Throw_WhenNews_DoExist); var options = NewsTestUtils.GetOptions(dabataseName); NewsTestUtils.FillContextWithNews(options); var mappingProviderMock = new Mock <IMappingProvider>(); DateTime createdOn = DateTime.Now; string newsTitle = "Spider-Man Far From Home soon in cinemas"; string text = " Spider-Man: Far From Home will be released in theaters on July 5, 2019"; string imageUrl = "anyimage.jpg"; using (var actAndAssertContext = new MovieManagementContext(options)) { var sut = new NewsService(actAndAssertContext, mappingProviderMock.Object); await Assert.ThrowsExceptionAsync <EntityAlreadyExistsException>( async() => await sut.CreateNewsAsync(createdOn, newsTitle, text, imageUrl)); } }