package fi.arcusys.koku.common.service; import static junit.framework.Assert.assertNotNull; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import fi.arcusys.koku.common.service.datamodel.Appointment; import fi.arcusys.koku.common.service.datamodel.AppointmentSlot; import fi.arcusys.koku.common.service.datamodel.AuthorizationArea; import fi.arcusys.koku.common.service.datamodel.AuthorizationTemplate; import fi.arcusys.koku.common.service.datamodel.ConsentActionRequest; import fi.arcusys.koku.common.service.datamodel.ConsentTemplate; import fi.arcusys.koku.common.service.datamodel.TargetPerson; import fi.arcusys.koku.common.service.UserDAO; import fi.arcusys.koku.common.service.datamodel.User; import fi.arcusys.koku.common.service.impl.UserDAOImpl; import fi.arcusys.koku.common.soa.Role; /** * @author Dmitry Kudinov (dmitry.kudinov@arcusys.fi) * May 18, 2011 */ @Component public class CommonTestUtil { @Autowired private UserDAO userDao; @Autowired private UsersAndGroupsTestImpl usersAndGroups; @Autowired private TargetPersonDAO targetPersonDao; public User getUserByUid(final String userUid) { User user = userDao.getUserByUid(userUid); if (user == null) { final User newUser = new User(); newUser.setUid(userUid); userDao.create(newUser); user = userDao.getUserByUid(userUid); } assertNotNull("User found by uid: " + userUid, user); return user; } public User getUserByUidWithRoles(final String userUid, final List<String> roleUids) { final List<Role> roles = new ArrayList<Role>(); for (final String roleUid : roleUids) { final Role role = new Role(); role.setRoleUid(roleUid); role.setRoleName(roleUid); roles.add(role); } usersAndGroups.setUserRoles(userUid, roles); return getUserByUid(userUid); } private Set<AppointmentSlot> createTestSlots(int numberOfSlots) { final HashSet<AppointmentSlot> slots = new HashSet<AppointmentSlot>(); for (int i = 1; i <= numberOfSlots; i++) { final AppointmentSlot slot = new AppointmentSlot(); slot.setAppointmentDate(new Date()); slot.setSlotNumber(i); slot.setStartTime(60 * i); slot.setEndTime(slot.getStartTime() + 15); slot.setLocation("room" + i); slot.setComment("comment" + i); slots.add(slot); } return slots; } public Appointment createTestAppointment(final String testSubject, final String description, int numberOfSlots) { final Appointment appointment = new Appointment(); appointment.setSubject(testSubject); appointment.setDescription(description); appointment.setSender(getUserByUid("testAppSender")); appointment.setRecipients(new HashSet<TargetPerson>( Arrays.asList( targetPersonDao.getOrCreateTargetPerson("testAppReceiver1", Arrays.asList("testGuardian1", "testGuardian2")), targetPersonDao.getOrCreateTargetPerson("testAppReceiver2", Arrays.asList("testGuardian3", "testGuardian4"))))); appointment.setSlots(createTestSlots(numberOfSlots)); return appointment; } public ConsentTemplate createTestConsentTemplate() { final ConsentTemplate consentTemplate = new ConsentTemplate(); final String title = "testConsent"; final String description = "consent for testing"; final String senderUid = "consentCreator"; final Set<ConsentActionRequest> actions = new HashSet<ConsentActionRequest>(); for (int i = 1; i <= 3; i++) { final ConsentActionRequest action = new ConsentActionRequest(); action.setNumber(i); action.setName("action" + i); action.setDescription("description " + i); actions.add(action); } consentTemplate.setTitle(title); consentTemplate.setDescription(description); consentTemplate.setCreator(getUserByUid(senderUid)); consentTemplate.setActions(actions); return consentTemplate; } public AuthorizationTemplate createAuthorization(final AuthorizationArea area) { final String testName = "new authorization template for " + area.name(); final String description = "template description for " + area.name(); final AuthorizationTemplate template = new AuthorizationTemplate(); template.setName(testName); template.setDescription(description); template.setAuthorizationArea(area); return template; } }