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/biblioteca.py b/exercicios/para-casa/biblioteca.py new file mode 100644 index 0000000..bcffd28 --- /dev/null +++ b/exercicios/para-casa/biblioteca.py @@ -0,0 +1,21 @@ +from livro import Livro + +class Biblioteca: + def __init__(self): + self.livros = [] + + 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) + + def exibir_livro(self): + return self.livros + + def emprestar_livro(self, livro: Livro): + if livro.esta_emprestado == True: + return(f"O livro que você solicitou não está disponível") + elif livro.esta_emprestado: + return(f"O livro que você você solicitou está disponível") + else: + raise TypeError("Este livro não consta na nossa base de dados") diff --git a/exercicios/para-casa/livro.py b/exercicios/para-casa/livro.py new file mode 100644 index 0000000..511863d --- /dev/null +++ b/exercicios/para-casa/livro.py @@ -0,0 +1,5 @@ +class 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/testBiblioteca.py b/exercicios/para-casa/testBiblioteca.py new file mode 100644 index 0000000..2901312 --- /dev/null +++ b/exercicios/para-casa/testBiblioteca.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): + + #Assert + self.assertIsInstance(self.biblioteca.livros, list) + + def test_adicionar_livro_deve_passar(self): + #arrange + nome_livro = "A Pequena Sereia e o Reino das Ilusões" + nome_autor = "Louise O'Neil" + livro = Livro(nome_livro, nome_autor) + + #act + self.biblioteca.adicionar_livro(livro) + + #assert + self.assertEqual(1, len(self.biblioteca.livros)) + + def test_adicionar_livro_nao_deve_inserir_numero(self): + # Arrange + livro = 1988 + + # Act / Assert + with self.assertRaises(TypeError): + self.biblioteca.adicionar_livro(livro) + + def test_exibir_livro(self): + self.biblioteca.livros = "Jogador nº 1" + self.assertEqual(self.biblioteca.exibir_livro(), "Jogador nº 1") + + def test_emprestar_livro(self): + nome_livro = "O Guia do Mochileiro das Galáxias" + nome_autor = "Douglas Adams" + livro = Livro(nome_livro, nome_autor) + livro.esta_emprestado = True + + self.assertEqual(self.biblioteca.emprestar_livro(livro),f"O livro que você solicitou não está disponível") diff --git a/exercicios/para-casa/testLivro.py b/exercicios/para-casa/testLivro.py new file mode 100644 index 0000000..f22d278 --- /dev/null +++ b/exercicios/para-casa/testLivro.py @@ -0,0 +1,16 @@ +from unittest import TestCase +from livro import Livro + +class TestLivro(TestCase): + def test_init_deve_passar(self): + #arrange + nome = "Coraline" + autor = "Neil Gaiman" + + #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