public void GetUserAccount_GivenHasAccount_ShouldDecryptPassword()
        {
            // Arrange
            var repo = Substitute.For <IUserAccountRepo>();
            var encryptionService = TestObjects.GetEncryptionService();
            var encryptedPass     = encryptionService.EncryptText("password");

            var serviceUser = new MailUserBuilder()
                              .AsValidUser()
                              .WithPassword(encryptedPass)
                              .Build();

            repo.GetUserAccount(1).Returns(serviceUser);

            var service = Builder.BuildUserAccountService(
                userAccountRepo: repo,
                encryptionService: encryptionService);

            // Act
            var user = service.GetUserAccount(1).Result;

            // Assert
            Assert.IsNotNull(user);
            Assert.AreEqual("password", user.Password);
        }
        public void GetUserAccount_GivenUserAccountFound_ShouldReturnIt()
        {
            // Arrange
            var repo        = Substitute.For <IUserAccountRepo>();
            var service     = Builder.BuildUserAccountService(userAccountRepo: repo);
            var serviceUser = new MailUserBuilder().AsValidUser().Build();

            repo.GetUserAccount(1).Returns(serviceUser);

            // Act
            var user = service.GetUserAccount(1).Result;

            // Assert
            Assert.IsNotNull(user);
            Assert.AreEqual(user, serviceUser);
        }