diff --git a/exercicios/para-casa/Biblioteca.py b/exercicios/para-casa/Biblioteca.py new file mode 100644 index 0000000..4a0c77d --- /dev/null +++ b/exercicios/para-casa/Biblioteca.py @@ -0,0 +1,27 @@ +from Livro import Livro + +class Biblioteca: + def __init__(self): + self.livros = [] + #raise NotImplementedError + + def adicionar_livro(self, livro: Livro): + if (not isinstance(livro, Livro)): + raise TypeError(f'Esperado Livro obtido valor {livro} do tipo {type(livro)}') + self.livros.append(livro) + +#resolução projeto + def exibir_livro(self): + return self.livros + + + def emprestar_livro(self, nome_livro): + #return (self.nome, self.autor) + for livro in self.livros: + if livro.nome == nome_livro: + livro.esta_emprestado = True + else: + return ("Livro indisponível") + + + diff --git a/exercicios/para-casa/Livro.py b/exercicios/para-casa/Livro.py new file mode 100644 index 0000000..a98d343 --- /dev/null +++ b/exercicios/para-casa/Livro.py @@ -0,0 +1,7 @@ +class Livro: + def __init__(self, nome, autor): + + self.nome = nome + self.autor = autor + self.esta_emprestado = False + #NotImplementedError \ 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/main.py b/exercicios/para-casa/main.py new file mode 100644 index 0000000..5b4c51a --- /dev/null +++ b/exercicios/para-casa/main.py @@ -0,0 +1,17 @@ +from Biblioteca import Biblioteca +from Livro import Livro + +nome_livro = "O vendedor de sonhos" +autor_livro = "Augusto Cury" +livro_objeto = Livro(nome = nome_livro, autor = autor_livro) + +biblioteca_objeto = Biblioteca() + +print(biblioteca_objeto.livros) + +biblioteca_objeto.adicionar_livro(livro_objeto) + +for livro in biblioteca_objeto.livros: + print(livro.nome) + print(livro.autor) + diff --git a/exercicios/para-casa/testBiblioteca.py b/exercicios/para-casa/testBiblioteca.py new file mode 100644 index 0000000..9892ed6 --- /dev/null +++ b/exercicios/para-casa/testBiblioteca.py @@ -0,0 +1,59 @@ +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 / Act + #biblioteca = Biblioteca() + + # Assert + self.assertIsInstance(self.biblioteca.livros, list) + + def test_adicionar_livro_deve_passar(self): + #Arrange + # biblioteca = Biblioteca() + nome_livro = "O vendedor de sonhos" + autor_livro = "Augusto Cury" + livro = Livro(nome_livro, autor_livro) + + #Act + self.biblioteca.adicionar_livro(livro) + #Assert + self.assertEqual(1, len(self.biblioteca.livros)) + + def test_adicionar_livro_nao_deve_inserir_numeros(self): + #Arrange + #biblioteca = Biblioteca() + livro = 1988 + + # Assert / Act + with self.assertRaises(TypeError): + self.biblioteca.adicionar_livro(livro) + + def test_exibir_livro_deve_mostrar(self): + #Arrange + nome_livro = "O vendedor de sonhos" + autor_livro = "Augusto Cury" + livro = Livro(nome_livro, autor_livro) + self.biblioteca.adicionar_livro(livro) + #Act + lista_livros = self.biblioteca.exibir_livro() + #Assert + self.assertEqual(1, len(lista_livros)) + + def test_emprestar_livro_deve_emprestar(self): + #Arrange + nome_livro = "O vendedor de sonhos" + autor_livro = "Augusto Cury" + livro = Livro(nome_livro, autor_livro) + self.biblioteca.emprestar_livro(livro) + #Act + self.biblioteca.emprestar_livro(nome_livro = 'O vendedor de sonhos') + #Assert + self.assertTrue(self.biblioteca.emprestar_livro) + + diff --git a/exercicios/para-casa/testLivro.py b/exercicios/para-casa/testLivro.py new file mode 100644 index 0000000..6dd9c05 --- /dev/null +++ b/exercicios/para-casa/testLivro.py @@ -0,0 +1,17 @@ +from unittest import TestCase +from Livro import Livro + +class TestLivro(TestCase): + def test_init_deve_passar(self): + # Arrange + nome = "Mindset" + autor = "Carol Dweck" + # 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