def test_deposit(self):
        # creamos un nuevo usuario
        pablo = User(UserUid("01202"), UserName("Pablo López"),
                     UserPassword("12345678"))

        # realizamos un depósito
        pablo.deposit(100)
        self.assertEqual(pablo.credits.value, 200)
    def test_charge(self):
        # creamos un nuevo usuario
        pablo = User(UserUid("01202"), UserName("Pablo López"),
                     UserPassword("12345678"))

        # realizamos un cargo
        pablo.charge(10)
        self.assertEqual(pablo.credits.value, 90)
    def test_sould_be_dead(self):
        # cargamos un usuario con 10 créditos
        pablo = User(UserUid("01202"), UserName("Pablo López"),
                     UserPassword("12345678"), UserCredits(10))

        # realizamos un cargo
        pablo.charge(10)

        # tenía 10 y se le cargó 10 entonces queda como inactivo
        self.assertFalse(pablo.active)
    def list(self) -> List[User]:
        users_list = []
        for data in self.__repository.list():
            users_list.append(
                User(data["id"], data["name"], data["password"],
                     data["credits"]))

        return users_list
    def test_sould_be_vip(self):
        # creamos un nuevo usuario
        pablo = User(UserUid("01202"), UserName("Pablo López"),
                     UserPassword("12345678"))

        # realizamos un cargo
        pablo.deposit(1_000_000)

        print(pablo.is_vip)
        self.assertTrue(pablo.is_vip)
    def __call__(self, uid: str, name: str, password: str):
        uid = UserUid(uid)
        name = UserName(name)
        password = UserPassword(password)

        # Creamos el usuario en memoria
        user = User(uid, name, password)

        # persistimos el usuario
        self.__repository.save(user)
 def test_load_existent_user(self):
     user_from_data = {
         "uid": "01202",
         "name": "Julia",
         "pass": "******",
         "credits": 320
     }
     pablo = User(UserUid(user_from_data["uid"]),
                  UserName(user_from_data["name"]),
                  UserPassword(user_from_data["pass"]),
                  UserCredits(user_from_data["credits"]))
     self.assertEqual(pablo.credits.value, 320)
 def test_create_new_user(self):
     pablo = User(UserUid("01202"), UserName("Pablo López"),
                  UserPassword("12345678"))
     self.assertEqual(pablo.credits.value, 100)
 def find(self, key: str, val: str) -> User:
     data = self.__repository.find(key, val)
     return User(data["id"], data["name"], data["password"],
                 data["credits"])
 def save(self, user: User):
     print("Saving: ", user.to_dict())
     self.__repository.save(user.to_dict())