public static ContainerBuilder AddUnitOfWork(this ContainerBuilder builder, Action <UnitOfWorkBuilder> optionsAction = null) { builder.RegisterType <UnitOfWorkProvider>().SingleInstance().AsImplementedInterfaces(); builder.RegisterType <UnitOfWork.EntityFramework.EntityFrameworkUnitOfWork>(); var unitOfWorkBuilder = new UnitOfWorkBuilder(builder); optionsAction?.Invoke(unitOfWorkBuilder); builder.RegisterInstance(unitOfWorkBuilder); return(builder); }
public async Task Should_Get_Photo() { var unitOfWork = new UnitOfWorkBuilder().Build(); var photo = GetPhoto(); await unitOfWork.Photos.Add(photo); var photoService = new PhotoServiceBuilder() .WithUnitOfWork(unitOfWork).Build(); var savedPhoto = await photoService.GetPhoto("1234"); savedPhoto.Should().NotBeNull(); savedPhoto.Should().Be(photo); }
public async Task Creator_Should_Get_Album() { var unitOfWork = new UnitOfWorkBuilder().Build(); var albumService = new AlbumServiceBuild() .WithUnitOfWork(unitOfWork) .Build(); var user = GetUser(); var album = GetAlbum(user); await unitOfWork.Albums.Add(album); var albums = await albumService.GetAlbums(user); albums.Should().Contain(album); }
public async Task Create_Album_Should_Save() { var unitOfWork = new UnitOfWorkBuilder().Build(); var albumService = new AlbumServiceBuild() .WithUnitOfWork(unitOfWork) .Build(); var user = GetUser(); var album = await albumService.CreateAlbum(user, "albumName"); var savedAlbum = await unitOfWork.Albums.GetFirst(x => x.Name == "albumName"); album.Should().NotBeNull(); album.Should().Equals(savedAlbum); }
public async Task Should_Delete_From_Ftp() { var ftpService = A.Fake <IFtpService>(); var unitOfWork = new UnitOfWorkBuilder().Build(); var user = GetUser(); var photo = GetPhoto(); await unitOfWork.Photos.Add(photo); var photoService = new PhotoServiceBuilder() .WithFtpService(ftpService) .WithUnitOfWork(unitOfWork) .WithPermissionsService(new AllPermissionsGrantedService()).Build(); var successfullyDeleted = await photoService.DeletePhoto(photo.PhotoId, "1234", user); successfullyDeleted.Should().BeTrue(); A.CallTo(() => ftpService.DeletePhoto(photo)).MustHaveHappened(); }
public async Task Should_Get_Album_By_Id() { var unitOfWork = new UnitOfWorkBuilder().Build(); var albumService = new AlbumServiceBuild() .WithUnitOfWork(unitOfWork) .Build(); var user = GetUser(); var album = GetAlbum(user); album.AlbumId = "1234"; await unitOfWork.Albums.Add(album); var savedAlbum = await albumService.GetAlbum("1234"); savedAlbum.Should().NotBeNull(); savedAlbum.Should().Be(album); }
public async Task Should_Delete_From_Db() { var unitOfWork = new UnitOfWorkBuilder().Build(); var user = GetUser(); var photo = GetPhoto(); await unitOfWork.Photos.Add(photo); var photoService = new PhotoServiceBuilder() .WithUnitOfWork(unitOfWork) .WithPermissionsService(new AllPermissionsGrantedService()).Build(); var successfullyDeleted = await photoService.DeletePhoto(photo.PhotoId, "1234", user); successfullyDeleted.Should().BeTrue(); var photos = await unitOfWork.Photos.GetAll(); photos.Should().BeEmpty(); }
public async Task UserService_Should_ReSend_Email_To_Invited_Users() { var unitOfWork = new UnitOfWorkBuilder().Build(); var emailService = A.Fake <IEmailService>(); var userService = new UserServiceBuilder().WithUnitOfWork(unitOfWork) .WithEmailService(emailService) .Build(); var user = GetUser(); user.InvitationSent = true; user.Password = "******"; await unitOfWork.Users.Add(user); await userService.SendAgainEmailToUsers(); A.CallTo(() => emailService.SendAccountCreationEmail(user, "pwd")).MustHaveHappened(); }
public async Task UserService_Should_Return_ByEmail() { var unitOfWork = new UnitOfWorkBuilder().Build(); var userService = new UserServiceBuilder().WithUnitOfWork(unitOfWork) .Build(); var user = GetUser(); user.Password = "******"; user.UserId = "userId"; await unitOfWork.Users.Add(user); var savedUser = await userService.GetUserFromEmail(user.Email); savedUser.Should().NotBeNull(); savedUser.Password.Should().Be("code"); savedUser.UserId.Should().Be("userId"); }
public async Task Accepting_Invitation_Should_Be_Flagged() { var unitOfWork = new UnitOfWorkBuilder().Build(); var datetime = DateTime.UtcNow; var userService = new UserServiceBuilder() .WithDateTime(datetime) .WithUnitOfWork(unitOfWork) .Build(); var user = GetUser(); user.Password = "******"; await unitOfWork.Users.Add(user); await userService.AcceptInvitation("code"); var savedUser = await unitOfWork.Users.GetFirst(x => x.Email == user.Email); savedUser.InvitationAccepted.Should().BeTrue(); savedUser.AcceptingDate.Should().Be(datetime); }
public async Task Invited_User_Should_Be_Flagged() { var unitOfWork = new UnitOfWorkBuilder().Build(); var emailService = A.Fake <IEmailService>(); var datetime = DateTime.UtcNow; var userService = new UserServiceBuilder().WithUnitOfWork(unitOfWork) .WithEmailService(emailService) .WithDateTime(datetime) .Build(); var user = GetUser(); await unitOfWork.Users.Add(user); await userService.SendEmailToUsers(); var savedUser = await unitOfWork.Users.GetFirst(x => x.Email == user.Email); savedUser.InvitationSent.Should().BeTrue(); savedUser.SendingDate.Should().Be(datetime); }
public async Task Creator_Should_Add_Follower() { var unitOfWork = new UnitOfWorkBuilder().Build(); var albumService = new AlbumServiceBuild() .WithUnitOfWork(unitOfWork) .Build(); var user = GetUser(); var album = GetAlbum(user); album.AlbumId = "1234"; await unitOfWork.Albums.Add(album); var follower = GetFollower(); var successfullyAdded = await albumService.AddFollower("1234", follower, user); var savedAlbum = await unitOfWork.Albums.GetFirst(x => x.AlbumId == "1234"); successfullyAdded.Should().BeTrue(); savedAlbum.Followers.Should().ContainSingle(); savedAlbum.Followers.Should().Contain(follower); }
public async Task Admin_Should_Not_Add_Admin() { var unitOfWork = new UnitOfWorkBuilder().Build(); var albumService = new AlbumServiceBuild() .WithUnitOfWork(unitOfWork) .Build(); var user = GetUser(); var album = GetAlbum(user); album.AlbumId = "1234"; await unitOfWork.Albums.Add(album); var admin = GetAdmin(); await albumService.AddAdmin("1234", admin, user); var successfullyAdded = await albumService.AddAdmin("1234", user, admin); var savedAlbum = await unitOfWork.Albums.GetFirst(x => x.AlbumId == "1234"); successfullyAdded.Should().BeFalse(); savedAlbum.Admins.Should().ContainSingle(); savedAlbum.Admins.Should().NotContain(user); }
public async Task User_Should_Not_Subscribe_With_Same_Email() { var unitOfWork = new UnitOfWorkBuilder().Build(); var passwordService = A.Fake <IPasswordService>(); A.CallTo(() => passwordService.GenerateRandomPassword()).Returns(("hash", "salt")); var userService = new UserServiceBuilder().WithUnitOfWork(unitOfWork) .WithPasswordService(passwordService) .Build(); var user = new User { Email = "*****@*****.**", FirstName = "John", LastName = "Doe" }; var user2 = new User { Email = "*****@*****.**", FirstName = "Jane", LastName = "Doe" }; var users = await unitOfWork.Users.GetAll(); users.Count().Should().Be(0); await userService.RegisterMembers(new List <User> { user }); users = await unitOfWork.Users.GetAll(); users.Count().Should().Be(1); await userService.RegisterMembers(new List <User> { user2 }); users = await unitOfWork.Users.GetAll(); users.Count().Should().Be(1); }
public async Task Like_Should_Be_Stored() { var photoService = A.Fake <IPhotoService>(); var photo = GetPhoto(); var user = GetUser(); var guid = Guid.NewGuid(); var unitOfWork = new UnitOfWorkBuilder().Build(); A.CallTo(() => photoService.GetPhoto(photo.PhotoId)).Returns(photo); var reactionService = new ReactionServiceBuilder() .WithGuid(guid) .WithPhotoService(photoService) .WithUnitOfWork(unitOfWork) .WithPermissionsService(new AllPermissionsGrantedService()) .Build(); var like = await reactionService.LikePhoto("1234", "albumId", user); var storedLike = await unitOfWork.Likes.GetAll(x => x.ReactionId == guid.ToString()); storedLike.Should().NotBeNull(); storedLike.Should().NotBeEmpty(); storedLike.Should().ContainSingle(); storedLike.Should().Contain(like); }
public void SetUp() { this.uow = UnitOfWorkBuilder.Build(ENDPOINTS.READWRITE_URI); }