package com.stacksync.syncservice.test.handler;
import java.sql.Connection;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import com.stacksync.syncservice.db.ConnectionPool;
import com.stacksync.syncservice.db.ConnectionPoolFactory;
import com.stacksync.syncservice.db.DAOFactory;
import com.stacksync.syncservice.db.UserDAO;
import com.stacksync.syncservice.exceptions.dao.DAOException;
import com.stacksync.syncservice.rpc.messages.APIGetMetadata;
import com.stacksync.syncservice.rpc.parser.IParser;
import com.stacksync.syncservice.rpc.parser.JSONParser;
import com.stacksync.syncservice.util.Config;
public class GetMetadataTest {
private static IParser reader;
private static UserDAO userDao;
@BeforeClass
public static void initializeData() {
try {
Config.loadProperties();
reader = new JSONParser();
String datasource = Config.getDatasource();
ConnectionPool pool = ConnectionPoolFactory.getConnectionPool(datasource);
DAOFactory factory = new DAOFactory(datasource);
Connection connection = pool.getConnection();
userDao = factory.getUserDao(connection);
/*
* UNCOMMENT TO INITIALIZE DATABASE (SLOW)
*
* DBBenchmark benchmark; int levels = 2; try { benchmark = new
* DBBenchmark(levels); benchmark.fillDB(); } catch (Exception e) {
* e.printStackTrace(); }
*/
} catch (Exception e) {
e.printStackTrace();
}
}
@AfterClass
public static void cleanData() throws DAOException {
//userDao.delete("bb");
}
@Test
public void getMetadataByCorrectFileId() throws DAOException {
/*
* String query = "{ " + "'user': 'bb', " + "'type': 'get_metadata'," +
* "'fileId': '538757639', " + "'list': 'true', " +
* "'include_deleted': 'false', " + "'version': '1' " + "}";
*
* byte[] queryByte = query.getBytes();
*
* GetMetadataMessage msg = (GetMetadataMessage)
* reader.readMessage(queryByte); GetMetadataResponseMessage response =
* handler.doGetMetadata(msg);
*
* assertTrue(response.getSucced());
*
* printResponse(response);
*/
}
@Test
public void getMetadataByCorrectFileIdWithChunks() throws DAOException {
/*
* String query = "{ " + "'user': 'bb', " + "'type': 'get_metadata'," +
* "'fileId': '538757639', " + "'list': 'true', " +
* "'include_deleted': 'false', " + "'include_chunks': 'true' " + "}";
*
* byte[] queryByte = query.getBytes();
*
* GetMetadataMessage msg = (GetMetadataMessage)
* reader.readMessage(queryByte); GetMetadataResponseMessage response =
* handler.doGetMetadata(msg);
*
* assertTrue(response.getSucced());
*
* printResponse(response);
*/
}
@Test
public void getMetadataByIncorrectFileId() throws DAOException {
/*
* String query = "{ " + "'user': 'bb', " + "'type': 'get_metadata'," +
* "'fileId': '111111', " + "'list': 'true', " +
* "'include_deleted': 'false', " + "'version': '1' " + "}";
*
* byte[] queryByte = query.getBytes();
*
* GetMetadataMessage msg = (GetMetadataMessage)
* reader.readMessage(queryByte); GetMetadataResponseMessage response =
* handler.doGetMetadata(msg);
*
* assertTrue(!response.getSucced() && response.getErrorCode() == 404);
*
* printResponse(response);
*/
}
@Test
public void getMetadataByCorrectFileIdIncorrectVersion() throws DAOException {
/*
* String query = "{ " + "'user': 'bb', " + "'type': 'get_metadata'," +
* "'fileId': '538757639', " + "'list': 'true', " +
* "'include_deleted': 'false', " + "'version': '1111' " + "}";
*
* byte[] queryByte = query.getBytes();
*
* GetMetadataMessage msg = (GetMetadataMessage)
* reader.readMessage(queryByte); GetMetadataResponseMessage response =
* handler.doGetMetadata(msg);
*
* assertTrue(!response.getSucced() && response.getErrorCode() == 404);
*
* printResponse(response);
*/
}
@Test
public void getMetadataByFileIdUserNotAuthorized() throws DAOException {
/*
* String query = "{ " + "'user': 'asd', " + "'type': 'get_metadata'," +
* "'fileId': '538757639', " + "'list': 'true', " +
* "'include_deleted': 'false', " + "'version': '1' " + "}";
*
* byte[] queryByte = query.getBytes();
*
* GetMetadataMessage msg = (GetMetadataMessage)
* reader.readMessage(queryByte); GetMetadataResponseMessage response =
* handler.doGetMetadata(msg);
*
* assertTrue(!response.getSucced() && response.getErrorCode() ==
* DAOError.USER_NOT_AUTHORIZED.getCode());
*
* printResponse(response);
*/
}
@Test
public void getMetadataByServerUserIdCorrect() throws DAOException {
/*
* String query = "{ " + "'user': 'bb', " + "'type': 'get_metadata'," +
* "'include_deleted': 'false' " + "}";
*
* byte[] queryByte = query.getBytes();
*
* GetMetadataMessage msg = (GetMetadataMessage)
* reader.readMessage(queryByte); GetMetadataResponseMessage response =
* handler.doGetMetadata(msg);
*
* assertTrue(response.getSucced());
*
* printResponse(response);
*/
}
private void printResponse(APIGetMetadata r) {
String response = reader.createResponse(r);
System.out.println(response);
}
}