diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/exercicios/__init__.py b/exercicios/__init__.py new file mode 100644 index 0000000..e69de29 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..9720128 --- /dev/null +++ b/exercicios/para-casa/biblioteca.py @@ -0,0 +1,31 @@ +from livro import Livro + +class Biblioteca: + def __init__(self): + self.livro = [] + + def add_livro(self, livro: Livro): + if (isinstance(livro,Livro) == False): + raise TypeError(f"Esperado Livro obtido valor {livro} do tipo{type(livro)}") + self.livro.append(livro) + + def exibir_livros(self): + if len(self.livro) == 0: #verifica se a list esta vzia + raise TypeError("Lista Vazia") + else: return self.livro + + def emprestar_livro(self, livro: Livro): + if(livro.emprestado == True): + raise TypeError("Esse livro ja esta emprestado") + else: + livro.emprestado = True + return livro + + def devolver_livro(self, livro: Livro): + if(livro.emprestado == False): + raise TypeError("Este livro encotra-se na biblioteca") + else: + livro.emprestado = False + return livro + + \ 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..abc07ac --- /dev/null +++ b/exercicios/para-casa/livro.py @@ -0,0 +1,8 @@ +class Livro: + def __init__(self, nome, autor, emprestado): + #raise NotImplementedError #bota-se enquanto nao configura-se o teste + self.nome = nome + self.autor = autor + self.emprestado = emprestado + + \ 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..127cbc9 --- /dev/null +++ b/exercicios/para-casa/main.py @@ -0,0 +1,22 @@ +from biblioteca import Biblioteca +from livro import Livro +from testBiblioteca import TestBiblioteca + + +livro_objeto = Livro(nome="Torto Arado", autor="Itamar Vieira", emprestado=False) +livro2_objeto = Livro(nome="Entendendo algoritmo", autor="Aditya", emprestado=False) +biblioteca_objeto = Biblioteca() +lista = [livro_objeto,livro2_objeto] +for livro in lista: + biblioteca_objeto.add_livro(livro) + + +for livros in biblioteca_objeto.exibir_livros(): + print(f"Nome: {livros.nome} Autor: {livros.autor} Emprestado: {livros.emprestado}") + +emprestar = biblioteca_objeto.emprestar_livro(livro_objeto) +if(emprestar.emprestado == True): + print(f"O Livro: {emprestar.nome} foi emprestado com sucesso") + + + diff --git a/exercicios/para-casa/testBiblioteca.py b/exercicios/para-casa/testBiblioteca.py new file mode 100644 index 0000000..b0ef028 --- /dev/null +++ b/exercicios/para-casa/testBiblioteca.py @@ -0,0 +1,55 @@ +from unittest import TestCase +from biblioteca import Biblioteca +from livro import Livro + + +class TestBiblioteca(TestCase): + + def setUp(self): + self.biblioteca = Biblioteca() #com o self. na frente é comunicado que agora biblioteca é uma variável da classe + + + def test_init_deve_passar(self): + # Arrange / Act + #biblioteca = Biblioteca() + # Assert + self.assertIsInstance(self.biblioteca.livro, list) #biblioteca.livros diz que a biclioteca contem os livros + + + def test_add_livro_deve_passar(self): + #Arrange + #biblioteca = Biblioteca() + livro = Livro(nome="Torto Arado", autor="Itamar Vieira", emprestado=False) + #Act + self.biblioteca.add_livro(livro) + #Assert + self.assertEqual(1, len(self.biblioteca.livro)) + + def test_exibir_livro_deve_passar(self): + #Arrange + #biblioteca = Biblioteca() + livro1 = Livro(nome="Torto Arado", autor="Itamar Vieira", emprestado=False) + livro2 = Livro(nome="Entendendo algoritmo", autor="Aditya", emprestado=False) + + for livro in [livro1,livro2]: + self.biblioteca.add_livro(livro) + + self.assertEqual(2, len(self.biblioteca.exibir_livros())) + + + def test_emprestar_livro_deve_passar(self): + #Arrange + #biblioteca = Biblioteca() + livro_objeto = Livro(nome="Torto Arado", autor="Itamar Vieira", emprestado=False) + self.assertEqual(True, self.biblioteca.emprestar_livro(livro_objeto).emprestado) + + def test_add_livro_nao_deve_inserir_num(self): + #Arrange + #biblioteca = Biblioteca() + livro = 1989 + #Assert / Act + with self.assertRaises(TypeError): + self.biblioteca.add_livro(livro) + + + \ No newline at end of file diff --git a/exercicios/para-casa/testLivro.py b/exercicios/para-casa/testLivro.py new file mode 100644 index 0000000..f476757 --- /dev/null +++ b/exercicios/para-casa/testLivro.py @@ -0,0 +1,18 @@ +from unittest import TestCase +from livro import Livro + + +class TestLivro(TestCase): + def test_init_deve_passar(self): + #Arrange + nome = "Torto Arado" + autor ="Itamar Vieira" + #Act + livro = Livro(nome, autor,False) + #Assert + self.assertEqual(nome, livro.nome) + self.assertEqual(autor, livro.autor) + self.assertEqual(False, livro.emprestado) + + + \ No newline at end of file