diff --git a/exercicios/para-casa/Biblioteca_daninegrao.py b/exercicios/para-casa/Biblioteca_daninegrao.py new file mode 100644 index 0000000..8c31b1c --- /dev/null +++ b/exercicios/para-casa/Biblioteca_daninegrao.py @@ -0,0 +1,25 @@ +from livros_daninegrao import Livros + +class Biblioteca: + def __init__(self): + self.livros = [] + + def adicionar_livros(self, livros: Livros): + if (not isinstance(livros, Livros)): + raise TypeError(f"Esperado livros obtido valor{livros} do tipo {type(livros)}") + self.livros.append(livros) + + def exibir_livro(self, nome_livro): + livros_encontrados = [] + for livro in self.livros: + if livro.nome == nome_livro: + livros_encontrados.append(livro) + return livros_encontrados + + def emprestar_livro(self, nome_livro): + for livro in self.livros: + if livro.nome == nome_livro: + self.livros.remove(livro) + return livro + + \ 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..0bdeca3 --- /dev/null +++ b/exercicios/para-casa/__init__.py @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/exercicios/para-casa/livros_daninegrao.py b/exercicios/para-casa/livros_daninegrao.py new file mode 100644 index 0000000..91bf110 --- /dev/null +++ b/exercicios/para-casa/livros_daninegrao.py @@ -0,0 +1,5 @@ +class Livros: + 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/main.py b/exercicios/para-casa/main.py new file mode 100644 index 0000000..6841e58 --- /dev/null +++ b/exercicios/para-casa/main.py @@ -0,0 +1,17 @@ +from Biblioteca_daninegrao import Biblioteca +from livros_daninegrao import Livros + +nome_livro = "O mito da beleza" +autor_livro = "Naomi Wolf" +livro_objeto = Livros(nome = nome_livro, autor = autor_livro) + +biblioteca_objeto = Biblioteca() + + +print(biblioteca_objeto.livros) + +biblioteca_objeto.adicionar_livros(livro_objeto) + +for livro in biblioteca_objeto.livros: + print(livro.nome) + print(livro.autor) \ No newline at end of file diff --git a/exercicios/para-casa/testBiblioteca_daninegrao.py b/exercicios/para-casa/testBiblioteca_daninegrao.py new file mode 100644 index 0000000..5986309 --- /dev/null +++ b/exercicios/para-casa/testBiblioteca_daninegrao.py @@ -0,0 +1,65 @@ +from unittest import TestCase +from Biblioteca_daninegrao import Biblioteca +from livros_daninegrao import Livros + + +class TestBiblioteca(TestCase): + def setUp(self): + self.biblioteca = Biblioteca() + + + def test_init_deve_passar(self): + #Ararange / Act + #biblioteca = Biblioteca() + #Assert + self.assertIsInstance(self.biblioteca.livros, list) + + def test_adicionar_livros_deve_passar(self): + #Arrange + #biblioteca = Biblioteca() + nome_livro = "O demônio e a srtª Prym" + autor_livro = "Paulo Coelho" + livros = Livros(nome_livro, autor_livro) + + #Act + self.biblioteca.adicionar_livros(livros) + + #Assert + self.assertEqual(1, len(self.biblioteca.livros)) + + def test_adicionar_livro_nao_deve_inserir_numero(self): + #Arrange + #biblioteca = Biblioteca() + livros = 1998 + #Act/Assert + with self.assertRaises(TypeError): + self.biblioteca.adicionar_livros(livros) + + + def test_exibir_livro_deve_passar(self): + # Arrange + nome_livro = "Dom Casmurro" + autor_livro = "Machado de Assis" + livro = Livros(nome_livro, autor_livro) + self.biblioteca.adicionar_livros(livro) + + # Act + resultado = self.biblioteca.exibir_livro(nome_livro) + + # Assert + self.assertEqual(1, len(resultado)) + self.assertEqual(livro, resultado[0]) + + def test_emprestar_livro_deve_passar(self): + # Arrange + nome_livro = "A Moreninha" + autor_livro = "Joaquim Manuel de Macedo" + livro = Livros(nome_livro, autor_livro) + self.biblioteca.adicionar_livros(livro) + + # Act/Assert + self.biblioteca.emprestar_livro(nome_livro) + + + + diff --git a/exercicios/para-casa/testLivros_daninegrao.py b/exercicios/para-casa/testLivros_daninegrao.py new file mode 100644 index 0000000..1e8e7f9 --- /dev/null +++ b/exercicios/para-casa/testLivros_daninegrao.py @@ -0,0 +1,14 @@ +from unittest import TestCase +from livros_daninegrao import Livros + +class TestLivros(TestCase): + def test_init_deve_passar(self): + #Arrange + nome = "Meu pé de laranja lima" + autor = "José Mauro de Vasconcelos" + #Act + livros = Livros(nome, autor) + #Assert + self.assertEqual(nome, livros.nome) + self.assertEqual(autor, livros.autor) + self.assertAlmostEqual(False, livros.esta_emprestado) \ No newline at end of file