package edu.ualberta.med.biobank.test.action.helper; import java.util.HashSet; import java.util.Set; import edu.ualberta.med.biobank.common.action.clinic.ClinicGetInfoAction.ClinicInfo; import edu.ualberta.med.biobank.common.action.clinic.ClinicSaveAction; import edu.ualberta.med.biobank.common.action.clinic.ClinicSaveAction.ContactSaveInfo; import edu.ualberta.med.biobank.model.ActivityStatus; import edu.ualberta.med.biobank.model.Address; import edu.ualberta.med.biobank.model.Contact; import edu.ualberta.med.biobank.test.Utils; import edu.ualberta.med.biobank.test.action.IActionExecutor; public class ClinicHelper extends Helper { public static ClinicSaveAction getSaveAction(String name, String nameShort, ActivityStatus activityStatus, Boolean sendsShipments) { Address address = new Address(); String city = name + "_city"; if (city.length() > 50) { city = city.substring(city.length() - 50); } address.setCity(city); ClinicSaveAction saveClinic = new ClinicSaveAction(); saveClinic.setName(name); saveClinic.setNameShort(nameShort); saveClinic.setActivityStatus(activityStatus); saveClinic.setSendsShipments(sendsShipments); saveClinic.setContactSaveInfos(new HashSet<ContactSaveInfo>()); saveClinic.setAddress(address); return saveClinic; } public static Integer createClinic(IActionExecutor actionExecutor, String name, ActivityStatus activityStatus) { ClinicSaveAction clinicSave = new ClinicSaveAction(); clinicSave.setName(name); clinicSave.setNameShort(name); clinicSave.setSendsShipments(true); clinicSave.setContactSaveInfos(new HashSet<ContactSaveInfo>()); clinicSave.setActivityStatus(activityStatus); Address address = new Address(); address.setCity(Utils.getRandomString(5, 10)); clinicSave.setAddress(address); return actionExecutor.exec(clinicSave).getId(); } public static Integer createClinicWithContacts( IActionExecutor actionExecutor, String name, int numContacts) { Set<ContactSaveInfo> contactsAll = new HashSet<ContactSaveInfo>(); for (int i = 0; i < numContacts; ++i) { ContactSaveInfo contactSaveInfo = new ContactSaveInfo(); contactSaveInfo.name = name + "_contact" + i; contactsAll.add(contactSaveInfo); } ClinicSaveAction clinicSave = ClinicHelper.getSaveAction( name, name, ActivityStatus.ACTIVE, true); clinicSave.setContactSaveInfos(contactsAll); return actionExecutor.exec(clinicSave).getId(); } public static Set<Integer> createClinicsWithContacts( IActionExecutor actionExecutor, String name, int numClinics, int numContactsPerClinic) { Set<Integer> result = new HashSet<Integer>(); for (int i = 0; i < numClinics; ++i) { result.add(createClinicWithContacts(actionExecutor, name + "_" + i, numContactsPerClinic)); } return result; } public static ClinicSaveAction getSaveAction(ClinicInfo clinicInfo) { ClinicSaveAction saveAction = new ClinicSaveAction(); saveAction.setId(clinicInfo.clinic.getId()); saveAction.setName(clinicInfo.clinic.getName()); saveAction.setNameShort(clinicInfo.clinic.getNameShort()); saveAction.setActivityStatus(clinicInfo.clinic.getActivityStatus()); saveAction.setSendsShipments(clinicInfo.clinic.getSendsShipments()); saveAction.setAddress(clinicInfo.clinic.getAddress()); Set<ContactSaveInfo> contactSaveInfos = new HashSet<ContactSaveInfo>(); for (Contact contact : clinicInfo.contacts) { contactSaveInfos.add(new ContactSaveInfo(contact)); } saveAction.setContactSaveInfos(contactSaveInfos); return saveAction; } }