diff --git a/.classpath b/.classpath
index 9ba41a249..b3a434205 100644
--- a/.classpath
+++ b/.classpath
@@ -31,6 +31,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.project b/.project
index 700a32c79..975c30797 100644
--- a/.project
+++ b/.project
@@ -20,4 +20,15 @@
org.eclipse.jdt.core.javanature
org.eclipse.m2e.core.maven2Nature
+
+
+ 1728064413646
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 000000000..f9fe34593
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,4 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/test/java=UTF-8
+encoding/=UTF-8
diff --git a/.vscode/launch.json b/.vscode/launch.json
index ac11c09b2..6dca13545 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -1,5 +1,12 @@
{
"configurations": [
+ {
+ "type": "java",
+ "name": "Main",
+ "request": "launch",
+ "mainClass": "com.mycompany.app.Main",
+ "projectName": "my-app"
+ },
{
"type": "java",
"name": "Launch App",
diff --git a/pom.xml b/pom.xml
index 2f4f99120..d83084270 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,6 +29,16 @@
maven-surefire-plugin
3.0.0-M6
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 11
+ 11
+ ${project.basedir}/bin
+
+
diff --git a/src/main/java/com/mycompany/app/Main.java b/src/main/java/com/mycompany/app/Main.java
new file mode 100644
index 000000000..ea2edfc1e
--- /dev/null
+++ b/src/main/java/com/mycompany/app/Main.java
@@ -0,0 +1,32 @@
+package com.mycompany.app;
+
+import java.util.Date;
+
+import com.mycompany.app.Model.*;
+
+public class Main {
+ public static void main(String[] args){
+ Autor autor = new Autor("Alysson","Brasileiro");
+ autor.setNome("Alysson Faria");
+ autor.setNacionalidade("Brasileiro");
+
+
+ Livro livro = new Livro("Java for begginers", autor, "Tecnologia", false);
+ livro.validarDisponibilidade();
+
+
+ Usuario usuario = new Usuario("Lucas Rafael", 25);
+ usuario.setNome("Lucas Rafael");
+ usuario.setIdade(25);
+
+ Emprestimo emprestimo = new Emprestimo(new Date(),new Date(),livro, usuario);
+
+ System.out.println("Livro: " + livro.getTitulo());
+ System.out.println("Autor: " + livro.getAutor().getNome());
+ System.out.println("Gênero: " + livro.getGenero());
+ System.out.println("Usuário: " + usuario.getNome());
+ System.out.println("Idade: " + usuario.getIdade());
+ System.out.println("Data de Retirada: " + emprestimo.getDataRetirada());
+ System.out.println("Data de Devolução: " + emprestimo.getDataDevolucao());
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/mycompany/app/App.java b/src/main/java/com/mycompany/app/Model/App.java
similarity index 93%
rename from src/main/java/com/mycompany/app/App.java
rename to src/main/java/com/mycompany/app/Model/App.java
index bc1164c88..86bb310fb 100644
--- a/src/main/java/com/mycompany/app/App.java
+++ b/src/main/java/com/mycompany/app/Model/App.java
@@ -3,7 +3,7 @@
* Licensed under the MIT License. See LICENSE in the project root for license information.
*---------------------------------------------------------------------------------------*/
-package com.mycompany.app;
+package com.mycompany.app.Model;
public class App {
public static void main(String[] args) {
diff --git a/src/main/java/com/mycompany/app/Model/Autor.java b/src/main/java/com/mycompany/app/Model/Autor.java
new file mode 100644
index 000000000..bd4722388
--- /dev/null
+++ b/src/main/java/com/mycompany/app/Model/Autor.java
@@ -0,0 +1,28 @@
+package com.mycompany.app.Model;
+
+public class Autor extends Pessoa {
+ private String nacionalidade;
+ private Livro[] obrasPublicadas;
+
+ public Autor(String nome, String nacionalidade){
+ super(nome);
+ this.nacionalidade = nacionalidade;
+ }
+
+ public String getNacionalidade(){
+ return nacionalidade;
+ }
+
+ public void setNacionalidade(String nacionalidade){
+ this.nacionalidade = nacionalidade;
+ }
+
+
+ public Livro[] getObrasPublicadas(){
+ return obrasPublicadas;
+ }
+
+ public void setObrasPublicadas(Livro[] livro){
+ this.obrasPublicadas = livro;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/mycompany/app/Model/Emprestimo.java b/src/main/java/com/mycompany/app/Model/Emprestimo.java
new file mode 100644
index 000000000..59b62bc25
--- /dev/null
+++ b/src/main/java/com/mycompany/app/Model/Emprestimo.java
@@ -0,0 +1,49 @@
+package com.mycompany.app.Model;
+
+import java.util.Date;
+
+public class Emprestimo {
+ private Date dataRetirada;
+ private Date dataDevolucao;
+ private Livro livro;
+ private Usuario usuario;
+
+ public Emprestimo ( Date dataRetirada, Date dataDevolucao, Livro livro, Usuario usuario){
+ this.dataRetirada = dataRetirada;
+ this.dataDevolucao = dataDevolucao;
+ this.livro = livro;
+ this.usuario = usuario;
+ }
+
+ public Date getDataRetirada(){
+ return dataRetirada;
+ }
+
+ public void setDataRetirada(Date dataRetirada){
+ this.dataRetirada = dataRetirada;
+ }
+
+ public Date getDataDevolucao(){
+ return dataDevolucao;
+ }
+
+ public void setDataDevolucao(Date dataDevolucao){
+ this.dataDevolucao = dataDevolucao;
+ }
+
+ public Livro getLivro(){
+ return livro;
+ }
+
+ public void setLivro(Livro livro){
+ this.livro = livro;
+ }
+
+ public Usuario getUsuario(){
+ return usuario;
+ }
+
+ public void setUsuario(Usuario usuario){
+ this.usuario = usuario;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/mycompany/app/Model/Livro.java b/src/main/java/com/mycompany/app/Model/Livro.java
new file mode 100644
index 000000000..94b9f927d
--- /dev/null
+++ b/src/main/java/com/mycompany/app/Model/Livro.java
@@ -0,0 +1,52 @@
+package com.mycompany.app.Model;
+
+public class Livro {
+ private String titulo;
+ private Autor autor;
+ private String genero;
+ private boolean disponivel;
+
+ public Livro(String titulo, Autor autor, String genero, boolean disponivel){
+ this.titulo = titulo;
+ this.autor = autor;
+ this.genero = genero;
+ this.disponivel = disponivel;
+ }
+ public String getTitulo(){
+ return titulo;
+ }
+
+ public void setTitulo(String titulo){
+ this.titulo = titulo;
+ }
+
+ public Autor getAutor(){
+ return autor;
+ }
+
+ public void setAutor(Autor autor){
+ this.autor = autor;
+ }
+
+ public String getGenero(){
+ return genero;
+ }
+
+ public void setGenero(String genero){
+ this.genero = genero;
+ }
+
+ public boolean isDisponivel(){
+ return disponivel;
+ }
+
+ public boolean validarDisponibilidade(){
+ if (disponivel){
+ System.out.println("O livro está disponível.");
+ return true;
+ } else {
+ System.out.println("O livro não está disponível.");
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/mycompany/app/Model/Pessoa.java b/src/main/java/com/mycompany/app/Model/Pessoa.java
new file mode 100644
index 000000000..7fc4f5910
--- /dev/null
+++ b/src/main/java/com/mycompany/app/Model/Pessoa.java
@@ -0,0 +1,27 @@
+package com.mycompany.app.Model;
+
+public class Pessoa {
+
+ public Pessoa (String nome){
+ this.nome = nome;
+ }
+
+ private String nome;
+ protected Livro[] listaLivros;
+
+ public String getNome(){
+ return nome;
+ }
+
+ public void setNome(String nome){
+ this.nome = nome;
+ }
+
+ public Livro[] getLivros(){
+ return listaLivros;
+ }
+
+ public void setLivros(Livro[] listaLivros){
+ this.listaLivros = listaLivros;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/mycompany/app/Model/Usuario.java b/src/main/java/com/mycompany/app/Model/Usuario.java
new file mode 100644
index 000000000..badcc81b4
--- /dev/null
+++ b/src/main/java/com/mycompany/app/Model/Usuario.java
@@ -0,0 +1,27 @@
+package com.mycompany.app.Model;
+
+public class Usuario extends Pessoa {
+ private int idade;
+ private Emprestimo[] historicoEmprestimos;
+
+ public Usuario(String nome, int idade){
+ super(nome);
+ this.idade = idade;
+ }
+
+ public int getIdade(){
+ return idade;
+ }
+
+ public void setIdade(int idade){
+ this.idade = idade;
+ }
+
+ public Emprestimo[] getHistoricoEmprestimos(){
+ return historicoEmprestimos;
+ }
+
+ public void setHistoricoEmprestimos(Emprestimo[] emprestimo){
+ this.historicoEmprestimos = emprestimo;
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/com/mycompany/app/AppTest.java b/src/test/java/com/mycompany/app/AppTest.java
index 710415f09..29a83c29f 100644
--- a/src/test/java/com/mycompany/app/AppTest.java
+++ b/src/test/java/com/mycompany/app/AppTest.java
@@ -1,5 +1,7 @@
package com.mycompany.app;
+
+
import org.junit.Test;
import static org.junit.Assert.assertTrue;
diff --git a/src/test/java/com/mycompany/app/AutorTest.java b/src/test/java/com/mycompany/app/AutorTest.java
new file mode 100644
index 000000000..9fbfb215d
--- /dev/null
+++ b/src/test/java/com/mycompany/app/AutorTest.java
@@ -0,0 +1,44 @@
+package com.mycompany.app;
+import org.junit.Test;
+
+import com.mycompany.app.Model.*;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+
+public class AutorTest {
+ @Test
+ public void testGetNacionalidade(){
+ Autor autor = new Autor("Jess", "Brasileira");
+ assertEquals("Brasileira", autor.getNacionalidade());
+ }
+
+ @Test
+ public void testSetNacionalidade(){
+ Autor autor = new Autor("Jess", "Brasileira");
+ autor.setNacionalidade("Argentina");
+ assertEquals("Argentina", autor.getNacionalidade());
+ }
+
+ @Test
+ public void testGetObrasPublicadas(){
+ Autor autor = new Autor("Jess", "Brasileira");
+ Livro[] livros = new Livro[2];
+ livros[0] = new Livro("Java avançado", autor, "Tecnologia", false);
+ livros[1] = new Livro("Java iniciante", autor, "Tecnologia", true);
+ autor.setObrasPublicadas(livros);
+
+ assertArrayEquals(livros, autor.getObrasPublicadas());
+ }
+
+ @Test
+ public void testSetObrasPublicadas(){
+ Autor autor = new Autor("Jess", "Brasileira");
+ Livro[] livros = new Livro[2];
+ livros[0] = new Livro("Java avançado", autor, "Tecnologia", false);
+ livros[1] = new Livro("Java iniciante", autor, "Tecnologia", true);
+ autor.setObrasPublicadas(livros);
+
+ assertArrayEquals(livros, autor.getObrasPublicadas());
+ }
+}
diff --git a/src/test/java/com/mycompany/app/EmprestimoTest.java b/src/test/java/com/mycompany/app/EmprestimoTest.java
new file mode 100644
index 000000000..fd907571b
--- /dev/null
+++ b/src/test/java/com/mycompany/app/EmprestimoTest.java
@@ -0,0 +1,97 @@
+package com.mycompany.app;
+import org.junit.Test;
+import java.util.Date;
+
+import static org.junit.Assert.assertEquals;
+
+import com.mycompany.app.Model.*;
+
+public class EmprestimoTest {
+ @Test
+ public void testGetDataRetirada(){
+ Date dataRetirada = new Date();
+ Date dataDevolucao = new Date();
+ Livro livro = new Livro("Java Basics", new Autor("Alan Turing", "Inglês"), "Tecnologia", true);
+ Usuario usuario = new Usuario("Gabriel", 21);
+ Emprestimo emprestimo = new Emprestimo(dataRetirada, dataDevolucao, livro, usuario);
+ assertEquals(dataRetirada, emprestimo.getDataRetirada());
+ }
+
+ @Test
+ public void testSetDataRetirada(){
+ Date dataRetirada = new Date();
+ Date dataDevolucao = new Date();
+ Livro livro = new Livro("Java Basics", new Autor("Alan Turing", "Inglês"), "Tecnologia", true);
+ Usuario usuario = new Usuario("Gabriel", 21);
+ Emprestimo emprestimo = new Emprestimo(dataRetirada, dataDevolucao, livro, usuario);
+ Date novaDataRetirada = new Date();
+ emprestimo.setDataRetirada(novaDataRetirada);
+ assertEquals(novaDataRetirada, emprestimo.getDataRetirada());
+ }
+
+ @Test
+ public void testGetDataDevolucao(){
+ Date dataRetirada = new Date();
+ Date dataDevolucao = new Date();
+ Livro livro = new Livro("Java Basics", new Autor("Alan Turing", "Inglês"), "Tecnologia", true);
+ Usuario usuario = new Usuario("Gabriel", 21);
+ Emprestimo emprestimo = new Emprestimo(dataRetirada, dataDevolucao, livro, usuario);
+ assertEquals(dataDevolucao, emprestimo.getDataDevolucao());
+ }
+
+ @Test
+ public void testSetDataDevolucao(){
+ Date dataRetirada = new Date();
+ Date dataDevolucao = new Date();
+ Livro livro = new Livro("Java Basics", new Autor("Alan Turing", "Inglês"), "Tecnologia", true);
+ Usuario usuario = new Usuario("Gabriel", 21);
+ Emprestimo emprestimo = new Emprestimo(dataRetirada, dataDevolucao, livro, usuario);
+ Date novaDataDevolucao = new Date();
+ emprestimo.setDataRetirada(novaDataDevolucao);
+ assertEquals(novaDataDevolucao, emprestimo.getDataDevolucao());
+ }
+
+ @Test
+ public void testGetLivro(){
+ Date dataRetirada = new Date();
+ Date dataDevolucao = new Date();
+ Livro livro = new Livro("Java Basics", new Autor("Alan Turing", "Inglês"), "Tecnologia", true);
+ Usuario usuario = new Usuario("Gabriel", 21);
+ Emprestimo emprestimo = new Emprestimo(dataRetirada, dataDevolucao, livro, usuario);
+ assertEquals(livro, emprestimo.getLivro());
+ }
+
+ @Test
+ public void testSetLivro(){
+ Date dataRetirada = new Date();
+ Date dataDevolucao = new Date();
+ Livro livro = new Livro("Java Basics", new Autor("Alan Turing", "Inglês"), "Tecnologia", true);
+ Livro novoLivro = new Livro("Java Advanced", new Autor("Alan Turing", "Inglês"), "Tecnologia", true);
+ Usuario usuario = new Usuario("Gabriel", 21);
+ Emprestimo emprestimo = new Emprestimo(dataRetirada, dataDevolucao, livro, usuario);
+ emprestimo.setLivro(novoLivro);
+ assertEquals(novoLivro, emprestimo.getLivro());
+ }
+
+ @Test
+ public void testGetUsuario(){
+ Date dataRetirada = new Date();
+ Date dataDevolucao = new Date();
+ Livro livro = new Livro("Java Basics", new Autor("Alan Turing", "Inglês"), "Tecnologia", true);
+ Usuario usuario = new Usuario("Gabriel", 21);
+ Emprestimo emprestimo = new Emprestimo(dataRetirada, dataDevolucao, livro, usuario);
+ assertEquals(usuario, emprestimo.getUsuario());
+ }
+
+ @Test
+ public void testSetUsuario(){
+ Date dataRetirada = new Date();
+ Date dataDevolucao = new Date();
+ Livro livro = new Livro("Java Basics", new Autor("Alan Turing", "Inglês"), "Tecnologia", true);
+ Usuario usuario = new Usuario("Gabriel", 21);
+ Usuario novoUsuario = new Usuario("Fabio", 25);
+ Emprestimo emprestimo = new Emprestimo(dataRetirada, dataDevolucao, livro, usuario);
+ emprestimo.setUsuario(novoUsuario);
+ assertEquals(novoUsuario, emprestimo.getUsuario());
+ }
+}
diff --git a/src/test/java/com/mycompany/app/LivroTest.java b/src/test/java/com/mycompany/app/LivroTest.java
new file mode 100644
index 000000000..9cc8fcec5
--- /dev/null
+++ b/src/test/java/com/mycompany/app/LivroTest.java
@@ -0,0 +1,68 @@
+package com.mycompany.app;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+import com.mycompany.app.Model.*;
+
+public class LivroTest {
+ @Test
+ public void testGetTitulo(){
+ Autor autor = new Autor("Jess", "Brasileira");
+ Livro livro = new Livro("Java para iniciantes", autor, "Tecnologia", true);
+ assertEquals("Java para iniciantes", livro.getTitulo());
+ }
+
+ @Test
+ public void testSetTitulo(){
+ Autor autor = new Autor("Jess", "Brasileira");
+ Livro livro = new Livro("Java para iniciantes", autor, "Tecnologia", true);
+ livro.setTitulo("Java Intermediário");
+ assertEquals("Java Intermediário", livro.getTitulo());
+ }
+
+ @Test
+ public void testGetAutor(){
+ Autor autor = new Autor("Jess", "Brasileira");
+ Livro livro = new Livro("Java para iniciantes", autor, "Tecnologia", true);
+ assertEquals(autor, livro.getAutor());
+ }
+
+ @Test
+ public void testSetAutor(){
+ Autor autor1 = new Autor("Jess", "Brasileira");
+ Autor autor2 = new Autor("Alysson", "Brasileiro");
+ Livro livro = new Livro("Java para iniciantes", autor1, "Tecnologia", true);
+ livro.setAutor(autor2);
+ assertEquals(autor2, livro.getAutor());
+ }
+
+ @Test
+ public void testGetGenero(){
+ Autor autor = new Autor("Jess", "Brasileira");
+ Livro livro = new Livro("Java para iniciantes", autor, "Tecnologia", true);
+ assertEquals("Tecnologia", livro.getGenero());
+ }
+
+ @Test
+ public void testSetGenero(){
+ Autor autor = new Autor("Jess", "Brasileira");
+ Livro livro = new Livro("Java para iniciantes", autor, "Tecnologia", true);
+ livro.setGenero("Romance");
+ assertEquals("Romance", livro.getGenero());
+ }
+
+ @Test
+ public void testIsDisponivel(){
+ Autor autor = new Autor("Jess", "Brasileira");
+ Livro livro = new Livro("Java para iniciantes", autor, "Tecnologia", true);
+ assertEquals(true, livro.isDisponivel());
+ }
+
+ @Test
+ public void testValidarDisponibilidade(){
+ Autor autor = new Autor("Jess", "Brasileira");
+ Livro livro = new Livro("Java para iniciantes", autor, "Tecnologia", true);
+ assertEquals(true, livro.validarDisponibilidade());
+ }
+}
diff --git a/src/test/java/com/mycompany/app/PessoaTest.java b/src/test/java/com/mycompany/app/PessoaTest.java
new file mode 100644
index 000000000..af222d4cb
--- /dev/null
+++ b/src/test/java/com/mycompany/app/PessoaTest.java
@@ -0,0 +1,47 @@
+package com.mycompany.app;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+
+import com.mycompany.app.Model.*;
+
+public class PessoaTest {
+ @Test
+ public void testGetNome(){
+ Pessoa pessoa = new Pessoa("Alysson");
+ assertEquals("Alysson", pessoa.getNome());
+ };
+ @Test
+ public void testSetNome(){
+ Pessoa pessoa = new Pessoa("Alysson");
+ pessoa.setNome("Maria");
+ assertEquals("Maria", pessoa.getNome());
+ }
+ @Test
+ public void testGetLivros(){
+ Pessoa pessoa = new Pessoa("Alysson");
+
+ Livro[] livros = new Livro[2];
+ Autor autor = new Autor("Alysson", "Brasileiro");
+ livros[0] = new Livro("Meu pé de laranja lima", autor, "Romance", true);
+ livros[0] = new Livro("Dom Casmurro", autor, "Romance", true);
+
+ pessoa.setLivros(livros);
+ assertArrayEquals(livros, pessoa.getLivros());
+ }
+
+ @Test
+ public void testSetLivros(){
+ Pessoa pessoa = new Pessoa("Alysson");
+
+ Livro[] livros = new Livro[2];
+ Autor autor = new Autor("Alysson", "Brasileiro");
+ livros[0] = new Livro("Meu pé de laranja lima", autor, "Romance", true);
+ livros[0] = new Livro("Dom Casmurro", autor, "Romance", true);
+
+ pessoa.setLivros(livros);
+ assertArrayEquals(livros, pessoa.getLivros());
+ }
+}
diff --git a/src/test/java/com/mycompany/app/UsuarioTest.java b/src/test/java/com/mycompany/app/UsuarioTest.java
new file mode 100644
index 000000000..3bb16bddd
--- /dev/null
+++ b/src/test/java/com/mycompany/app/UsuarioTest.java
@@ -0,0 +1,46 @@
+package com.mycompany.app;
+import org.junit.Test;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+
+import com.mycompany.app.Model.*;
+import java.util.Date;
+
+public class UsuarioTest {
+ @Test
+ public void testGetIdade(){
+ Usuario usuario = new Usuario("Alysson", 25);
+ assertEquals(25, usuario.getIdade());
+ };
+
+ @Test
+ public void testSetIdade(){
+ Usuario usuario = new Usuario("Alysson", 25);
+ usuario.setIdade(30);
+ assertEquals(30, usuario.getIdade());
+ };
+
+ @Test
+ public void testGetHistoricoEmprestimos(){
+ Livro livro = new Livro("Java Basics", new Autor("Alan Turing", "Inglês"), "Tecnologia", true);
+ Usuario usuario = new Usuario("Gabriel", 21);
+ Emprestimo[] historicoEmprestimos = new Emprestimo[1];
+ historicoEmprestimos[0] = new Emprestimo(new Date(), new Date(), livro, usuario);
+ usuario.setHistoricoEmprestimos(historicoEmprestimos);
+
+ assertArrayEquals(historicoEmprestimos, usuario.getHistoricoEmprestimos());
+ }
+
+ @Test
+ public void testSetHistoricoEmprestimos(){
+ Livro livro = new Livro("Java Basics", new Autor("Alan Turing", "Inglês"), "Tecnologia", true);
+ Usuario usuario = new Usuario("Gabriel", 21);
+ Emprestimo[] historicoEmprestimos = new Emprestimo[1];
+ historicoEmprestimos[0] = new Emprestimo(new Date(), new Date(), livro, usuario);
+ usuario.setHistoricoEmprestimos(historicoEmprestimos);
+
+ assertArrayEquals(historicoEmprestimos, usuario.getHistoricoEmprestimos());
+ }
+
+}