diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..874b14a
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..802cd60
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..4258c62
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..299a68d
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,32 @@
+
+
+ 4.0.0
+
+ org.example
+ TesteProjeto
+ 1.0-SNAPSHOT
+
+
+ org.junit.jupiter
+ junit-jupiter
+ RELEASE
+ test
+
+
+
+ org.mockito
+ mockito-core
+ 4.8.0
+
+
+
+
+
+ 18
+ 18
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/src/main/java/menuclasses/AdicionaCandidato.java b/src/main/java/menuclasses/AdicionaCandidato.java
new file mode 100644
index 0000000..16b0840
--- /dev/null
+++ b/src/main/java/menuclasses/AdicionaCandidato.java
@@ -0,0 +1,76 @@
+package menuclasses;
+
+import org.run.Main;
+import utilities.*;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Scanner;
+
+public class AdicionaCandidato {
+ ContadorDeFormularios contador = new ContadorDeFormularios();
+ PadronizadorDeTexto padronizador = new PadronizadorDeTexto();
+ MapeadorDePerguntas mapeador = new MapeadorDePerguntas();
+ String retornoEmString = contador.contadorDeArquivos();
+ String caminhoFormulario = "C:\\Go\\src\\github.com\\java-testes-2022\\src\\main\\java\\org\\run\\formulario.txt";
+ String caminhoModels = "C:\\Go\\src\\github.com\\java-testes-2022\\src\\main\\java\\models\\";
+
+
+
+ public void candidatar() throws IOException {
+
+ Map mapaDePerguntas = new HashMap<>();
+ Map mapaDeRespostas = new HashMap<>();
+
+ Scanner scannerLeitorDePerguntas = new Scanner(new File(caminhoFormulario));
+ Scanner scannerCapturaResposta = new Scanner(System.in);
+
+ while (scannerLeitorDePerguntas.hasNextLine()){
+ String linhaPergunta = scannerLeitorDePerguntas.nextLine();
+ if (!linhaPergunta.isEmpty()){
+ Integer numeroDaPergunta = mapeador.obterNumeroDaPergunta(linhaPergunta);
+ String pergunta = mapeador.obterTextoPergunta(linhaPergunta);
+ mapaDePerguntas.put(numeroDaPergunta, pergunta);
+ }
+ }
+
+ //For each e criação do MAPA para ler cada linha do TXT de perguntas e respostas.
+ mapaDePerguntas.forEach((k,v)-> {
+ System.out.println(v);
+ String resposta = scannerCapturaResposta.nextLine();
+ if (k.equals(3) && Integer.parseInt(resposta) < 16) {
+ String respostaIdade;
+ do {
+ System.out.println("Idade Incorreta Preencha Novamente");
+ respostaIdade = scannerCapturaResposta.nextLine();
+ } while (Integer.parseInt(respostaIdade) < 16);
+ resposta = respostaIdade;
+ }
+ mapaDeRespostas.put(k, resposta);
+ });
+ // Cria o nome padrão pro arquivo e gera o txt.
+ String nomeDoArquivo = retornoEmString + " - " + padronizador.padronizadorDeTexto(mapaDeRespostas.get(1)) + ".txt";
+ PrintWriter gravadorDeTXT = new PrintWriter(caminhoModels + nomeDoArquivo, "UTF-8");
+
+ //Adiciona o conteúdo ao txt do candidato.
+ List respostasCandidato = mapaDeRespostas.values().stream().toList();
+ StringBuilder formatadorDaListaAparaGravar = new StringBuilder();
+ respostasCandidato.forEach(x -> {
+ formatadorDaListaAparaGravar.append(x+"\n");
+ });
+ gravadorDeTXT.print(formatadorDaListaAparaGravar);
+
+ //Fecha os scanners e chama o menu principal
+
+ gravadorDeTXT.close();
+ scannerCapturaResposta.close();
+ scannerLeitorDePerguntas.close();
+ Main.chamarMenuPrincipal();
+
+ }
+
+}
diff --git a/src/main/java/menuclasses/AdicionaPergunta.java b/src/main/java/menuclasses/AdicionaPergunta.java
new file mode 100644
index 0000000..5a32f98
--- /dev/null
+++ b/src/main/java/menuclasses/AdicionaPergunta.java
@@ -0,0 +1,59 @@
+package menuclasses;
+
+import org.run.Main;
+import utilities.MapeadorDePerguntas;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Scanner;
+import utilities.*;
+
+public class AdicionaPergunta {
+ RemoveEspacos removedor = new RemoveEspacos();
+ MapeadorDePerguntas mapeador = new MapeadorDePerguntas();
+ String caminhoFormulario = "C:\\Go\\src\\github.com\\java-testes-2022\\src\\main\\java\\org\\run\\formulario.txt";
+ public void adicionar() throws IOException {
+
+ Map mapaDePerguntasAtuais = new HashMap<>();
+
+ // Sobrescreverá o texto
+ BufferedWriter sobrescritorDeTexto = new BufferedWriter(new FileWriter(caminhoFormulario, true));
+ // Vai ler as perguntas
+ Scanner leitorPerguntasAtuais = new Scanner(new File(caminhoFormulario));
+ // Vai pedir a nova pergunta
+ Scanner novaPergunta = new Scanner(System.in);
+
+
+ //Passar pelo arquivo e gravar todas perguntas para conferir se tem igual
+ while (leitorPerguntasAtuais.hasNextLine()){
+ String linhaPergunta = leitorPerguntasAtuais.nextLine();
+ Integer numeroDaPergunta = mapeador.obterNumeroDaPergunta(linhaPergunta);
+ String pergunta = mapeador.obterTextoPergunta(linhaPergunta);
+ mapaDePerguntasAtuais.put(numeroDaPergunta, pergunta);
+ }
+
+ System.out.println("Digite a nova pergunta:");
+ String novaPerguntaEscrita = novaPergunta.nextLine();
+
+ if (mapaDePerguntasAtuais.containsValue(novaPerguntaEscrita)) {
+ System.out.println("Não é possÃvel adicionar a mesma pergunta.");
+ return ;
+ } else {
+ int idDaPerguntaNova = mapaDePerguntasAtuais.size() + 1;
+ sobrescritorDeTexto.append("\n"+"P" + idDaPerguntaNova + "|" + novaPerguntaEscrita);
+ System.out.println("Pergunta Adicionada com sucesso");
+ }
+
+ sobrescritorDeTexto.close();
+ leitorPerguntasAtuais.close();
+ novaPergunta.close();
+
+ removedor.removerLinhasEmBranco();
+ Main.chamarMenuPrincipal();
+ }
+}
+
diff --git a/src/main/java/menuclasses/ListaDeCandidatos.java b/src/main/java/menuclasses/ListaDeCandidatos.java
new file mode 100644
index 0000000..3f6508a
--- /dev/null
+++ b/src/main/java/menuclasses/ListaDeCandidatos.java
@@ -0,0 +1,59 @@
+package menuclasses;
+
+import org.run.Main;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.*;
+
+public class ListaDeCandidatos {
+ String caminhoModels = "C:\\Go\\src\\github.com\\java-testes-2022\\src\\main\\java\\models\\";
+
+ public void listarCandidatos() throws IOException {
+
+ File diretorioDeTodosFormularios = new File(caminhoModels);
+ List> listaComTodosFormularios = new ArrayList<>();
+ File [] superLista = diretorioDeTodosFormularios.listFiles();
+
+ for (File arquivo : superLista) {
+ BufferedReader br = new BufferedReader(new FileReader(diretorioDeTodosFormularios +"/"+ arquivo.getName()));
+ List lista = new ArrayList<>();
+ String linha = "";
+ while (linha != null) {
+ linha = br.readLine();
+ if (linha != null && !linha.equals("")) {
+ lista.add(linha);
+ }
+ }
+ listaComTodosFormularios.add(lista);
+ br.close();
+ }
+
+ Scanner opcao = new Scanner(System.in);
+
+ System.out.println("Digite 1 para listar candidatos agrupados por idade ou 2 para listar cada candidato e sua idade");
+ int escolha = opcao.nextInt();
+
+ switch (escolha){
+ case 1:
+ System.out.println("Candidatos agrupados por idade");
+ listaComTodosFormularios.sort(Comparator.comparing(idade2 -> idade2.get(2)));
+ System.out.println("Idade | Nomes");
+ listaComTodosFormularios.forEach(nome -> System.out.println(nome.get(2) + " | " + nome.get(0)));
+ break;
+
+ case 2:
+ listaComTodosFormularios.sort(Comparator.comparing(idade2 -> idade2.get(2)));
+ System.out.println("Nome | Idade");
+ listaComTodosFormularios.forEach(nome -> System.out.println(nome.get(0) + " | " + nome.get(2)));
+ break;
+ }
+ opcao.close();
+ Main.chamarMenuPrincipal();
+ }
+ }
+
+
+
diff --git a/src/main/java/menuclasses/PesquisaCandidato.java b/src/main/java/menuclasses/PesquisaCandidato.java
new file mode 100644
index 0000000..2653faf
--- /dev/null
+++ b/src/main/java/menuclasses/PesquisaCandidato.java
@@ -0,0 +1,58 @@
+package menuclasses;
+
+import org.run.Main;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Scanner;
+import java.util.TreeMap;
+
+public class PesquisaCandidato {
+ String caminhoModels = "C:\\Go\\src\\github.com\\java-testes-2022\\src\\main\\java\\models\\";
+
+ TreeMap listaComNomeeEmail = new TreeMap<>();
+ public void pesquisar() throws IOException {
+
+ File diretorioDeTodosFormularios = new File(caminhoModels);
+
+ File [] superLista = diretorioDeTodosFormularios.listFiles();
+
+ for (File arquivo : superLista) {
+ BufferedReader br = new BufferedReader(new FileReader(diretorioDeTodosFormularios +"/"+ arquivo.getName()));
+ String linha = "";
+ List lista = new ArrayList<>();
+
+ while (linha != null) {
+ linha = br.readLine();
+ if (linha != null && !linha.equals("")) {
+ lista.add(linha.toLowerCase());
+ }
+ }
+ listaComNomeeEmail.put(lista.get(0),lista.get(1));
+
+ br.close();
+ }
+
+ Scanner textoPesquisa = new Scanner(System.in);
+
+ listaComNomeeEmail.forEach((k, v) -> System.out.println("Key : " + k + ", Value : " + v));
+
+ System.out.println("Digite aqui o Nome do candidato (com letras minúsculas) que deseja procurar:");
+ String pesquisadorDeNomeFormularios = textoPesquisa.nextLine();
+
+ System.out.println("Digite aqui o Email do candidato que deseja procurar:");
+ String pesquisadorDeEmailFormularios = textoPesquisa.nextLine();
+
+ listaComNomeeEmail.forEach((k, v) -> {
+ if (k.equals(pesquisadorDeNomeFormularios) && v.equals(pesquisadorDeEmailFormularios)) {
+ System.out.println("Key : " + k + ", Value : " + v);}
+ });
+
+ textoPesquisa.close();
+ Main.chamarMenuPrincipal();
+ }
+}
diff --git a/src/main/java/menuclasses/RemovePergunta.java b/src/main/java/menuclasses/RemovePergunta.java
new file mode 100644
index 0000000..d2ce434
--- /dev/null
+++ b/src/main/java/menuclasses/RemovePergunta.java
@@ -0,0 +1,68 @@
+package menuclasses;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.StandardOpenOption;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Scanner;
+import java.util.stream.Collectors;
+
+import org.run.Main;
+import utilities.*;
+
+public class RemovePergunta {
+
+ String caminhoFormulario = "C:\\Go\\src\\github.com\\java-testes-2022\\src\\main\\java\\org\\run\\formulario.txt";
+ MapeadorDePerguntas mapeador = new MapeadorDePerguntas();
+ RemoveEspacos removedorEspacos = new RemoveEspacos();
+
+ public void remover() throws IOException {
+ Map mapaDePerguntas = new HashMap<>();
+
+ Scanner apagadorDePerguntas = new Scanner(new File(caminhoFormulario));
+ Scanner capturaNumeroDaPerguntaParaRemover = new Scanner(System.in);
+ Scanner scannerLeitorDePerguntas = new Scanner(new File(caminhoFormulario));
+ File file = new File(caminhoFormulario);
+
+ while (scannerLeitorDePerguntas.hasNextLine()){
+ String linhaPergunta = scannerLeitorDePerguntas.nextLine();
+ if (!linhaPergunta.isEmpty()){
+ Integer numeroDaPergunta = mapeador.obterNumeroDaPergunta(linhaPergunta);
+ String pergunta = mapeador.obterTextoPergunta(linhaPergunta);
+ mapaDePerguntas.put(numeroDaPergunta, pergunta);
+ }
+ }
+
+ for (Integer key: mapaDePerguntas.keySet()) {
+ System.out.println(key + mapaDePerguntas.get(key));
+ }
+
+ System.out.println("Escolha uma pergunta para remover, exceto de 1 a 4:");
+ System.out.println(mapaDePerguntas.keySet());
+
+ int idDaRemocao = capturaNumeroDaPerguntaParaRemover.nextInt();
+
+ if (idDaRemocao < 4) {
+ System.out.println("Não é possÃvel remover perguntas padrões");
+ Main.chamarMenuPrincipal();
+ } else {
+ String perguntaRemovida = mapaDePerguntas.get(idDaRemocao);
+ System.out.println("A pergunta - " + mapaDePerguntas.get(idDaRemocao) + " foi removida.");
+
+ List out = Files.lines(file.toPath())
+ .filter(line -> !line.contains(perguntaRemovida))
+ .collect(Collectors.toList());
+ Files.write(file.toPath(), out, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING);
+ }
+
+ scannerLeitorDePerguntas.close();
+ capturaNumeroDaPerguntaParaRemover.close();
+ apagadorDePerguntas.close();
+
+ removedorEspacos.removerLinhasEmBranco();
+ Main.chamarMenuPrincipal();
+ }
+}
diff --git a/src/main/java/menuclasses/ValidaCandidato.java b/src/main/java/menuclasses/ValidaCandidato.java
new file mode 100644
index 0000000..af22109
--- /dev/null
+++ b/src/main/java/menuclasses/ValidaCandidato.java
@@ -0,0 +1,44 @@
+package menuclasses;
+
+import org.run.Main;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ValidaCandidato {
+ static List listaComTodosNomesEEmails = new ArrayList<>();
+ String caminhoModels = "C:\\Go\\src\\github.com\\java-testes-2022\\src\\main\\java\\models\\";
+
+ public void validar() throws IOException {
+ File diretorioDeTodosFormularios = new File(caminhoModels);
+
+ File [] superLista = diretorioDeTodosFormularios.listFiles();
+ for (File arquivo : superLista) {
+ BufferedReader br = new BufferedReader(new FileReader(diretorioDeTodosFormularios +"/"+ arquivo.getName()));
+ String linha = "";
+ List lista = new ArrayList<>();
+ while (linha != null) {
+ linha = br.readLine();
+ if (linha != null && !linha.equals("")) {
+ lista.add(linha);
+ }
+ }
+ listaComTodosNomesEEmails.add(lista.get(0) + " | " + lista.get(1));
+ br.close();
+ }
+ exibeFormulariosDuplicados();
+ Main.chamarMenuPrincipal();
+ }
+ private void exibeFormulariosDuplicados() {
+ for (int i = 0; i < listaComTodosNomesEEmails.size(); i++)
+ for (int j = i + 1; j < listaComTodosNomesEEmails.size(); j++) {
+ if (listaComTodosNomesEEmails.get(i).equals(listaComTodosNomesEEmails.get(j))) {
+ System.out.println("O formulário:\n " + i + " - " + listaComTodosNomesEEmails.get(i) + "\n" +
+ "É duplicado com o formulário \n " + j + " - " + listaComTodosNomesEEmails.get(j));
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/models/1 - LUCASC.txt b/src/main/java/models/1 - LUCASC.txt
new file mode 100644
index 0000000..5df885d
--- /dev/null
+++ b/src/main/java/models/1 - LUCASC.txt
@@ -0,0 +1,6 @@
+Lucas C
+asdokdoaks@gmail.com
+65
+56565656523
+123156454
+56656565656
diff --git a/src/main/java/models/2 - LUCASasdokaso.txt b/src/main/java/models/2 - LUCASasdokaso.txt
new file mode 100644
index 0000000..868b087
--- /dev/null
+++ b/src/main/java/models/2 - LUCASasdokaso.txt
@@ -0,0 +1,6 @@
+Lucas Almeida
+lucasdcse@gmail.com
+29
+56565656523
+123156454
+56656565656
diff --git a/src/main/java/models/3 - KARENA.txt b/src/main/java/models/3 - KARENA.txt
new file mode 100644
index 0000000..c866d53
--- /dev/null
+++ b/src/main/java/models/3 - KARENA.txt
@@ -0,0 +1,5 @@
+KAREN aLMIRa
+blockolsao@gmail.com
+25
+65656565
+1223121454
diff --git a/src/main/java/models/4 - KARENA.txt b/src/main/java/models/4 - KARENA.txt
new file mode 100644
index 0000000..c866d53
--- /dev/null
+++ b/src/main/java/models/4 - KARENA.txt
@@ -0,0 +1,5 @@
+KAREN aLMIRa
+blockolsao@gmail.com
+25
+65656565
+1223121454
diff --git a/src/main/java/models/5 - LUCASCARRILHOA.txt b/src/main/java/models/5 - LUCASCARRILHOA.txt
new file mode 100644
index 0000000..d12e4c0
--- /dev/null
+++ b/src/main/java/models/5 - LUCASCARRILHOA.txt
@@ -0,0 +1,6 @@
+Lucas Carrilho A
+soaksoakso@gmail.com
+656
+232656565
+dasdas
+eqwerqweq]
diff --git a/src/main/java/models/7 - WANDERC.txt b/src/main/java/models/7 - WANDERC.txt
new file mode 100644
index 0000000..7728de0
--- /dev/null
+++ b/src/main/java/models/7 - WANDERC.txt
@@ -0,0 +1,5 @@
+Wander C
+eoewkeowkeowko@gmail.com
+25
+45955965
+65656
diff --git a/src/main/java/models/8 - WANDERCARRILHODESOUZA.txt b/src/main/java/models/8 - WANDERCARRILHODESOUZA.txt
new file mode 100644
index 0000000..807d787
--- /dev/null
+++ b/src/main/java/models/8 - WANDERCARRILHODESOUZA.txt
@@ -0,0 +1,5 @@
+Wander Carrilho De Souza
+wcs@gmail.com
+55
+65656565456545
+wander tt
diff --git a/src/main/java/org/run/Main.java b/src/main/java/org/run/Main.java
new file mode 100644
index 0000000..e784647
--- /dev/null
+++ b/src/main/java/org/run/Main.java
@@ -0,0 +1,58 @@
+package org.run;
+
+import menuclasses.*;
+
+import java.io.IOException;
+import java.util.Scanner;
+
+public class Main {
+ public static void main(String[] args) throws IOException {
+ chamarMenuPrincipal();
+ }
+
+ public static void chamarMenuPrincipal() throws IOException {
+
+ Scanner selecionadorDeOpcao = new Scanner(System.in);
+
+ System.out.println(
+ "\nBem vindo Admin, o que você deseja?\n" +
+ " 1 - Candidatar-se\n" +
+ " 2 - Adicionar pergunta ao formulário\n" +
+ " 3 - Remover pergunta do formulário\n" +
+ " 4 - Listar formulários cadastrados\n" +
+ " 5 - Pesquisar formulários cadastrados\n" +
+ " 6 - Validar formulários\n" +
+ " 7 - Sair" + "\n" +
+ "Escolha um número: ");
+
+ int selecionador = selecionadorDeOpcao.nextInt();
+
+ try {
+ switch (selecionador){
+
+ case 1: new AdicionaCandidato().candidatar();
+ break;
+ case 2: new AdicionaPergunta().adicionar();
+ break;
+ case 3: new RemovePergunta().remover();
+ break;
+ case 4: new ListaDeCandidatos().listarCandidatos();
+ break;
+ case 5: new PesquisaCandidato().pesquisar();
+ break;
+ case 6: new ValidaCandidato().validar();
+ break;
+ case 7:
+ System.out.println("Saindo do programa...");
+ System.exit(0);
+ break;
+ default : System.out.println("Escolha um número válido");
+ chamarMenuPrincipal();
+ break;
+ }
+ }catch (IOException e){
+ e.printStackTrace();
+ System.out.println("Erro ao chamar o menu principal");
+ }
+ }
+}
diff --git a/src/main/java/org/run/formulario.txt b/src/main/java/org/run/formulario.txt
new file mode 100644
index 0000000..b1b140d
--- /dev/null
+++ b/src/main/java/org/run/formulario.txt
@@ -0,0 +1,4 @@
+P1|Qual o seu nome completo?
+P2|Qual seu e-mail?
+P3|Qual sua idade?
+P4|Qual sua WhatsApp?
diff --git a/src/main/java/utilities/ContadorDeFormularios.java b/src/main/java/utilities/ContadorDeFormularios.java
new file mode 100644
index 0000000..33a6974
--- /dev/null
+++ b/src/main/java/utilities/ContadorDeFormularios.java
@@ -0,0 +1,17 @@
+package utilities;
+
+import java.io.File;
+
+public class ContadorDeFormularios {
+ String caminhoFormulario = "C:\\Go\\src\\github.com\\java-testes-2022\\src\\main\\java\\models";
+
+ public String contadorDeArquivos() {
+ File arquivo = new File(caminhoFormulario);
+
+ // Carrega todos os arquivos em um vetor
+ File[] arquivos = arquivo.listFiles();
+
+ // Conta quantos arquivos tem no vetor
+ return Integer.toString(arquivos.length +1);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/utilities/MapeadorDePerguntas.java b/src/main/java/utilities/MapeadorDePerguntas.java
new file mode 100644
index 0000000..e27ffab
--- /dev/null
+++ b/src/main/java/utilities/MapeadorDePerguntas.java
@@ -0,0 +1,17 @@
+package utilities;
+
+public class MapeadorDePerguntas {
+
+ public Integer obterNumeroDaPergunta(String pergunta) {
+ pergunta = pergunta.substring(pergunta.indexOf("P") + 1);
+ pergunta = pergunta.substring(0, pergunta.indexOf("|"));
+ return Integer.parseInt(pergunta);
+ }
+
+ public String obterTextoPergunta(String pergunta) {
+ pergunta = pergunta.substring(pergunta.indexOf("|") + 1);
+ pergunta = pergunta.substring(0, pergunta.indexOf("?"));
+ StringBuilder perguntaBuilder = new StringBuilder(pergunta).append("?");
+ return perguntaBuilder.toString();
+ }
+}
diff --git a/src/main/java/utilities/PadronizadorDeTexto.java b/src/main/java/utilities/PadronizadorDeTexto.java
new file mode 100644
index 0000000..e057efc
--- /dev/null
+++ b/src/main/java/utilities/PadronizadorDeTexto.java
@@ -0,0 +1,17 @@
+package utilities;
+
+import java.text.Normalizer;
+import java.util.Locale;
+
+
+public class PadronizadorDeTexto {
+ public String padronizadorDeTexto (String string) {
+ if (string != null){
+ string = Normalizer.normalize(string, Normalizer.Form.NFD);
+ string = string.replaceAll("[^\\p{ASCII}]", "");
+ string = string.toUpperCase(Locale.forLanguageTag(string));
+ string = string.replaceAll("\\s+","");
+ }
+ return string;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/utilities/RemoveEspacos.java b/src/main/java/utilities/RemoveEspacos.java
new file mode 100644
index 0000000..ae4ec06
--- /dev/null
+++ b/src/main/java/utilities/RemoveEspacos.java
@@ -0,0 +1,34 @@
+package utilities;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Scanner;
+//import java.poi.*;
+
+public class RemoveEspacos {
+ String caminhoFormulario = "C:\\Go\\src\\github.com\\java-testes-2022\\src\\main\\java\\org\\run\\formulario.txt";
+
+ public void removerLinhasEmBranco() throws IOException {
+
+ File arquivoVelho = new File(caminhoFormulario);
+ Scanner deleter = new Scanner(arquivoVelho);
+ String linhaPreenchida = "";
+
+ while (deleter.hasNextLine()) {
+ //Pega a próxima linha vazia e guarda em uma string
+ String currentLine = deleter.nextLine();
+ //Se a linha for preenchida
+ if (!currentLine.isBlank()) {
+ //Adiciona a linha preenchida à string linhaPreenchida
+ linhaPreenchida += currentLine + System.lineSeparator(); //adds it to nonblankdata
+ }
+ }
+ PrintWriter writer = new PrintWriter(new FileWriter(caminhoFormulario));
+ writer.print(linhaPreenchida); //print the nonBlankData to the file
+ writer.close();
+ deleter.close();
+ }
+
+}
diff --git a/src/main/java/utilities/TextoParaLista.java b/src/main/java/utilities/TextoParaLista.java
new file mode 100644
index 0000000..852cc6f
--- /dev/null
+++ b/src/main/java/utilities/TextoParaLista.java
@@ -0,0 +1,24 @@
+package utilities;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.Collections;
+import java.util.List;
+
+public class TextoParaLista {
+
+ public static List readFileIntoList(String file) {
+ List lines = Collections.emptyList();
+ String caminhoFormulario = "C:\\Go\\src\\github.com\\java-testes-2022\\src\\main\\java\\org\\run\\formulario.txt";
+
+
+ try {
+ lines = Files.readAllLines(Paths.get(caminhoFormulario));
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return lines;
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/menuclasses/AdicionaCandidatoTest.java b/src/test/java/menuclasses/AdicionaCandidatoTest.java
new file mode 100644
index 0000000..61e753e
--- /dev/null
+++ b/src/test/java/menuclasses/AdicionaCandidatoTest.java
@@ -0,0 +1,22 @@
+package menuclasses;
+
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import utilities.MapeadorDePerguntas;
+
+import java.io.IOException;
+
+class AdicionaCandidatoTest {
+
+ @Test
+ void candidatar() throws IOException {
+
+ MapeadorDePerguntas dependencia = Mockito.mock(MapeadorDePerguntas.class);
+
+ AdicionaCandidato adicionaCandidato = new AdicionaCandidato();
+
+ adicionaCandidato.candidatar();
+
+ Mockito.verify(dependencia).obterNumeroDaPergunta("1");
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/menuclasses/AdicionaPerguntaTest.java b/src/test/java/menuclasses/AdicionaPerguntaTest.java
new file mode 100644
index 0000000..af06b00
--- /dev/null
+++ b/src/test/java/menuclasses/AdicionaPerguntaTest.java
@@ -0,0 +1,23 @@
+package menuclasses;
+
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import utilities.RemoveEspacos;
+
+import java.io.IOException;
+
+class AdicionaPerguntaTest {
+
+ @Test
+ void adicionar() throws IOException {
+
+ RemoveEspacos dependencia = Mockito.mock(RemoveEspacos.class);
+
+ AdicionaPergunta adicionarPergunta = new AdicionaPergunta();
+
+ adicionarPergunta.adicionar();
+
+ Mockito.verify(dependencia).removerLinhasEmBranco();
+
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/org/run/CalcTest.java b/src/test/java/org/run/CalcTest.java
new file mode 100644
index 0000000..ed944fc
--- /dev/null
+++ b/src/test/java/org/run/CalcTest.java
@@ -0,0 +1,18 @@
+//package org.example;
+//
+//import static org.junit.jupiter.api.Assertions.*;
+//
+//class CalcTest {
+//
+// @org.junit.jupiter.api.BeforeEach
+// void setUp() {
+// }
+//
+// @org.junit.jupiter.api.AfterEach
+// void tearDown() {
+// }
+//
+// @org.junit.jupiter.api.Test
+// void calculadora() {
+// }
+//}
\ No newline at end of file
diff --git a/src/test/java/org/run/MainTest.java b/src/test/java/org/run/MainTest.java
new file mode 100644
index 0000000..ca37aeb
--- /dev/null
+++ b/src/test/java/org/run/MainTest.java
@@ -0,0 +1,13 @@
+//package org.example;
+//
+//import static org.junit.jupiter.api.Assertions.*;
+//import org.junit.jupiter.api.Test;
+//import org.mockito.Mockito;
+//
+//class MainTest {
+//
+// @org.junit.jupiter.api.Test
+// void main() {
+// Main mock = Mockito.mock(Main.class);
+// }
+//}
\ No newline at end of file
diff --git a/target/classes/menuclasses/AdicionaCandidato.class b/target/classes/menuclasses/AdicionaCandidato.class
new file mode 100644
index 0000000..93a543a
Binary files /dev/null and b/target/classes/menuclasses/AdicionaCandidato.class differ
diff --git a/target/classes/menuclasses/AdicionaPergunta.class b/target/classes/menuclasses/AdicionaPergunta.class
new file mode 100644
index 0000000..8b5eaea
Binary files /dev/null and b/target/classes/menuclasses/AdicionaPergunta.class differ
diff --git a/target/classes/menuclasses/ListaDeCandidatos.class b/target/classes/menuclasses/ListaDeCandidatos.class
new file mode 100644
index 0000000..9e5d83d
Binary files /dev/null and b/target/classes/menuclasses/ListaDeCandidatos.class differ
diff --git a/target/classes/menuclasses/PesquisaCandidato.class b/target/classes/menuclasses/PesquisaCandidato.class
new file mode 100644
index 0000000..dc4c360
Binary files /dev/null and b/target/classes/menuclasses/PesquisaCandidato.class differ
diff --git a/target/classes/menuclasses/RemovePergunta.class b/target/classes/menuclasses/RemovePergunta.class
new file mode 100644
index 0000000..f4b2b1c
Binary files /dev/null and b/target/classes/menuclasses/RemovePergunta.class differ
diff --git a/target/classes/menuclasses/ValidaCandidato.class b/target/classes/menuclasses/ValidaCandidato.class
new file mode 100644
index 0000000..f6ae8ff
Binary files /dev/null and b/target/classes/menuclasses/ValidaCandidato.class differ
diff --git a/target/classes/org/run/Main.class b/target/classes/org/run/Main.class
new file mode 100644
index 0000000..acdc11d
Binary files /dev/null and b/target/classes/org/run/Main.class differ
diff --git a/target/classes/utilities/ContadorDeFormularios.class b/target/classes/utilities/ContadorDeFormularios.class
new file mode 100644
index 0000000..e184bcd
Binary files /dev/null and b/target/classes/utilities/ContadorDeFormularios.class differ
diff --git a/target/classes/utilities/MapeadorDePerguntas.class b/target/classes/utilities/MapeadorDePerguntas.class
new file mode 100644
index 0000000..5af7f24
Binary files /dev/null and b/target/classes/utilities/MapeadorDePerguntas.class differ
diff --git a/target/classes/utilities/PadronizadorDeTexto.class b/target/classes/utilities/PadronizadorDeTexto.class
new file mode 100644
index 0000000..ba8d1c6
Binary files /dev/null and b/target/classes/utilities/PadronizadorDeTexto.class differ
diff --git a/target/classes/utilities/RemoveEspacos.class b/target/classes/utilities/RemoveEspacos.class
new file mode 100644
index 0000000..3c39e9d
Binary files /dev/null and b/target/classes/utilities/RemoveEspacos.class differ
diff --git a/target/classes/utilities/TextoParaLista.class b/target/classes/utilities/TextoParaLista.class
new file mode 100644
index 0000000..15059fb
Binary files /dev/null and b/target/classes/utilities/TextoParaLista.class differ
diff --git a/target/test-classes/MainClasses/AdicionaCandidatoTest.class b/target/test-classes/MainClasses/AdicionaCandidatoTest.class
new file mode 100644
index 0000000..b873f10
Binary files /dev/null and b/target/test-classes/MainClasses/AdicionaCandidatoTest.class differ
diff --git a/target/test-classes/MainClasses/AdicionaPerguntaTest.class b/target/test-classes/MainClasses/AdicionaPerguntaTest.class
new file mode 100644
index 0000000..46d33ce
Binary files /dev/null and b/target/test-classes/MainClasses/AdicionaPerguntaTest.class differ