Boa noite, pessoal! Eu estou com problemas no entendimento desse método getTratamento() da classe Autoridade. Por favor, me expliquem a lógica, também, que foi utilizada na classe TesteAutoridade.
public interface FormatadorNome {
String formatarNome(String nome, String sobrenome);
}
public class Autoridade{
private String nome;
private String sobrenome;
public FormatadorNome fn;
public Autoridade(String nome, String sobrenome, FormatadorNome fn) {
this.nome = nome;
this.sobrenome = sobrenome;
this.fn = fn;
}
public String getTratamento() {
return fn.formatarNome(nome, sobrenome);
}
}
public class Informal implements FormatadorNome{
@Override
public String formatarNome(String nome, String sobrenome) {
return nome;
}
}
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class TesteAutoridade {
@Test
void testeInformal() {
FormatadorNome f = new Informal();
Autoridade a = new Autoridade("Pedro", "Cabral", f);
assertEquals("Pedro", a.getTratamento());
}