Advertisement
airton-junior

Testes

Apr 4th, 2023 (edited)
771
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 12.53 KB | None | 0 0
  1. @isTest
  2. public class TestesTempConverter {
  3.  
  4.     @isTest static void testaCToF(){
  5.         TempConverter tc = new TempConverter('cf',0);
  6.         Map<String, List<Decimal>> mapa = tc.retornaTemp();
  7.         System.debug(mapa);
  8.         String chave;
  9.         Decimal inputTemp, outputTemp;
  10.         for(String key:mapa.keySet()){
  11.             chave = key;
  12.             inputTemp = mapa.get(key)[0];
  13.             outputTemp = mapa.get(key)[1];
  14.             System.debug(chave+' - '+inputTemp+' - '+outputTemp);
  15.         }
  16.         System.assertEquals('cf',chave);
  17.         System.assertEquals(32, outputTemp);
  18.         System.assertEquals(0, inputTemp);
  19.     }
  20.     @isTest static void testaFToC(){
  21.         TempConverter tc = new TempConverter('fc',32);
  22.         Map<String, List<Decimal>> mapa = tc.retornaTemp();
  23.         System.debug(mapa);
  24.         String chave;
  25.         Decimal inputTemp, outputTemp;
  26.         for(String key:mapa.keySet()){
  27.             chave = key;
  28.             inputTemp = mapa.get(key)[0];
  29.             outputTemp = mapa.get(key)[1];
  30.             System.debug(chave+' - '+inputTemp+' - '+outputTemp);
  31.         }
  32.         System.assertEquals('fc',chave);
  33.         System.assertEquals(0, outputTemp);
  34.         System.assertEquals(32, inputTemp);
  35.     }
  36.    
  37.     @isTest static void testaKToC(){
  38.         TempConverter tc = new TempConverter('kc',273.15);
  39.         Map<String, List<Decimal>> mapa = tc.retornaTemp();
  40.         System.debug(mapa);
  41.         String chave;
  42.         Decimal inputTemp, outputTemp;
  43.         for(String key:mapa.keySet()){
  44.             chave = key;
  45.             inputTemp = mapa.get(key)[0];
  46.             outputTemp = mapa.get(key)[1];
  47.             System.debug(chave+' - '+inputTemp+' - '+outputTemp);
  48.         }
  49.         System.assertEquals('kc',chave);
  50.         System.assertEquals(0, outputTemp);
  51.         System.assertEquals(273.15, inputTemp);
  52.     }
  53.  
  54.     @isTest static void testaKToF(){
  55.         TempConverter tc = new TempConverter('kf',0);
  56.         Map<String, List<Decimal>> mapa = tc.retornaTemp();
  57.         System.debug(mapa);
  58.         String chave;
  59.         Decimal inputTemp, outputTemp;
  60.         for(String key:mapa.keySet()){
  61.             chave = key;
  62.             inputTemp = mapa.get(key)[0];
  63.             outputTemp = mapa.get(key)[1];
  64.             System.debug(chave+' - '+inputTemp+' - '+outputTemp);
  65.         }
  66.         System.assertEquals('kf',chave);
  67.         System.assertEquals(-459.67, outputTemp);
  68.         System.assertEquals(0, inputTemp);
  69.     }
  70.    
  71.     @isTest static void testaFToK(){
  72.         TempConverter tc = new TempConverter('fk',32);
  73.         Map<String, List<Decimal>> mapa = tc.retornaTemp();
  74.         System.debug(mapa);
  75.         String chave;
  76.         Decimal inputTemp, outputTemp;
  77.         for(String key:mapa.keySet()){
  78.             chave = key;
  79.             inputTemp = mapa.get(key)[0];
  80.             outputTemp = mapa.get(key)[1];
  81.             System.debug(chave+' - '+inputTemp+' - '+outputTemp);
  82.         }
  83.         System.assertEquals('fk',chave);
  84.         System.assertEquals(273.15, outputTemp);
  85.         System.assertEquals(32, inputTemp);
  86.     }
  87.  
  88.     @isTest static void testaCToK(){
  89.         TempConverter tc = new TempConverter('ck',-273.15);
  90.         Map<String, List<Decimal>> mapa = tc.retornaTemp();
  91.         System.debug(mapa);
  92.         String chave;
  93.         Decimal inputTemp, outputTemp;
  94.         for(String key:mapa.keySet()){
  95.             chave = key;
  96.             inputTemp = mapa.get(key)[0];
  97.             outputTemp = mapa.get(key)[1];
  98.             System.debug(chave+' - '+inputTemp+' - '+outputTemp);
  99.         }
  100.         System.assertEquals('ck',chave);
  101.         System.assertEquals(0, outputTemp);
  102.         System.assertEquals(-273.15, inputTemp);
  103.     }
  104.    
  105.     @isTest static void testaNaoExiste(){
  106.         TempConverter tc = new TempConverter('zz',32);
  107.         Map<String, List<Decimal>> mapa = tc.retornaTemp();
  108.         System.debug(mapa);
  109.         String chave;
  110.         Decimal inputTemp, outputTemp;
  111.         for(String key:mapa.keySet()){
  112.             chave = key;
  113.             inputTemp = mapa.get(key)[0];
  114.             outputTemp = mapa.get(key)[1];
  115.             System.debug(chave+' - '+inputTemp+' - '+outputTemp);
  116.         }
  117.         System.assertEquals('n/a',chave);
  118.         System.assertEquals(0, outputTemp);
  119.         System.assertEquals(0, inputTemp);
  120.     }
  121.  
  122.     @isTest static void testaConstrutorVazio(){
  123.         TempConverter tc = new TempConverter();
  124.  
  125.         System.assertEquals(null,tc.conversao, '');
  126.         System.assertEquals(null, tc.resultado,'');
  127.         System.assertEquals(null, tc.temperatura,'');
  128.     }
  129. }
  130.  
  131. public with sharing class TempConverter {
  132.     //declaração do atributo que determina o tipo de conversão
  133.     @TestVisible private String conversao;
  134.     //declaração do atributo que corresponde à temperatura a ser convertida
  135.     @TestVisible private Decimal temperatura;
  136.     //declaração do atributo que conterá o valor do resultado de qq uma das conversões
  137.     @TestVisible private Decimal resultado;
  138.     //criação do construtor vazio em função da criação do construtor com parâmetros
  139.     public TempConverter(){}
  140.     //criação do construtor que recebe o tipo da conversão e a temperatura a ser convertida
  141.     public TempConverter(String conversao, Decimal temperatura){
  142.         //atribuição do tipo da conversão recebida pelo construtor para o atributo de instância
  143.         this.conversao = conversao;
  144.         //atribuição do valor da temperatura recebida pelo construtor para o atributo de instância
  145.         this.temperatura = temperatura;
  146.         //chamada do método que chama o método específico definido pelo tipo de conversão
  147.         this.escolheConversao();
  148.     }
  149.     //método de faz a conversão de celsius para fahrenheit e atribui o resultado ao atributo de
  150.     //instância chamado resultado.
  151.     private void CelsiusToFah(){
  152.         this.resultado = (this.temperatura*9/5)+32;
  153.     }
  154.     //método de faz a conversão de fahrenheit para celsius e atribui o resultado ao atributo de
  155.     //instância chamado resultado.
  156.     private void FahToCelsius(){
  157.         this.resultado = (this.temperatura - 32)*5/9;
  158.     }
  159.     //método de faz a conversão de celsius para kelvin e atribui o resultado ao atributo de
  160.     //instância chamado resultado.
  161.     private void CelsiusToKelvin(){
  162.         this.resultado = this.temperatura + 273.15;
  163.     }
  164.     //método de faz a conversão de kelvin para celsius e atribui o resultado ao atributo de
  165.     //instância chamado resultado.
  166.     private void KelvinToCelsius(){
  167.         this.resultado = this.temperatura - 273.15;
  168.     }
  169.     //método de faz a conversão de fahrenheit para kelvin e atribui o resultado ao atributo de
  170.     //instância chamado resultado.
  171.     private void FahToKelvin(){
  172.         this.resultado = (this.temperatura - 32) * 5/9 + 273.15;
  173.     }
  174.     //método de faz a conversão de kelvin para fahrenheit e atribui o resultado ao atributo de
  175.     //instância chamado resultado.
  176.     private void KelvinToFah(){
  177.         this.resultado = (this.temperatura - 273.15)*9/5 + 32;
  178.     }
  179.     //método que faz o chaveamento para determinação da execução do método específico de conversão
  180.     //em função do tipo da conversão
  181.     private void escolheConversao(){
  182.         switch on this.conversao{
  183.             when 'cf'{
  184.                 //chamada do método que converte de celsius para fahrenheit
  185.                 this.CelsiusToFah();
  186.             }
  187.             when 'fc'{
  188.                 //chamada do método que converte de fahrenheit para celsius
  189.                 this.FahToCelsius();
  190.             }
  191.             when 'ck'{
  192.                 //chamada do método que converte de celsius para kelvin
  193.                 this.CelsiusToKelvin();
  194.             }
  195.             when 'kc'{
  196.                 //chamada do método que converte de kelvin para celsius
  197.                 this.KelvinToCelsius();
  198.             }
  199.             when 'fk'{
  200.                 //chamada do método que converte de fahrenheit para kelvin
  201.                 this.FahToKelvin();
  202.             }
  203.             when 'kf'{
  204.                 //chamada do método que converte de kelvin para fahrenheit
  205.                 this.KelvinToFah();
  206.             }
  207.             when else{
  208.                 //esse when atribui 0 para o valor de temperatura do resultado e n/a
  209.                 //(não aplicável) em função de ter sido escolhida uma sigla que não
  210.                 //pertence ao conjunto das que devem ser admitidas para a conversão
  211.                 this.resultado = 0;
  212.                 this.conversao = 'n/a';
  213.                 this.temperatura = 0;
  214.             }
  215.         }
  216.     }
  217.     //método que retorna um map que contém uma chave que corresponde ao tipo de conversão e
  218.     //um valor, que é uma lista de dois valores decimais, que correspondem respectivamente
  219.     //nas posições de índice [0] e [1], da temperatura que será convertida e da temperatura
  220.     //que já foi convertida
  221.     public Map<String, List<Decimal>> retornaTemp(){
  222.         //O código comentado abaixo é uma opção para se enviar como valor no map
  223.         //que é retornado para quem chama esse método
  224.         /*
  225.         Objeto obj = new Objeto();
  226.         obj.tempEntrada = this.temperatura;
  227.         obj.tempSaida = this.resultado;
  228.         */
  229.         //criação do map que será retornado
  230.         Map<String, List<Decimal>> mapa = new Map<String, List<Decimal>>();
  231.         //populando o map com o tipo de conversão e a lista com os dois valores
  232.         //correspondentes as temperaturas de entrada e saída
  233.         mapa.put(this.conversao, new List<Decimal>{this.temperatura, this.resultado});
  234.         return mapa;
  235.     }
  236. }
  237.  
  238. /* CÓDIGO DO ANONYMOUS
  239. //atribuição do valor à ser convertido
  240. Decimal tempParaConverter = 273.15;
  241. //atribuição do tipo da conversão
  242. String conversor = 'kc';
  243. //declaração do texto correspondente aos tipos de temperaturas, da que será
  244. //convertida e da que já foi convertida, respectivamente
  245. String tempEntrada, tempSaida;
  246. //criação do objeto e instância de classe, com a passagem das variáveis que contém
  247. //os valores do tipo de conversão e da temperatura, respectivamente
  248. TempConverter tc = new TempConverter(conversor, tempParaConverter);
  249. //declaração do map que recebe a chave e valor pela execução do método de retorno
  250. //do resultado, que pertence à classe, e atribuição do resultado ao objeto do tipo Map
  251. //desses valores
  252. Map<String, List<Decimal>> mapa = tc.retornaTemp();
  253. //Exibição do map retornado por motivos didáticos
  254. System.debug(mapa);
  255. //declaração e inicialização da variável de maior escopo que conterá a chave do map, que corresponde
  256. //ao tipo da conversão que será realizada, após a iteração das chaves do map (que conterá
  257. //somente um único elemento)
  258. String conversorRetornado = '';
  259. //Iteração das chaves do map que foi retornado, e atribuição da chave para a variável declarada
  260. //acima, para que seja acessada fora do escopo do loop
  261. for(String key:mapa.keySet()){
  262.     conversorRetornado = key;
  263. }
  264. //Declaração e atribuição de Lista, que contém os valores do map que recebeu o retorno com
  265. //os resultados da operação
  266. List<Decimal> listaRetornada = mapa.get(conversorRetornado);
  267. //declaração e atribuição do conteúdo das duas posições da lista que recebeu as temperaturas
  268. //de entrada para conversão e de saída que é o resultado da conversão
  269. Decimal tempIn = listaRetornada[0];
  270. Decimal tempOut = listaRetornada[1];
  271.         //chaveamento para atribuição de string mais estética para apresentação de frase
  272.         //com os tipos de temperaturas, de entrada e saída, correspondentes às temperaturas
  273.         //sendo a primeira a ser convertida e a segunda já convertida
  274.         switch on conversor{
  275.             when 'cf'{
  276.                 tempEntrada = 'Celsius';
  277.                 tempSaida = 'Fahrenheit';
  278.             }
  279.             when 'fc'{
  280.                 tempEntrada = 'Fahrenheit';
  281.                 tempSaida = 'Celsius';
  282.             }
  283.             when 'ck'{
  284.                 tempEntrada = 'Celsius';
  285.                 tempSaida = 'Kelvin';
  286.             }
  287.             when 'kc'{
  288.                 tempEntrada = 'Kelvin';
  289.                 tempSaida = 'Celsius';
  290.             }
  291.             when 'fk'{
  292.                 tempEntrada = 'Fahrenheit';
  293.                 tempSaida = 'Kelvin';
  294.             }
  295.             when 'kf'{
  296.                 tempEntrada = 'Kelvin';
  297.                 tempSaida = 'Fahrenheit';
  298.             }
  299.         }
  300. //Exibição da frase com o resultado final
  301. System.debug(tempIn+'º '+tempEntrada+' equivale a '+tempOut+'º '+tempSaida);
  302.  
  303. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement