diff --git a/exercicios/para-casa/Biblioteca.py b/exercicios/para-casa/Biblioteca.py new file mode 100644 index 0000000..942c15f --- /dev/null +++ b/exercicios/para-casa/Biblioteca.py @@ -0,0 +1,19 @@ +# Sistema de biblioteca + # Adicionar, listar e emprestar livros +from Livro import Livro + +class Biblioteca: + """Classe biblioteca""" + def __init__(self): + self.livros = [] + + def adicionar_livro(self, livro: Livro): + if (not isinstance(livro, Livro)): + raise TypeError(f"Esperado do valor {livro} do tipo {type(livro)}") + self.livros.append(livro) + + def exibir_livros(self): + return self.livros + + def emprestar_livros(self, livro: Livro): + livro.esta_emprestado = True \ No newline at end of file diff --git a/exercicios/para-casa/Livro.py b/exercicios/para-casa/Livro.py new file mode 100644 index 0000000..83c8cc0 --- /dev/null +++ b/exercicios/para-casa/Livro.py @@ -0,0 +1,6 @@ +class Livro: + """Classe livro""" + def __init__(self, nome, autor): + self.nome = nome + self.autor = autor + self.esta_emprestado = False \ No newline at end of file diff --git a/exercicios/para-casa/__init__.py b/exercicios/para-casa/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/exercicios/para-casa/testeBiblioteca.py b/exercicios/para-casa/testeBiblioteca.py new file mode 100644 index 0000000..111bb45 --- /dev/null +++ b/exercicios/para-casa/testeBiblioteca.py @@ -0,0 +1,44 @@ +from unittest import TestCase +from Biblioteca import Biblioteca +from Livro import Livro + +class TestBiblioteca(TestCase): + def setUp(self): + self.biblioteca = Biblioteca() + + def test_init_deve_passar(self): + # arrange e act + #biblioteca = Biblioteca() + # assert + self.assertIsInstance(self.biblioteca.livros, list) + + def test_adicionar_livro_deve_passar(self): + # arrange + #biblioteca = Biblioteca() + nome_livro = "Tudo sobre o amor" + autor_livro = "bell hooks" + livro = Livro(nome = nome_livro, autor = autor_livro) + # act + self.biblioteca.adicionar_livro(livro) + # assert + self.assertEqual(1, len(self.biblioteca.livros)) + + def test_adicionar_livro_nao_deve_inserir_numero(self): + # arrange + #biblioteca = Biblioteca() + livro = 1988 + # act e assert + with self.assertRaises(TypeError): + self.biblioteca.adicionar_livro(Livro) + + def test_exibir_livros_deve_passar(self): + livro = Livro("Tudo sobre o amor", "bell hooks") + self.biblioteca.adicionar_livro(livro) + self.assertEqual([livro], self.biblioteca.exibir_livros()) + + def test_emprestar_livro(self): + #nome_livro = "Tudo sobre o amor" + #autor_livro = "bell hooks" + livro = Livro("Tudo sobre o amor", "bell hooks") + self.biblioteca.emprestar_livros(livro) + self.assertTrue = () \ No newline at end of file diff --git a/exercicios/para-casa/testeLivro.py b/exercicios/para-casa/testeLivro.py new file mode 100644 index 0000000..9034f7d --- /dev/null +++ b/exercicios/para-casa/testeLivro.py @@ -0,0 +1,14 @@ +from unittest import TestCase +from Livro import Livro + +class TestLivro(TestCase): + def test_init_deve_passar(self): + # arrange + nome = "pachinko" + autor = "Min Jin Lee" + # act + livro = Livro(nome, autor) + # assert + self.assertEqual(nome, livro.nome) + self.assertEqual(autor, livro.autor) + self.assertEqual(False, livro.esta_emprestado) \ No newline at end of file