tikhomirov@101: /* tikhomirov@101: * Copyright (c) 2011 TMate Software Ltd tikhomirov@101: * tikhomirov@101: * This program is free software; you can redistribute it and/or modify tikhomirov@101: * it under the terms of the GNU General Public License as published by tikhomirov@101: * the Free Software Foundation; version 2 of the License. tikhomirov@101: * tikhomirov@101: * This program is distributed in the hope that it will be useful, tikhomirov@101: * but WITHOUT ANY WARRANTY; without even the implied warranty of tikhomirov@101: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the tikhomirov@101: * GNU General Public License for more details. tikhomirov@101: * tikhomirov@101: * For information on how to redistribute this software under tikhomirov@101: * the terms of a license other than GNU General Public License tikhomirov@102: * contact TMate Software at support@hg4j.com tikhomirov@101: */ tikhomirov@101: package org.tmatesoft.hg.test; tikhomirov@101: tikhomirov@103: import static org.junit.Assert.assertThat; tikhomirov@103: tikhomirov@103: import java.util.concurrent.Callable; tikhomirov@103: tikhomirov@103: import org.hamcrest.Matcher; tikhomirov@269: import org.junit.internal.runners.model.MultipleFailureException; tikhomirov@101: import org.junit.rules.ErrorCollector; tikhomirov@101: tikhomirov@101: /** tikhomirov@101: * Expose verify method for allow not-junit runs to check test outcome tikhomirov@101: * tikhomirov@101: * @author Artem Tikhomirov tikhomirov@101: * @author TMate Software Ltd. tikhomirov@101: */ tikhomirov@101: final class ErrorCollectorExt extends ErrorCollector { tikhomirov@101: public void verify() throws Throwable { tikhomirov@269: try { tikhomirov@269: super.verify(); tikhomirov@269: } catch (MultipleFailureException ex) { tikhomirov@269: for (Throwable t : ex.getFailures()) { tikhomirov@269: t.printStackTrace(); tikhomirov@269: } tikhomirov@269: throw ex; tikhomirov@269: } tikhomirov@101: } tikhomirov@103: tikhomirov@103: public void checkThat(final String reason, final T value, final Matcher matcher) { tikhomirov@103: checkSucceeds(new Callable() { tikhomirov@103: public Object call() throws Exception { tikhomirov@103: assertThat(reason, value, matcher); tikhomirov@103: return value; tikhomirov@103: } tikhomirov@103: }); tikhomirov@103: } tikhomirov@269: tikhomirov@269: public void assertTrue(final String reason, final boolean value) { tikhomirov@269: checkSucceeds(new Callable() { tikhomirov@269: public Object call() throws Exception { tikhomirov@269: org.junit.Assert.assertTrue(reason, value); tikhomirov@269: return null; tikhomirov@269: } tikhomirov@269: }); tikhomirov@269: } tikhomirov@101: }