package petclinic.vets;
import java.util.*;
import static java.util.Arrays.*;
import org.junit.*;
import static org.junit.Assert.*;
import petclinic.util.*;
/**
* Integration tests for {@link Vet}-related operations, at the application service level.
* Each test runs in a database transaction that is rolled back at the end of the test.
*/
public final class VetScreenTest
{
@TestUtil VetData vetData;
@SUT VetScreen vetScreen;
@Test
public void findVets()
{
Vet vet2 = vetData.create("Helen Leary", "radiology");
Vet vet0 = vetData.create("James Carter");
Vet vet1 = vetData.create("Linda Douglas", "surgery", "dentistry");
List<Vet> vetsInOrderOfLastName = asList(vet0, vet1, vet2);
vetScreen.showVetList();
List<Vet> vets = vetScreen.getVets();
vets.retainAll(vetsInOrderOfLastName);
assertEquals(vetsInOrderOfLastName, vets);
Vet vetWithSpecialties = vets.get(1);
assertEquals(2, vetWithSpecialties.getNrOfSpecialties());
vetData.refresh(vetWithSpecialties);
List<Specialty> specialtiesInOrderOfName = vetWithSpecialties.getSpecialties();
assertEquals("dentistry", specialtiesInOrderOfName.get(0).getName());
assertEquals("surgery", specialtiesInOrderOfName.get(1).getName());
}
}