Subversion Repositories Integrator Subversion

Rev

Blame | Last modification | View Log | Download | RSS feed

package br.gov.al.saude.rhd.core.application;

import static org.junit.Assert.assertEquals;

import java.util.ArrayList;
import java.util.List;

import org.junit.Before;
import org.junit.Test;

import br.gov.al.saude.rhd.core.application.ordenador.Ordenador;
import br.gov.al.saude.rhd.core.application.ordenador.impl.OrdenadorImpl;

public class OrdernadorImplTest {

        private Ordenador ordenadorImpl;
        private Integer PRIMEIRO_ELEMENTO = 1;
        private Integer SEGUNDO_ELEMENTO = 2;
        private Integer TERCEIRO_ELEMENTO = 3;
       
        @Before
        public void inicializarContexto(){
                ordenadorImpl = new OrdenadorImpl();
        }
       
        @Test
        public void aoOrdernarListaDeveriaRetornarListaOrdenada() {
                List<ClasseParaOrdenar> listaOrdenada = (ArrayList<ClasseParaOrdenar>) ordenadorImpl.ordenar(gerarListaDesordenada());
               
                assertEquals("Deveria retornar uma lista com 3 elementos", 3, listaOrdenada.size());
                assertEquals("O primeiro elemento da lista deveria ser 1", new Integer(PRIMEIRO_ELEMENTO), listaOrdenada.get(0).ordem);
                assertEquals("O primeiro segundo da lista deveria ser 2", new Integer(SEGUNDO_ELEMENTO), listaOrdenada.get(1).ordem);
                assertEquals("O primeiro terceiro da lista deveria ser 3", new Integer(TERCEIRO_ELEMENTO), listaOrdenada.get(2).ordem);
        }
       
        private List<ClasseParaOrdenar> gerarListaDesordenada() {
                List<ClasseParaOrdenar> listaDesordenada = new ArrayList<ClasseParaOrdenar>();
                listaDesordenada.add(new ClasseParaOrdenar(TERCEIRO_ELEMENTO));
                listaDesordenada.add(new ClasseParaOrdenar(PRIMEIRO_ELEMENTO));
                listaDesordenada.add(new ClasseParaOrdenar(SEGUNDO_ELEMENTO));
                return listaDesordenada;
        }
       
        private class ClasseParaOrdenar implements Comparable<ClasseParaOrdenar> {

                public ClasseParaOrdenar(Integer ordem) {
                        this.ordem = ordem;
                }

                public Integer ordem;
               
                @Override
                public int compareTo(ClasseParaOrdenar outroObjeto) {
                        return this.ordem.compareTo(outroObjeto.ordem);
                }
        }
       
}