Example #1
0
        public void GetUserByVideoId_ShouldGetUser()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();

            Guid id = Guid.NewGuid();

            var video = new Video();

            video.Id = id;

            VidconfileUser user = new VidconfileUser();

            video.Uploader = user;

            var videos = new List <Video>();

            videos.Add(video);

            videoRepositoryMock.Setup(x => x.All(s => s.Uploader))
            .Returns(videos.AsQueryable());

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            var res = userService.GetUserByVideoId(id);

            Assert.Same(user, res);
            videoRepositoryMock.Verify(x => x.All(s => s.Uploader), Times.Once);
        }
Example #2
0
        public void GetAllUsers_ShouldGet()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();

            Guid userId = Guid.NewGuid();

            subscribeToSubscriberMock.Setup(x => x.All())
            .Returns(new List <SubscribeToSubscribers>()
            {
                new SubscribeToSubscribers()
                {
                    SubscribedToId = userId
                },
                new SubscribeToSubscribers()
                {
                    SubscribedToId = userId
                }, new SubscribeToSubscribers()
                {
                    SubscribedToId = userId
                }
            }.AsQueryable());

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            var userNew = userService.GetAllUsers();

            userRepositoryMock.Verify(x => x.All(), Times.Once);
        }
Example #3
0
        public void SubscribeFromTo_ShouldSubscribe()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();

            Guid fromId = Guid.NewGuid();
            Guid toId   = Guid.NewGuid();

            VidconfileUser from = new VidconfileUser();
            VidconfileUser to   = new VidconfileUser();

            from.Id = fromId;
            to.Id   = toId;

            var sb = new SubscribeToSubscribers();

            sb.SubscribedToId = toId;
            sb.SubscriberId   = Guid.Empty;

            SubscribeToSubscribers res = null;

            subscribeToSubscriberMock.Setup(x => x.All())
            .Returns(new List <SubscribeToSubscribers>()
            {
                sb
            }.AsQueryable());

            subscribeToSubscriberMock.Setup(x => x.Add(It.IsAny <SubscribeToSubscribers>()))
            .Callback <SubscribeToSubscribers>(x => res = x)
            .Verifiable();

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            userService.SubscribeFromTo(from, to);

            subscribeToSubscriberMock.Verify();
            unitOfWorkMock.Verify(x => x.Commit(), Times.Once);

            Assert.Equal(toId, res.SubscribedToId);
            Assert.Equal(fromId, res.SubscriberId);
        }
Example #4
0
        public void UserExist_ShouldReturnFalse()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();

            Guid user = Guid.NewGuid();

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            bool result = userService.UserExists(user);

            Assert.False(result);
        }
Example #5
0
        public void GetSubscriberCount_NullUser_ShouldThrow()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();

            VidconfileUser user = new VidconfileUser();

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            string result = Assert.Throws <NullReferenceException>(() => userService.GetSubscriberCount(null))
                            .Message;

            Assert.Equal("user cannot be null", result);
        }
Example #6
0
        public void UserExist_NullUsername_ShoudThrow()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();

            string username = "******";

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            string res = Assert.Throws <NullReferenceException>(() => userService.UserExists(null))
                         .Message;

            Assert.Equal("username cannot be null or empty", res);
        }
Example #7
0
        public void Login_NullPassword_ShouldThrow()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            string username = "******";
            string password = "******";

            string message = Assert.Throws <NullReferenceException>(() => userService.Login(username, null)).Message;

            Assert.Equal("password cannot be null or empty", message);
        }
Example #8
0
        public void EditProfile_ShouldUpdate()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();

            Guid userId = Guid.NewGuid();

            VidconfileUser user = new VidconfileUser();

            string photoUrl = "asd";

            subscribeToSubscriberMock.Setup(x => x.All())
            .Returns(new List <SubscribeToSubscribers>()
            {
                new SubscribeToSubscribers()
                {
                    SubscribedToId = userId
                },
                new SubscribeToSubscribers()
                {
                    SubscribedToId = userId
                }, new SubscribeToSubscribers()
                {
                    SubscribedToId = userId
                }
            }.AsQueryable());

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            userService.EditProfile(user, photoUrl);

            Assert.Equal(photoUrl, user.ProfilePhotoUrl);
            userRepositoryMock.Verify(x => x.Update(user), Times.Once);
            unitOfWorkMock.Verify(x => x.Commit(), Times.Once);
        }
Example #9
0
        public void GetUserByVideoId_NonExistingVideo_ShoudReturnNull()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();



            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            Guid id = Guid.NewGuid();

            var res = userService.GetUserByVideoId(id);

            Assert.Null(res);
        }
Example #10
0
        public void UnsubscribeFromTo_NullTo_ShouldThrow()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();

            VidconfileUser from = new VidconfileUser();
            VidconfileUser to   = new VidconfileUser();

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            string msg = Assert.Throws <NullReferenceException>(() => userService.UnsubscribeFromTo(from, null))
                         .Message;

            Assert.Equal("to cannot be null", msg);
        }
Example #11
0
        public void Register_NullUsername_ShouldThrow()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            string username        = "******";
            string password        = "******";
            string profilePhotoUrl = "nubfas";

            string message = Assert.Throws <NullReferenceException>(() => userService.Register(null, password, profilePhotoUrl)).Message;

            Assert.Equal("username cannot be null", message);
        }
Example #12
0
        public void EditProfile_PhotoNull_ShouldThrow()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();

            Guid userId = Guid.NewGuid();

            VidconfileUser user = new VidconfileUser();

            string photoUrl = "asd";

            subscribeToSubscriberMock.Setup(x => x.All())
            .Returns(new List <SubscribeToSubscribers>()
            {
                new SubscribeToSubscribers()
                {
                    SubscribedToId = userId
                },
                new SubscribeToSubscribers()
                {
                    SubscribedToId = userId
                }, new SubscribeToSubscribers()
                {
                    SubscribedToId = userId
                }
            }.AsQueryable());

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            string msg = Assert.Throws <NullReferenceException>(() => userService.EditProfile(user, null))
                         .Message;

            Assert.Equal("newProfilePhotoUrl cannot be null", msg);
        }
Example #13
0
        public void GetSubscriberCount_ShouldGet()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();

            VidconfileUser user = new VidconfileUser();

            Guid userId = Guid.NewGuid();

            user.Id = userId;

            subscribeToSubscriberMock.Setup(x => x.All())
            .Returns(new List <SubscribeToSubscribers>()
            {
                new SubscribeToSubscribers()
                {
                    SubscribedToId = userId
                },
                new SubscribeToSubscribers()
                {
                    SubscribedToId = userId
                }, new SubscribeToSubscribers()
                {
                    SubscribedToId = userId
                }
            }.AsQueryable());

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            int subs = userService.GetSubscriberCount(user);

            Assert.Equal(3, subs);
        }
Example #14
0
        public void Login_NotExistingUser_ShouldReturnNull()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            string username = "******";
            string password = "******";

            var user = userService.Login(username, password);

            passwordHasherMock.Verify(x => x.VerifyPasswordHash(It.IsAny <string>(), It.IsAny <byte[]>(), It.IsAny <byte[]>()), Times.Never);

            Assert.Null(user);
        }
Example #15
0
        public void UnsubscribeFromTo_AlreadySubscribed_ShouldThrow()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();

            Guid fromId = Guid.NewGuid();
            Guid toId   = Guid.NewGuid();

            VidconfileUser from = new VidconfileUser();
            VidconfileUser to   = new VidconfileUser();

            from.Id = fromId;
            to.Id   = toId;

            var sb = new SubscribeToSubscribers();

            sb.SubscribedToId = toId;
            sb.SubscriberId   = Guid.Empty;

            subscribeToSubscriberMock.Setup(x => x.All())
            .Returns(new List <SubscribeToSubscribers>()
            {
                sb
            }.AsQueryable());

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            string msg = Assert.Throws <ArgumentException>(() => userService.UnsubscribeFromTo(from, to))
                         .Message;

            Assert.Equal("the user is not subscribed", msg);
        }
Example #16
0
        public void Register_ShouldAddUser()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();

            VidconfileUser user = null;

            userRepositoryMock.Setup(x => x.Add(It.IsAny <VidconfileUser>()))
            .Callback <VidconfileUser>(x => user = x);

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            string username        = "******";
            string password        = "******";
            string profilePhotoUrl = "nubfas";

            PasswordHashModel hashModel = new PasswordHashModel(new byte[1], new byte[2]);

            passwordHasherMock.Setup(x => x.CreatePasswordHash(password))
            .Returns(hashModel)
            .Verifiable();

            userService.Register(username, password, profilePhotoUrl);

            passwordHasherMock.Verify();
            unitOfWorkMock.Verify(x => x.Commit(), Times.Once);
            userRepositoryMock.Verify(x => x.Add(It.IsAny <VidconfileUser>()), Times.Once);

            Assert.Equal(username, user.Username);
            Assert.Equal(profilePhotoUrl, user.ProfilePhotoUrl);
        }
Example #17
0
        public void Login_NotWrongPassword_ShouldReturnUser()
        {
            var videoRepositoryMock       = new Mock <IRepository <Video> >();
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var commentRepositoryMock     = new Mock <IRepository <Comment> >();
            var userRepositoryMock        = new Mock <IRepository <VidconfileUser> >();
            var passwordHasherMock        = new Mock <IPasswordHasher>();
            var subscribeToSubscriberMock = new Mock <IRepository <SubscribeToSubscribers> >();


            VidconfileUser user = new VidconfileUser();

            string username = "******";
            string password = "******";

            user.Username = username;

            userRepositoryMock.Setup(x => x.All())
            .Returns(new List <VidconfileUser>()
            {
                user
            }.AsQueryable());

            passwordHasherMock.Setup(x => x.VerifyPasswordHash(It.IsAny <string>(), It.IsAny <byte[]>(), It.IsAny <byte[]>()))
            .Returns(true);

            VidconfileUserServices userService =
                new VidconfileUserServices(userRepositoryMock.Object, unitOfWorkMock.Object, passwordHasherMock.Object,
                                           videoRepositoryMock.Object, subscribeToSubscriberMock.Object);

            var userRet = userService.Login(username, password);

            passwordHasherMock.Verify(x => x.VerifyPasswordHash(It.IsAny <string>(), It.IsAny <byte[]>(), It.IsAny <byte[]>()), Times.Once);

            Assert.Same(user, userRet);
        }