/* * This file is part of LibrePlan * * Copyright (C) 2009-2010 Fundación para o Fomento da Calidade Industrial e * Desenvolvemento Tecnolóxico de Galicia * Copyright (C) 2010-2011 Igalia, S.L. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.libreplan.web.test.ws.common; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.List; import java.util.UUID; import org.hamcrest.BaseMatcher; import org.hamcrest.Description; import org.hamcrest.Matcher; import org.libreplan.ws.common.api.InstanceConstraintViolationsDTO; import org.libreplan.ws.common.api.InstanceConstraintViolationsListDTO; /** * Utilities class related with web service tests. * * @author Manuel Rego Casasnovas <mrego@igalia.com> * @author Fernando Bellas Permuy <fbellas@udc.es> */ public class Util { public static Matcher<String> mustEnd(final String property) { return new BaseMatcher<String>() { @Override public boolean matches(Object object) { if (object instanceof String) { String s = (String) object; return s.endsWith(property); } return false; } @Override public void describeTo(Description description) { description.appendText("must end with " + property); } }; } public static String getUniqueName() { return UUID.randomUUID().toString(); } public static void assertNoConstraintViolations( InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO) { assertNotNull(instanceConstraintViolationsListDTO. instanceConstraintViolationsList); assertTrue( instanceConstraintViolationsListDTO. instanceConstraintViolationsList.toString(), instanceConstraintViolationsListDTO. instanceConstraintViolationsList.size() == 0); } public static void assertOneConstraintViolation( InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO) { List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList = instanceConstraintViolationsListDTO. instanceConstraintViolationsList; assertNotNull(instanceConstraintViolationsListDTO. instanceConstraintViolationsList); assertTrue( instanceConstraintViolationsList.toString(), instanceConstraintViolationsList.size() == 1); assertNoRecoverableError(instanceConstraintViolationsList.get(0)); assertNoInternalError(instanceConstraintViolationsList.get(0)); assertNotNull(instanceConstraintViolationsList.get(0). constraintViolations); assertTrue( instanceConstraintViolationsList.get(0). constraintViolations.toString(), instanceConstraintViolationsList.get(0). constraintViolations.size() == 1); } public static void assertOneConstraintViolationPerInstance( InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO, int numberOfInstances) { List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList = instanceConstraintViolationsListDTO. instanceConstraintViolationsList; assertNotNull(instanceConstraintViolationsList); assertTrue( instanceConstraintViolationsList.toString(), instanceConstraintViolationsList.size() == numberOfInstances); for (InstanceConstraintViolationsDTO i : instanceConstraintViolationsList) { assertNoRecoverableError(i); assertNoInternalError(i); assertNotNull(i.constraintViolations); assertTrue( i.constraintViolations.toString(), i.constraintViolations.size() == 1); } } public static void assertOneRecoverableError( InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO) { List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList = instanceConstraintViolationsListDTO. instanceConstraintViolationsList; assertNotNull(instanceConstraintViolationsListDTO. instanceConstraintViolationsList); assertTrue( instanceConstraintViolationsList.toString(), instanceConstraintViolationsList.size() == 1); assertNoConstraintViolations(instanceConstraintViolationsList.get(0)); assertNoInternalError(instanceConstraintViolationsList.get(0)); assertNotNull(instanceConstraintViolationsList.get(0).recoverableError); } private static void assertNoConstraintViolations( InstanceConstraintViolationsDTO i) { assertNull(i.toString(), i.constraintViolations); } private static void assertNoRecoverableError( InstanceConstraintViolationsDTO i) { assertNull(i.toString(), i.recoverableError); } private static void assertNoInternalError( InstanceConstraintViolationsDTO i) { assertNull(i.toString(), i.internalError); } }