package org.basex.http.rest; import static org.basex.util.Token.*; import static org.junit.Assert.*; import java.io.*; import org.basex.core.*; import org.basex.io.in.*; import org.basex.util.*; import org.junit.*; /** * This class tests the embedded REST API and the DELETE method. * * @author BaseX Team 2005-17, BSD License * @author Christian Gruen */ public final class RESTDeleteTest extends RESTTest { /** * DELETE Test. * @throws IOException I/O exception */ @Test public void delete1() throws IOException { put(NAME, new FileInputStream(FILE)); // delete database assertEquals(delete(NAME).trim(), Util.info(Text.DB_DROPPED_X, NAME)); try { // no database left delete(NAME); fail("Error expected."); } catch(final BaseXException ignored) { } } /** * DELETE Test. * @throws IOException I/O exception */ @Test public void delete2() throws IOException { put(NAME, null); put(NAME + "/a", new ArrayInput(token("<a/>"))); put(NAME + "/b", new ArrayInput(token("<b/>"))); // delete 'a' directory assertStartsWith(delete(NAME + "/a"), "1 "); // delete 'b' directory assertStartsWith(delete(NAME + "/b"), "1 "); // no 'b' directory left assertStartsWith(delete(NAME + "/b"), "0 "); // delete database assertEquals(delete(NAME).trim(), Util.info(Text.DB_DROPPED_X, NAME)); try { // no database left delete(NAME); fail("Error expected."); } catch(final BaseXException ignored) { } } /** * DELETE Test: specify an option. * @throws IOException I/O exception */ @Test public void deleteOption() throws IOException { put(NAME, null); delete(NAME + "/a?" + MainOptions.CHOP.name() + "=true"); try { delete(NAME + "/a?xxx=true"); fail("Error expected."); } catch(final IOException ignored) { } } }