public void GetNotSecretById_ReturnsCorrectAlbums() { // Arrange var context = this.ServiceProvider.GetRequiredService <WmipDbContext>(); var album1 = new Album { Id = 1, Name = "Abm" }; var album2 = new Album { Id = 2, Name = "Abm", ApprovalStatus = ApprovalStatus.Approved, ReleaseStage = ReleaseStage.Announced }; var album3 = new Album { Id = 3, Name = "Abm" }; context.Albums.AddRange(album1, album2, album3); context.SaveChanges(); var albumsService = new AlbumsService(context); // Act var nonExisting = albumsService.GetNotSecretById(1); var exising = albumsService.GetNotSecretById(2); //Assert Assert.Null(nonExisting); Assert.NotNull(exising); }
public void IsUserCreator_ReturnsCorrectResults() { // Arrange var context = this.ServiceProvider.GetRequiredService <WmipDbContext>(); var album1 = new Album { Id = 1, Name = "Abm1", Artist = new User { Id = "1", UserName = "******" } }; var album2 = new Album { Id = 2, Name = "Abm2", Artist = new User { Id = "2", UserName = "******" } }; context.Albums.AddRange(album1, album2); context.SaveChanges(); var albumsService = new AlbumsService(context); // Act var usernameResultTrue = albumsService.IsUserCreatorByName("ivan", 1); var usernameResultFalse = albumsService.IsUserCreatorByName("ivan", 2); var idResultTrue = albumsService.IsUserCreatorById("1", 1); var idResultFalse = albumsService.IsUserCreatorById("1", 2); //Assert Assert.True(usernameResultTrue); Assert.False(usernameResultFalse); Assert.True(idResultTrue); Assert.False(idResultFalse); }
public void Delete_ShouldCallSaveChangesIfOperationIsAuthorizedAndAlbumIsFound() { // arrange string username = "******"; var album = new Album() { Id = 2, Name = "customAlbum0", Private = false, Owner = new User() { UserName = username } }; var data = new FakeGalleryData(); data.Albums.Add(album); var service = new AlbumsService(data); // act service.DeleteAlbumById(2, username); // assert var actual = data.SaveChangesCallCount; Assert.AreEqual(1, actual); }
public void Create_IncreasesCountAndAddsItem() { // Arrange var context = this.ServiceProvider.GetRequiredService <WmipDbContext>(); var albumsService = new AlbumsService(context); var creationInfo = new CreateAlbumDto() { AlbumCoverLink = "newlink", Genre = "newgenre", Name = "newname", ReleaseDate = DateTime.Now.AddDays(1), ReleaseStage = ReleaseStage.Announced, SpotifyLink = "newSLink", SelectedSongIds = new int[] { 1, 2, 3, 4, 5, 6, 7 } }; // Act albumsService.Create(creationInfo); //Assert Assert.Single(context.Albums); Assert.Equal(creationInfo.Name, context.Albums.First().Name); Assert.Equal(creationInfo.AlbumCoverLink, context.Albums.First().AlbumCoverLink); Assert.Equal(creationInfo.Genre, context.Albums.First().Genre); Assert.Equal(creationInfo.ReleaseDate, context.Albums.First().ReleaseDate); Assert.Equal(creationInfo.ReleaseStage, context.Albums.First().ReleaseStage); Assert.Equal(creationInfo.SpotifyLink, context.Albums.First().SpotifyLink); Assert.Equal(creationInfo.SelectedSongIds, context.Albums.First().AlbumsSongs.Select(s => s.SongId)); }
public void GetAlbumsByUser_ShouldGetOnlyPublicAlbumsOfUserIfOtherAuthenitcatedUser() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); this.PopulateFakeGalleryAlbumsData(data, 10); string username = "******"; var album = new Album() { Name = "customAlbum0", Private = false }; var service = new AlbumsService(data); service.Add(album, username); // act var actual = service.GetAlbumsByUser(username, "user1").Count(); // assert Assert.AreEqual(1, actual); }
public void Delete_ShouldReturnTheIdOfTheDeletedAlbum() { // arrange string username = "******"; var album = new Album() { Id = 2, Name = "customAlbum0", Private = false, Owner = new User() { UserName = username } }; var data = new FakeGalleryData(); data.Albums.Add(album); var service = new AlbumsService(data); // act var actual = service.DeleteAlbumById(2, username); // assert Assert.AreEqual(2, actual); }
public void Delete_ShouldDeleteAlbumOfAuthorizedUser() { // arrange string username = "******"; var album = new Album() { Id = 2, Name = "customAlbum0", Private = false, Owner = new User() { UserName = username } }; var data = new FakeGalleryData(); data.Albums.Add(album); var service = new AlbumsService(data); // act service.DeleteAlbumById(2, username); // assert var actual = data.Albums.All().Count(); Assert.AreEqual(0, actual); }
public async Task CreateAsyncWithInCorrectDataShouldThrowArgumentException() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var dbContext = new ApplicationDbContext(options); var cloudinary = new Mock <ICloudinaryService>(); var albumsRepository = new EfDeletableEntityRepository <Album>(dbContext); var albumsService = new AlbumsService(albumsRepository, cloudinary.Object); var photo = new Mock <IFormFile>(); var releaseDate = DateTime.ParseExact("2012-05-22", "yyyy-MM-dd", CultureInfo.InvariantCulture); await albumsRepository.AddAsync(new Album { Name = "Carolus Rex", CoverUrl = "https://res.cloudinary.com/nikolacgeorgiev/image/upload/v1587375890/albums_photos/Carolus_Rex_ftub8r.jpg", ReleaseDate = releaseDate, GroupId = 4, }); await albumsRepository.SaveChangesAsync(); await Assert.ThrowsAsync <ArgumentException>(async() => { await albumsService.CreateAsync("Carolus Rex", photo.Object, releaseDate, 4); }); }
public void Delete_ShouldReturnMinusOneIfAlbumWasNotFoundOrAuthorizedUserIsNotOwner() { // arrange string username = "******"; var album = new Album() { Id = 2, Name = "customAlbum0", Private = false, Owner = new User() { UserName = username } }; var data = new FakeGalleryData(); data.Albums.Add(album); var service = new AlbumsService(data); // act var actual = service.DeleteAlbumById(3, username); // assert Assert.AreEqual(0, actual); }
public void GetAlbumPhotos_ShouldReturnAllPhotosWhenUserIsOwner() { var user = UserCreator.Create("test"); var publicPhoto = PhotoCreator.Create(user, false, false); var privatePhoto = PhotoCreator.Create(user, true, false); var album = AlbumCreator.Create(false, user); var listAlbums = new List <Album>() { album }; var listPhotoAlbums = new List <PhotoAlbum>() { PhotoAlbumCreator.Create(publicPhoto, album), PhotoAlbumCreator.Create(privatePhoto, album), }; var photoAlbumsRepo = EfRepositoryMock.Get <PhotoAlbum>(listPhotoAlbums); var albumsRepo = DeletableEntityRepositoryMock.Get <Album>(listAlbums); var service = new AlbumsService(albumsRepo.Object, photoAlbumsRepo.Object); var photos = service.GetAlbumPhotos <PhotoAlbumViewModel>(album.Id, user.Id); Assert.Equal(2, photos.Count); }
public void Update_ShouldUpdateAlbumSucessfully() { var user = UserCreator.Create("test"); var album = AlbumCreator.Create(false, user); var list = new List <Album>() { album, }; var editAlbumModel = new EditAlbumInputModel { Id = album.Id, OwnerId = user.Id, Description = "Updated", IsPrivate = false, Name = "Updated", }; var photoAlbumsRepo = EfRepositoryMock.Get <PhotoAlbum>(new List <PhotoAlbum>()); var albumsRepo = DeletableEntityRepositoryMock.Get <Album>(list); var services = new AlbumsService(albumsRepo.Object, photoAlbumsRepo.Object); services.UpdateAsync( album.Id, user.Id, editAlbumModel).Wait(); var item = list.First(); Assert.Equal(editAlbumModel.Description, item.Description); Assert.Equal(editAlbumModel.Name, item.Name); }
public async Task Should_Return_Merged_Albums_And_Photos_When_Calling_GetAlbumsWithPhotosByUserId() { var albumsApiService = new Mock <IAlbumsApiClient>(); albumsApiService.Setup(x => x.GetAlbumsByUserId(1)).ReturnsAsync(new List <AlbumConsume>() { new AlbumConsume { Id = 1, Title = "Test", UserId = 1 }, }); albumsApiService.Setup(x => x.GetPhotosByAlbumIds(new List <int> { 1 })).ReturnsAsync(new List <PhotoConsume>() { new PhotoConsume() { Id = 1, AlbumId = 1, Title = "Test Photo", ThumbnailUrl = "something", Url = "something" }, }); var albumsService = new AlbumsService(albumsApiService.Object, _mapper); var albums = await albumsService.GetAlbumsWithPhotosByUserId(1); Assert.Single(albums); Assert.Collection(albums, album => Assert.Single(album.Photos)); }
public AlbumsController( AlbumsService albumPreviewService, PhotosService photosService ) { this._albumPreviewService = albumPreviewService; this._photosService = photosService; }
public void Add_ShouldThrowIfAlbumIsNull() { // arrange var data = new FakeGalleryData(); var service = new AlbumsService(data); string username = "******"; // act service.Add(null, username); }
public void Add_ShouldThrow_WhenNoCreatorSpecified() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); var service = new AlbumsService(data); var album = this.GetAlbum("myalbum", false); // act service.Add(album, null); }
public UtilityController( UsersRepository usersRepository, AlbumsRepository albumsRepository, PhotosRepository photosRepository, AlbumsService albumPreviewService ) { this._usersRepository = usersRepository; this._albumsRepository = albumsRepository; this._photosRepository = photosRepository; this._albumPreviewService = albumPreviewService; }
public void Add_ShouldThrowIfUserWithSpecifiedUsernameIsNotFound() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); var service = new AlbumsService(data); string username = "******"; var album = this.GetAlbum("myalbum", false); // act service.Add(album, username); }
public void GetAll_ShouldReturnZeroAlbumsCount_WhenNoAlbumsInData() { // arrange var data = new FakeGalleryData(); var service = new AlbumsService(data); string username = null; // act var actual = service.GetAll(username).Count(); // assert Assert.AreEqual(0, actual); }
public void Update_ShouldNotUpdateAlbumSuccessfully() { var list = new List <Album>(); var model = new EditAlbumInputModel { Id = "1", OwnerId = "2", Description = "test", IsPrivate = false, Name = "test" }; var photoAlbumsRepo = EfRepositoryMock.Get <PhotoAlbum>(new List <PhotoAlbum>()); var albumsRepo = DeletableEntityRepositoryMock.Get <Album>(list); var services = new AlbumsService(albumsRepo.Object, photoAlbumsRepo.Object); Exception ex = Assert.Throws <AggregateException>(() => services.UpdateAsync("1", "2", model).Wait()); Assert.Contains("Album does not exist!", ex.Message); }
public void GetAll_ShouldReturnNonPrivateAndPrivateAlbumsOfTheAuthorizedUser_WhenUserIsAuthorized() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryAlbumsData(data, 30); var service = new AlbumsService(data); string username = "******"; // act var actual = service.GetAll(username).Count(); // assert Assert.AreEqual(16, actual); }
public void GetById_ShouldNotReturnAlbumIfAlbumIsPrivate_WhenUserIsNotAuthorized() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryAlbumsData(data, 5); var service = new AlbumsService(data); string username = null; // act var actual = service.GetById(2, username).Count(); // assert Assert.AreEqual(0, actual); }
public void Edit_ChangesProperties() { // Arrange var context = this.ServiceProvider.GetRequiredService <WmipDbContext>(); var album = new Album { Id = 1, AlbumCoverLink = "first", Genre = "first", Name = "first", ReleaseDate = DateTime.Now.AddDays(-1), ReleaseStage = ReleaseStage.Secret, SpotifyLink = "first", AlbumsSongs = new List <AlbumSong>() { new AlbumSong { SongId = 1 } } }; context.Albums.Add(album); context.SaveChanges(); var albumsService = new AlbumsService(context); var editInfo = new EditAlbumDto() { Id = 1, AlbumCoverLink = "newlink", Genre = "newgenre", Name = "newname", ReleaseDate = DateTime.Now.AddDays(1), ReleaseStage = ReleaseStage.Announced, SpotifyLink = "newSLink", SelectedSongIds = new int[] { 1, 2, 3, 4, 5, 6, 7 } }; // Act albumsService.Edit(editInfo); //Assert Assert.Equal(editInfo.Name, context.Albums.First().Name); Assert.Equal(editInfo.AlbumCoverLink, context.Albums.First().AlbumCoverLink); Assert.Equal(editInfo.Genre, context.Albums.First().Genre); Assert.Equal(editInfo.ReleaseDate, context.Albums.First().ReleaseDate); Assert.Equal(editInfo.ReleaseStage, context.Albums.First().ReleaseStage); Assert.Equal(editInfo.SpotifyLink, context.Albums.First().SpotifyLink); Assert.Equal(editInfo.SelectedSongIds, context.Albums.First().AlbumsSongs.Select(s => s.SongId)); }
public void Add_ShouldAddAlbumIfAlbumAndUsernameAreValid() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); var service = new AlbumsService(data); string username = "******"; var album = this.GetAlbum("myalbum", false); // act service.Add(album, username); var actual = service.GetAll(username).Count(); // assert Assert.AreEqual(1, actual); }
public void Add_ShouldCallDataSaveChanges() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); var service = new AlbumsService(data); string username = "******"; var album = this.GetAlbum("myalbum", false); // act service.Add(album, username); var actual = data.SaveChangesCallCount; // assert Assert.AreEqual(1, actual); }
public void Add_ShouldAddAlbumWithCorrectUserWhenUsernameIsValid() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); var service = new AlbumsService(data); string username = "******"; var album = this.GetAlbum("myalbum", false); // act service.Add(album, username); var actual = service.GetAll(username).First().Owner.UserName; // assert Assert.AreEqual(username, actual); }
public void GetById_ShouldReturnNullDataWhenAlbumDoesNotExists() { var user = UserCreator.Create("test"); var album = AlbumCreator.Create(false, user); var listAlbums = new List <Album>(); var listPhotoAlbums = new List <PhotoAlbum>(); var photoAlbumsRepo = EfRepositoryMock.Get <PhotoAlbum>(listPhotoAlbums); var albumsRepo = DeletableEntityRepositoryMock.Get <Album>(listAlbums); var service = new AlbumsService(albumsRepo.Object, photoAlbumsRepo.Object); var returnedAlbum = service.GetById <AlbumViewModel>(album.Id, user.Id); Assert.Null(returnedAlbum); }
public void Create_ShouldCreateAlbumSuccessfully() { var list = new List <Album>(); var model = new CreateAlbumInputModel() { Description = "TestDesc", IsPrivate = false, Name = "testName" }; var photoAlbumsRepo = EfRepositoryMock.Get <PhotoAlbum>(new List <PhotoAlbum>()); var albumsRepo = DeletableEntityRepositoryMock.Get <Album>(list); var services = new AlbumsService(albumsRepo.Object, photoAlbumsRepo.Object); services.CreateAsync(model, "testUser").Wait(); Assert.Single(list); }
public void Add_ShouldReturnTheAddedAlbumId() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); var service = new AlbumsService(data); string username = "******"; var album = this.GetAlbum("myalbum", false); // act var actual = service.Add(album, username); // assert Assert.AreEqual(1, actual); }
public void Add_ShouldCallDataSaveChanges() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); var service = new AlbumsService(data); string username = "******"; var album = this.GetAlbum("myalbum", false); // act service.Add(album, username); var actual = data.SaveChangesCallCount; // assert Assert.AreEqual(1, actual); }
public void Add_ShouldAddAlbumIfAlbumAndUsernameAreValid() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); var service = new AlbumsService(data); string username = "******"; var album = this.GetAlbum("myalbum", false); // act service.Add(album, username); var actual = service.GetAll(username).Count(); // assert Assert.AreEqual(1, actual); }
public async Task CreateAsyncWithCorrectDataShouldReturnCorrectResult() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var dbContext = new ApplicationDbContext(options); var cloudinary = new Mock <ICloudinaryService>(); var albumsRepository = new EfDeletableEntityRepository <Album>(dbContext); var albumsService = new AlbumsService(albumsRepository, cloudinary.Object); var photo = new Mock <IFormFile>(); var releaseDate = DateTime.ParseExact("2012-05-22", "yyyy-MM-dd", CultureInfo.InvariantCulture); var actual = await albumsService.CreateAsync("Carolus Rex", photo.Object, releaseDate, 4); var expected = 1; Assert.Equal(expected, actual); }
public void GetAlbumPhotos_ShouldThrowErrorWhenAlbumDoesNotExists() { var user = UserCreator.Create("test"); var album = AlbumCreator.Create(false, user); var listAlbums = new List <Album>(); var listPhotoAlbums = new List <PhotoAlbum>(); var photoAlbumsRepo = EfRepositoryMock.Get <PhotoAlbum>(listPhotoAlbums); var albumsRepo = DeletableEntityRepositoryMock.Get <Album>(listAlbums); var service = new AlbumsService(albumsRepo.Object, photoAlbumsRepo.Object); Exception ex = Assert.Throws <Exception>(() => service.GetAlbumPhotos <PhotoAlbumViewModel>(album.Id, user.Id)); Assert.Contains("Album does not exist!", ex.Message); }
public void Add_ShouldAddAlbumWithCorrectUserWhenUsernameIsValid() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); var service = new AlbumsService(data); string username = "******"; var album = this.GetAlbum("myalbum", false); // act service.Add(album, username); var actual = service.GetAll(username).First().Owner.UserName; // assert Assert.AreEqual(username, actual); }
public void Add_ShouldAddAlbumWithCorrectDate() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); var service = new AlbumsService(data); string username = "******"; var album = this.GetAlbum("myalbum", false); // act service.Add(album, username); var addedAlbum = service.GetAll(username).First(); var addedAlbumDate = addedAlbum.CreatedOn.Date; var addedAlbumHour = addedAlbum.CreatedOn.Hour; // assert Assert.AreEqual(DateTime.Now.Date, addedAlbumDate); }
public void GetById_ShouldReturnCorrectAlbumIfNotPrivate_WhenUserIsNotAuthorized() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryAlbumsData(data, 5); var service = new AlbumsService(data); string username = null; // act var actual = service.GetById(1, username).Count(); // assert Assert.AreEqual(1, actual); }
public void Add_ShouldThrow_WhenNoCreatorSpecified() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); var service = new AlbumsService(data); var album = this.GetAlbum("myalbum", false); // act service.Add(album, null); }
public void GetAll_ShouldReturnOnlyNonPrivateAlbums_WhenUserIsNotAuthorized() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryAlbumsData(data, 30); var service = new AlbumsService(data); string username = null; // act var actual = service.GetAll(username).Count(); // assert Assert.AreEqual(15, actual); }
public void GetAlbumsByUser_ShouldGetOnlyPublicAlbumsOfUserIfOtherAuthenitcatedUser() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); this.PopulateFakeGalleryAlbumsData(data, 10); string username = "******"; var album = new Album() { Name = "customAlbum0", Private = false }; var service = new AlbumsService(data); service.Add(album, username); // act var actual = service.GetAlbumsByUser(username, "user1").Count(); // assert Assert.AreEqual(1, actual); }
public void Delete_ShouldCallSaveChangesIfOperationIsAuthorizedAndAlbumIsFound() { // arrange string username = "******"; var album = new Album() { Id = 2, Name = "customAlbum0", Private = false, Owner = new User() { UserName = username } }; var data = new FakeGalleryData(); data.Albums.Add(album); var service = new AlbumsService(data); // act service.DeleteAlbumById(2, username); // assert var actual = data.SaveChangesCallCount; Assert.AreEqual(1, actual); }
public void Delete_ShouldDeleteAlbumOfAuthorizedUser() { // arrange string username = "******"; var album = new Album() { Id = 2, Name = "customAlbum0", Private = false, Owner = new User() { UserName = username} }; var data = new FakeGalleryData(); data.Albums.Add(album); var service = new AlbumsService(data); // act service.DeleteAlbumById(2, username); // assert var actual = data.Albums.All().Count(); Assert.AreEqual(0, actual); }
public void Delete_ShouldReturnMinusOneIfAlbumWasNotFoundOrAuthorizedUserIsNotOwner() { // arrange string username = "******"; var album = new Album() { Id = 2, Name = "customAlbum0", Private = false, Owner = new User() { UserName = username } }; var data = new FakeGalleryData(); data.Albums.Add(album); var service = new AlbumsService(data); // act var actual = service.DeleteAlbumById(3, username); // assert Assert.AreEqual(0, actual); }
public void Delete_ShouldReturnTheIdOfTheDeletedAlbum() { // arrange string username = "******"; var album = new Album() { Id = 2, Name = "customAlbum0", Private = false, Owner = new User() { UserName = username } }; var data = new FakeGalleryData(); data.Albums.Add(album); var service = new AlbumsService(data); // act var actual = service.DeleteAlbumById(2, username); // assert Assert.AreEqual(2, actual); }
public void GetById_ShouldReturnAlbumIfAlbumIsPrivate_AndOwnerIsAuthorized() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryAlbumsData(data, 5); var service = new AlbumsService(data); string username = "******"; // act var actual = service.GetById(2, username).Count(); // assert Assert.AreEqual(1, actual); }
public void Add_ShouldThrowIfAlbumIsNull() { // arrange var data = new FakeGalleryData(); var service = new AlbumsService(data); string username = "******"; // act service.Add(null, username); }
public void Add_ShouldThrowIfUserWithSpecifiedUsernameIsNotFound() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); var service = new AlbumsService(data); string username = "******"; var album = this.GetAlbum("myalbum", false); // act service.Add(album, username); }
public void GetAlbumsByUser_ShouldGetAllAlbumsOfUserIfSameIsAuthenticated() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); this.PopulateFakeGalleryAlbumsData(data, 10); string username = "******"; var album = new Album() { Name = "customAlbum0", }; var service = new AlbumsService(data); service.Add(album, username); // act var actual = service.GetAlbumsByUser(username, username).Count(); // assert Assert.AreEqual(2, actual); }
public void Add_ShouldReturnTheAddedAlbumId() { // arrange var data = new FakeGalleryData(); this.PopulateFakeGalleryUsersData(data, 5); var service = new AlbumsService(data); string username = "******"; var album = this.GetAlbum("myalbum", false); // act var actual = service.Add(album, username); // assert Assert.AreEqual(1, actual); }
public void GetAll_ShouldReturnZeroAlbumsCount_WhenNoAlbumsInData() { // arrange var data = new FakeGalleryData(); var service = new AlbumsService(data); string username = null; // act var actual = service.GetAll(username).Count(); // assert Assert.AreEqual(0, actual); }