public void ReturnsListOfIds_WhenCategories_Present() { var options = DbContextMock.GetOptions("ReturnsListOfIds_WhenCategories_Present"); var searchedCategories = new List <string>() { "Test1", "Test2", "TestTest" }; using (var context = new BubaTubeDbContext(options)) { context.Categories.AddRange(CategoryMockData.GetListOfCategoryModels()); context.SaveChanges(); var categoryGetService = new CategoryQueries(context, fakeMapper); var result = categoryGetService.TakeApprovedCategoryIds(searchedCategories); var test1FromDb = context.Categories .FirstOrDefault(x => x.CategoryName == "Test1"); var test2FromDb = context.Categories .FirstOrDefault(x => x.CategoryName == "Test2"); Assert.NotEmpty(result); Assert.Equal(2, result.Count()); Assert.Contains(result, x => x == test1FromDb.Id); Assert.Contains(result, x => x == test2FromDb.Id); } }
public void ReturnsEmptyListIfNoFavouriteVideosSaved() { var options = DbContextMock.GetOptions("ReturnsEmptyListIfNoFavouriteVideosSaved"); using (var context = new BubaTubeDbContext(options)) { context.Users.Add(new User() { UserName = "******" }); context.SaveChanges(); var user = context.Users.First(); var favoutiteVideoService = new FavouriteVideosQueries(context, fakeMapper); var userDto = new UserSearchDTO() { Id = user.Id }; var result = favoutiteVideoService.GetFavouriteVideos(userDto); Assert.Empty(result); } }
public async Task DeleteVideo_FileDoesNotExist_InDatabase() { var options = DbContextMock.GetOptions("DeleteVideo_FileDoesNotExist_InDatabase"); var mockFile = new Mock <IFormFile>(); var mockFileCommands = new Mock <IFileCommands>(); var mockFileQueries = new Mock <IFileQueries>(); var mockCategoryQueries = new Mock <ICategoryQueries>(); mockFileCommands .Setup(x => x.Delete("test")) .Returns(true); using (var context = new BubaTubeDbContext(options)) { var uploadService = new VideoCommands( context, mockFileCommands.Object, mockFileQueries.Object, mockCategoryQueries.Object, fakeMapper); bool isSuccess = await uploadService.Delete(1); Assert.False(isSuccess); } }
public async Task DeleteVideo_FileDoesNotExist_OnFileSystem() { var options = DbContextMock.GetOptions("DeleteVideo_FileDoesNotExist_OnFileSystem"); var mockFile = new Mock <IFormFile>(); var mockFileCommands = new Mock <IFileCommands>(); var mockFileQueries = new Mock <IFileQueries>(); var mockCategoryQueries = new Mock <ICategoryQueries>(); mockFileCommands .Setup(x => x.Delete("test")) .Returns(false); using (var context = new BubaTubeDbContext(options)) { context.Videos.Add(new Video { Title = "test", FileName = "test.mp4" }); context.SaveChanges(); int videoId = context.Videos.First().Id; var uploadService = new VideoCommands( context, mockFileCommands.Object, mockFileQueries.Object, mockCategoryQueries.Object, fakeMapper); bool isSuccess = await uploadService.Delete(videoId); Assert.False(isSuccess); } }
public async Task SavesPassedData() { var options = DbContextMock.GetOptions("SavesPassedData"); var mockFile = new Mock <IFormFile>(); var mockFileCommands = new Mock <IFileCommands>(); var mockFileQueries = new Mock <IFileQueries>(); var mockCategoryQueries = new Mock <ICategoryQueries>(); Func <VideoDTO, Video> fakeMapper = _ => new Video { Title = "testVideo", Description = "test", Likes = 1, FileName = @"Name.mp4" }; var model = this.GetVideoDto(); var categories = new List <string>(); mockCategoryQueries .Setup(mock => mock.TakeAllCategoryIds(categories)) .Returns(new List <int>() { 2 }); using (var actContext = new BubaTubeDbContext(options)) { var uploadService = new VideoCommands( actContext, mockFileCommands.Object, mockFileQueries.Object, mockCategoryQueries.Object, fakeMapper); await uploadService.Save(model, mockFile.Object); } using (var assertContext = new BubaTubeDbContext(options)) { var savedModelInDb = assertContext.Videos.First(); Assert.Equal(1, assertContext.Videos.Count()); Assert.Equal(model.Title, savedModelInDb.Title); Assert.Equal(model.Description, savedModelInDb.Description); Assert.Equal(model.FileName, savedModelInDb.FileName); } }
public void ReturnsRecentVideos() { var options = DbContextMock.GetOptions("ReturnsRecentVideos"); using (var actContext = new BubaTubeDbContext(options)) { actContext.Videos.AddRange(VideoMockData.GetApprovedVideos(10)); actContext.Videos.AddRange(VideoMockData.GetDeletedVideos(10)); actContext.SaveChanges(); var videoQueries = new VideoQueries(actContext, fakeDTOMapper, fakePreviewDTOMapper); var resentVideos = videoQueries.MostResentVideos(); Assert.Equal(10, resentVideos.Count); } }
public void ReturnsEmptyList_WhenCategory_NotApproved() { var options = DbContextMock.GetOptions("ReturnsEmptyList_WhenCategory_NotApproved"); var searchedCategories = new List <string>() { "Test0" }; using (var context = new BubaTubeDbContext(options)) { context.Categories.AddRange(CategoryMockData.GetListOfCategoryModels()); context.SaveChanges(); var categoryGetService = new CategoryQueries(context, fakeMapper); var result = categoryGetService.TakeApprovedCategoryIds(searchedCategories); Assert.Empty(result); } }
public void ReturnsAllCategories() { var options = DbContextMock.GetOptions("ReturnsAllCategories"); var searchedCategories = new List <string>() { "Test0" }; IList <int> result; using (var context = new BubaTubeDbContext(options)) { context.Categories.AddRange(CategoryMockData.GetListOfCategoryModels()); context.SaveChanges(); var categoryGetService = new CategoryQueries(context, fakeMapper); result = categoryGetService.TakeAllCategoryIds(searchedCategories); Assert.Equal(1, result.Count); } }
public void ReturnsListOfFavouriteVideosOfUser() { var options = DbContextMock.GetOptions("ReturnsListOfFavouriteVideosOfUser"); using (var context = new BubaTubeDbContext(options)) { context.Users.Add(new User() { UserName = "******" }); context.Videos.Add(new Video() { Title = "TestVideo", FileName = "testVideo.mp4", AuthorId = "123" }); context.SaveChanges(); var user = context.Users.First(); var video = context.Videos.First(); context.UserVideo.Add(new UserVideo() { UserId = user.Id, VideoId = video.Id }); context.SaveChanges(); var favoutiteVideoService = new FavouriteVideosQueries(context, fakeMapper); var userDto = new UserSearchDTO() { Id = user.Id }; var result = favoutiteVideoService.GetFavouriteVideos(userDto); Assert.NotEmpty(result); Assert.Single(result); Assert.Equal(video.Title, result.First().Title); } }
public async Task AddsListOfCategories() { var options = DbContextMock.GetOptions("AddsListOfCategories"); var mockFile = new Mock <IFormFile>(); var mockFileCommands = new Mock <IFileCommands>(); var mockFileQueries = new Mock <IFileQueries>(); var mockCategoryQueries = new Mock <ICategoryQueries>(); var categories = new List <string>() { "Test1" }; mockCategoryQueries .Setup(mock => mock.TakeAllCategoryIds(categories)) .Returns(new List <int>() { 2 }); using (var actContext = new BubaTubeDbContext(options)) { var model = this.GetVideoDto(); model.Categories = categories; var uploadVideoService = new VideoCommands( actContext, mockFileCommands.Object, mockFileQueries.Object, mockCategoryQueries.Object, fakeMapper); await uploadVideoService.Save(model, mockFile.Object); } using (var assertContext = new BubaTubeDbContext(options)) { Assert.Equal(2, assertContext.VideoCategory.First().CategoryId); Assert.Equal(1, assertContext.VideoCategory.Count()); } }
public async Task ApprovesVideo() { var options = DbContextMock.GetOptions("ApprovesVideo"); var mockFile = new Mock <IFormFile>(); var mockFileCommands = new Mock <IFileCommands>(); var mockFileQueries = new Mock <IFileQueries>(); var mockCategoryQueries = new Mock <ICategoryQueries>(); using (var actContext = new BubaTubeDbContext(options)) { actContext.Videos.Add(new Video { Title = "test", FileName = "test" }); actContext.SaveChanges(); int videoId = actContext.Videos.First().Id; var uploadService = new VideoCommands( actContext, mockFileCommands.Object, mockFileQueries.Object, mockCategoryQueries.Object, fakeMapper); bool isSuccess = await uploadService.Approve(videoId); Assert.True(isSuccess); } using (var assertContext = new BubaTubeDbContext(options)) { Video video = assertContext.Videos .First(); Assert.True(video.IsApproved); } }
public async Task CreatesNavigationProperty_VideoCategory() { var options = DbContextMock.GetOptions("CreatesNavigationProperty_VideoCategory"); var mockFile = new Mock <IFormFile>(); var mockFileCommands = new Mock <IFileCommands>(); var mockFileQueries = new Mock <IFileQueries>(); var mockCategoryQueries = new Mock <ICategoryQueries>(); var categories = new List <string>(); using (var context = new BubaTubeDbContext(options)) { context.Categories.AddRange(CategoryMockData.GetListOfCategoryModels()); context.SaveChanges(); var categoryFromDb = context.Categories .First(x => x.IsАpproved == true); mockCategoryQueries .Setup(mock => mock.TakeAllCategoryIds(categories)) .Returns(new List <int>() { categoryFromDb.Id }); var model = this.GetVideoDto(); model.Categories = categories; var uploadVideoService = new VideoCommands( context, mockFileCommands.Object, mockFileQueries.Object, mockCategoryQueries.Object, fakeMapper); await uploadVideoService.Save(model, mockFile.Object); Assert.Equal(categoryFromDb.CategoryName, context.VideoCategory.First().Category.CategoryName); } }
public void ReturnsUsers_RegisteredInPeriod() { var options = DbContextMock.GetOptions("ReturnsUsers_RegisteredInPeriod "); IReadOnlyCollection <UserDTO> oneMonth; IReadOnlyCollection <UserDTO> threeMonth; IReadOnlyCollection <UserDTO> fourMonth; using (var context = new BubaTubeDbContext(options)) { context.AddRange(UserMockData.GetListOfUserModels()); context.SaveChanges(); var userQueries = new UserQueries(context, fakeMapper); oneMonth = userQueries.RegisterdInPeriod(DateTime.Now, DateTime.Now.AddDays(-1)); threeMonth = userQueries.RegisterdInPeriod(DateTime.Now, DateTime.Now.AddMonths(-3)); fourMonth = userQueries.RegisterdInPeriod(DateTime.Now, DateTime.Now.AddMonths(-6)); } Assert.Equal(0, oneMonth.Count); Assert.Equal(3, threeMonth.Count); Assert.Equal(6, fourMonth.Count); }
public void ReturnsUsers_LastActivity() { var options = DbContextMock.GetOptions("ReturnsUsers_LastActivity"); IReadOnlyCollection <UserDTO> lastOneMonth; IReadOnlyCollection <UserDTO> lastThreeMonth; IReadOnlyCollection <UserDTO> lastFourMonth; using (var context = new BubaTubeDbContext(options)) { context.AddRange(UserMockData.GetListOfUserModels()); context.SaveChanges(); var userQueries = new UserQueries(context, fakeMapper); lastOneMonth = userQueries.ByLastActivity(1); lastThreeMonth = userQueries.ByLastActivity(3); lastFourMonth = userQueries.ByLastActivity(4); } Assert.Equal(1, lastOneMonth.Count); Assert.Equal(3, lastThreeMonth.Count); Assert.Equal(6, lastFourMonth.Count); }