/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.apache.tuscany.nosqldatastore.couchdb; import junit.framework.Assert; import org.apache.tuscany.nosqldatastore.exception.EntryNotFoundException; import org.junit.Before; import org.junit.Test; import java.io.*; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import static junit.framework.Assert.*; public class CouchDBServiceTestCase { private URL url; private URLConnection connection; @Before public void testInsertEntry() throws IOException { url = new URL("http://localhost:8085/DatastoreService/addEntry?database=twitapp&group=twits&key=twitName1&value=twit1"); connection = url.openConnection(); url = new URL("http://localhost:8085/DatastoreService/addEntry?database=twitapp&group=twits&key=twitName1&value=twit1"); connection = url.openConnection(); url = new URL("http://localhost:8085/DatastoreService/addEntry?database=twitapp&group=twits&key=twitName3&value=twit3"); connection = url.openConnection(); url = new URL("http://localhost:8085/DatastoreService/getEntry?database=twitapp&group=twits&key=twitName1"); Assert.assertEquals("twit1", read(url.openStream())); url = new URL("http://localhost:8085/DatastoreService/getEntry?database=twitapp&group=twits&key=twitName2"); Assert.assertEquals("twit2", read(url.openStream())); url = new URL("http://localhost:8085/DatastoreService/getEntry?database=twitapp&group=twits&key=twitName3"); Assert.assertEquals("twit3", read(url.openStream())); } @Test public void testUpdateEntry() throws IOException{ url = new URL("http://localhost:8085/DatastoreService/updateEntry?database=twitapp&group=twits&key=twitName3&value=twit4"); connection = url.openConnection(); url = new URL("http://localhost:8085/DatastoreService/getEntry?database=twitapp&group=twits&key=twitName3"); Assert.assertEquals("twit4", read(url.openStream())); } @Test(expected = EntryNotFoundException.class) public void testDeleteEntry() throws IOException{ url = new URL("http://localhost:8085/DatastoreService/deleteEntry?database=twitapp&group=twits&key=twitName3"); connection = url.openConnection(); url = new URL("http://localhost:8085/DatastoreService/getEntry?database=twitapp&group=twits&key=twitName3"); Assert.assertNotSame("twit4", read(url.openStream())); } @Test public void testDeleteGroup() throws IOException { url = new URL("http://localhost:8085/DatastoreService/deleteGroup?database=twitapp&group=twits"); connection = url.openConnection(); } @Test public void testDeleteDatabase() throws IOException{ url = new URL("http://localhost:8085/DatastoreService/deleteDatabase?database=twitapp"); connection = url.openConnection(); } private static String read(InputStream is) throws IOException { BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(is)); StringBuffer sb = new StringBuffer(); String str; while ((str = reader.readLine()) != null) { sb.append(str); } return sb.toString(); } finally { if (reader != null) { reader.close(); } } } }