Ejemplo n.º 1
0
        public void Throw_ArgumentException_When_EnteredPasswords_AreDifferent()
        {
            // Arrange
            var password          = "******";
            var confirmedPassword = "******";

            var userSessionStub = new Mock <IUserSession>();
            var userServiceStub = new Mock <IUserService>();
            var dtoFactoryStub  = new Mock <IDataTransferObjectFactory>();
            var validatorStub   = new Mock <IValidator>();
            var writerStub      = new Mock <IWriter>();
            var readerStub      = new Mock <IReader>();
            var hasherStub      = new Mock <IHasher>();

            var registerUserCmd = new RegisterUserCommand(userServiceStub.Object, userSessionStub.Object, dtoFactoryStub.Object, validatorStub.Object, writerStub.Object, readerStub.Object, hasherStub.Object);

            userSessionStub.Setup(us => us.HasSomeoneLogged()).Returns(false);

            readerStub.SetupSequence(r => r.Read())
            .Returns(It.IsAny <string>())
            .Returns(It.IsAny <string>())
            .Returns(password)
            .Returns(confirmedPassword);

            Action executingRegisterCmd = () => registerUserCmd.ExecuteThisCommand();

            // Act & Assert
            Assert.ThrowsException <ArgumentException>(executingRegisterCmd);
        }
Ejemplo n.º 2
0
        public void Invoke_DTOFactory_CreateUserRegisterModel_With_CorrectValues()
        {
            // Arrange
            string fakeUsername  = "******";
            string fakeEmail     = "test@Mail";
            string fakePassword  = "******";
            string fakeHash      = "someHash";
            string fakeFirstName = "";
            string fakeLastName  = "";
            string fakeTown      = "testTown";
            string fakeAddress   = "testAddress";

            var userSessionStub = new Mock <IUserSession>();
            var userServiceStub = new Mock <IUserService>();
            var mockDtoFactory  = new Mock <IDataTransferObjectFactory>();
            var validatorStub   = new Mock <IValidator>();
            var writerStub      = new Mock <IWriter>();
            var readerStub      = new Mock <IReader>();
            var hasherStub      = new Mock <IHasher>();

            var userModelStub = new Mock <IUserRegisterModel>();

            var registerUserCmd = new RegisterUserCommand(userServiceStub.Object, userSessionStub.Object, mockDtoFactory.Object, validatorStub.Object, writerStub.Object, readerStub.Object, hasherStub.Object);

            userSessionStub.Setup(us => us.HasSomeoneLogged()).Returns(false);

            readerStub.SetupSequence(r => r.Read())
            .Returns(fakeUsername)
            .Returns(fakeEmail)
            .Returns(fakePassword)
            .Returns(fakePassword)
            .Returns(fakeFirstName)
            .Returns(fakeLastName)
            .Returns(fakeTown)
            .Returns(fakeAddress);

            hasherStub.Setup(h => h.CreatePassword(fakePassword)).Returns(fakeHash);

            mockDtoFactory.Setup(dtoFac => dtoFac.CreateUserRegisterModel(fakeUsername, fakeEmail, fakeHash, fakeFirstName, fakeLastName, fakeTown, fakeAddress)).Returns(userModelStub.Object);

            validatorStub.Setup(v => v.IsValid(userModelStub.Object)).Returns(true);

            // Act
            registerUserCmd.ExecuteThisCommand();

            // Assert
            mockDtoFactory.Verify(dtoFac => dtoFac.CreateUserRegisterModel(fakeUsername, fakeEmail, fakeHash, fakeFirstName, fakeLastName, fakeTown, fakeAddress), Times.Once);
        }
Ejemplo n.º 3
0
        public void Throw_ArgumentException_When_Someone_Is_LoggedIn()
        {
            // Arrange
            var userSessionStub = new Mock <IUserSession>();
            var userServiceStub = new Mock <IUserService>();
            var dtoFactoryStub  = new Mock <IDataTransferObjectFactory>();
            var validatorStub   = new Mock <IValidator>();
            var writerStub      = new Mock <IWriter>();
            var readerStub      = new Mock <IReader>();
            var hasherStub      = new Mock <IHasher>();

            var registerUserCmd = new RegisterUserCommand(userServiceStub.Object, userSessionStub.Object, dtoFactoryStub.Object, validatorStub.Object, writerStub.Object, readerStub.Object, hasherStub.Object);

            userSessionStub.Setup(us => us.HasSomeoneLogged()).Returns(true);

            Action executingRegisterCmd = () => registerUserCmd.ExecuteThisCommand();

            // ACt & Assert
            Assert.ThrowsException <ArgumentException>(executingRegisterCmd);
        }
Ejemplo n.º 4
0
        public void Invoke_Service_RegisterUser_With_ValidUserModel()
        {
            // Arrange
            string fakePassword = "******";
            string fakeHash     = "someHash";

            var userSessionStub = new Mock <IUserSession>();
            var mockUserService = new Mock <IUserService>();
            var dtoFactoryStub  = new Mock <IDataTransferObjectFactory>();
            var validatorStub   = new Mock <IValidator>();
            var writerStub      = new Mock <IWriter>();
            var readerStub      = new Mock <IReader>();
            var hasherStub      = new Mock <IHasher>();

            var userModelStub = new Mock <IUserRegisterModel>();

            var registerUserCmd = new RegisterUserCommand(mockUserService.Object, userSessionStub.Object, dtoFactoryStub.Object, validatorStub.Object, writerStub.Object, readerStub.Object, hasherStub.Object);

            userSessionStub.Setup(us => us.HasSomeoneLogged()).Returns(false);

            readerStub.SetupSequence(r => r.Read())
            .Returns(It.IsAny <string>())
            .Returns(It.IsAny <string>())
            .Returns(fakePassword)
            .Returns(fakePassword);

            hasherStub.Setup(h => h.CreatePassword(fakePassword)).Returns(fakeHash);

            dtoFactoryStub.Setup(dtoFac => dtoFac.CreateUserRegisterModel(It.IsAny <string>(), It.IsAny <string>(), fakeHash, It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).Returns(userModelStub.Object);

            validatorStub.Setup(v => v.IsValid(userModelStub.Object)).Returns(true);

            // Act
            registerUserCmd.ExecuteThisCommand();

            // Assert
            mockUserService.Verify(us => us.RegisterUser(userModelStub.Object), Times.Once);
        }
Ejemplo n.º 5
0
        public void Throw_ArgumentException_When_CreatedUserRegisterModel_IsInvalid()
        {
            // Arrange
            string fakePassword = "******";
            string fakeHash     = "someHash";

            var userSessionStub = new Mock <IUserSession>();
            var userServiceStub = new Mock <IUserService>();
            var dtoFactoryStub  = new Mock <IDataTransferObjectFactory>();
            var validatorStub   = new Mock <IValidator>();
            var writerStub      = new Mock <IWriter>();
            var readerStub      = new Mock <IReader>();
            var hasherStub      = new Mock <IHasher>();

            var userModelStub = new Mock <IUserRegisterModel>();

            var registerUserCmd = new RegisterUserCommand(userServiceStub.Object, userSessionStub.Object, dtoFactoryStub.Object, validatorStub.Object, writerStub.Object, readerStub.Object, hasherStub.Object);

            userSessionStub.Setup(us => us.HasSomeoneLogged()).Returns(false);

            readerStub.SetupSequence(r => r.Read())
            .Returns(It.IsAny <string>())
            .Returns(It.IsAny <string>())
            .Returns(fakePassword)
            .Returns(fakePassword);

            hasherStub.Setup(h => h.CreatePassword(fakePassword)).Returns(fakeHash);

            dtoFactoryStub.Setup(dtoFac => dtoFac.CreateUserRegisterModel(It.IsAny <string>(), It.IsAny <string>(), fakeHash, It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).Returns(userModelStub.Object);

            validatorStub.Setup(v => v.IsValid(userModelStub.Object)).Returns(false);

            Action executingRegisterUserCmd = () => registerUserCmd.ExecuteThisCommand();

            // Act & Assert
            Assert.ThrowsException <ArgumentException>(executingRegisterUserCmd);
        }