/**********************************************************************************
* $URL: https://source.sakaiproject.org/svn/calendar/trunk/calendar-impl/impl/src/test/org/sakaiproject/calendar/impl/DbCalendarServiceSerializationTest.java $
* $Id: DbCalendarServiceSerializationTest.java 105079 2012-02-24 23:08:11Z ottenhoff@longsight.com $
***********************************************************************************
*
* Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008 The Sakai Foundation
*
* Licensed under the Educational Community 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.opensource.org/licenses/ECL-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.sakaiproject.calendar.impl;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;
import junit.framework.TestCase;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.sakaiproject.calendar.impl.DbCalendarService.DbStorage;
import org.sakaiproject.db.api.SqlReader;
import org.sakaiproject.db.api.SqlService;
import org.sakaiproject.entity.api.Entity;
import org.sakaiproject.entity.api.EntityManager;
import org.sakaiproject.entity.api.EntityProducer;
import org.sakaiproject.entity.api.Reference;
import org.sakaiproject.exception.ServerOverloadException;
import org.sakaiproject.time.api.Time;
import org.sakaiproject.time.api.TimeBreakdown;
import org.sakaiproject.time.api.TimeRange;
import org.sakaiproject.time.api.TimeService;
/**
* @author ieb
*
*/
public class DbCalendarServiceSerializationTest extends TestCase
{
private static final Log log = LogFactory.getLog(DbCalendarServiceSerializationTest.class);
private SqlService sqlService;
private Entity container;
private EntityManager entityManager;
private Map<String, Object> services;
private TimeService timeService;
public DbCalendarServiceSerializationTest(String name)
{
super(name);
}
/**
* @throws java.lang.Exception
*/
protected void setUp() throws Exception
{
entityManager = new EntityManager() {
public boolean checkReference(String ref)
{
// TODO Auto-generated method stub
return false;
}
public List getEntityProducers()
{
// TODO Auto-generated method stub
return new ArrayList();
}
public Reference newReference(String refString)
{
// TODO Auto-generated method stub
return null;
}
public Reference newReference(Reference copyMe)
{
// TODO Auto-generated method stub
return null;
}
public List newReferenceList()
{
// TODO Auto-generated method stub
return new ArrayList();
}
public List newReferenceList(List copyMe)
{
// TODO Auto-generated method stub
return new ArrayList(copyMe);
}
public void registerEntityProducer(EntityProducer manager, String referenceRoot)
{
// TODO Auto-generated method stub
}
};
sqlService = new SqlService(){
public Connection borrowConnection() throws SQLException
{
// TODO Auto-generated method stub
return null;
}
public void dbCancel(Connection conn)
{
// TODO Auto-generated method stub
}
public Long dbInsert(Connection callerConnection, String sql, Object[] fields, String autoColumn)
{
// TODO Auto-generated method stub
return null;
}
public Long dbInsert(Connection callerConnection, String sql, Object[] fields, String autoColumn, InputStream last, int lastLength)
{
// TODO Auto-generated method stub
return null;
}
public List dbRead(String sql)
{
// TODO Auto-generated method stub
return null;
}
public List dbRead(String sql, Object[] fields, SqlReader reader)
{
// TODO Auto-generated method stub
return null;
}
public List dbRead(Connection conn, String sql, Object[] fields, SqlReader reader)
{
// TODO Auto-generated method stub
return null;
}
public void dbReadBinary(String sql, Object[] fields, byte[] value)
{
// TODO Auto-generated method stub
}
public void dbReadBinary(Connection conn, String sql, Object[] fields, byte[] value)
{
// TODO Auto-generated method stub
}
public InputStream dbReadBinary(String sql, Object[] fields, boolean big) throws ServerOverloadException
{
// TODO Auto-generated method stub
return null;
}
public void dbReadBlobAndUpdate(String sql, byte[] content)
{
// TODO Auto-generated method stub
}
public Connection dbReadLock(String sql, StringBuilder field)
{
// TODO Auto-generated method stub
return null;
}
public void dbUpdateCommit(String sql, Object[] fields, String var, Connection conn)
{
// TODO Auto-generated method stub
}
public boolean dbWrite(String sql)
{
// TODO Auto-generated method stub
return false;
}
public boolean dbWrite(String sql, String var)
{
// TODO Auto-generated method stub
return false;
}
public boolean dbWrite(String sql, Object[] fields)
{
// TODO Auto-generated method stub
return false;
}
public boolean dbWrite(Connection connection, String sql, Object[] fields)
{
// TODO Auto-generated method stub
return false;
}
public boolean dbWrite(String sql, Object[] fields, String lastField)
{
// TODO Auto-generated method stub
return false;
}
public boolean dbWriteBinary(String sql, Object[] fields, byte[] var, int offset, int len)
{
// TODO Auto-generated method stub
return false;
}
public boolean dbWriteFailQuiet(Connection connection, String sql, Object[] fields)
{
// TODO Auto-generated method stub
return false;
}
public void ddl(ClassLoader loader, String resource)
{
// TODO Auto-generated method stub
}
public String getBooleanConstant(boolean value)
{
// TODO Auto-generated method stub
return null;
}
public GregorianCalendar getCal()
{
// TODO Auto-generated method stub
return null;
}
public Long getNextSequence(String tableName, Connection conn)
{
// TODO Auto-generated method stub
return null;
}
public String getVendor()
{
return "mysql";
}
public void returnConnection(Connection conn)
{
// TODO Auto-generated method stub
}
public boolean transact(Runnable callback, String tag)
{
// TODO Auto-generated method stub
return false;
}
public Connection dbReadLock(String sql, SqlReader reader)
{
// TODO Auto-generated method stub
return null;
}
public int dbWriteCount(String sql, Object[] fields, String lastField, Connection callerConnection, boolean failQuiet)
{
// TODO Auto-generated method stub
return -1;
}
};
timeService = new TimeService() {
public boolean clearLocalTimeZone(String userId)
{
// TODO Auto-generated method stub
return false;
}
public boolean different(Time a, Time b)
{
// TODO Auto-generated method stub
return false;
}
public GregorianCalendar getCalendar(TimeZone zone, int year, int month, int day, int hour, int min, int sec, int ms)
{
// TODO Auto-generated method stub
return null;
}
public TimeZone getLocalTimeZone()
{
// TODO Auto-generated method stub
return null;
}
public Time newTime()
{
// TODO Auto-generated method stub
return null;
}
public Time newTime(long value)
{
// TODO Auto-generated method stub
return null;
}
public Time newTime(GregorianCalendar cal)
{
// TODO Auto-generated method stub
return null;
}
public TimeBreakdown newTimeBreakdown(int year, int month, int day, int hour, int minute, int second, int millisecond)
{
// TODO Auto-generated method stub
return null;
}
public Time newTimeGmt(String value)
{
// TODO Auto-generated method stub
return null;
}
public Time newTimeGmt(int year, int month, int day, int hour, int minute, int second, int millisecond)
{
// TODO Auto-generated method stub
return null;
}
public Time newTimeGmt(TimeBreakdown breakdown)
{
// TODO Auto-generated method stub
return null;
}
public Time newTimeLocal(int year, int month, int day, int hour, int minute, int second, int millisecond)
{
// TODO Auto-generated method stub
return null;
}
public Time newTimeLocal(TimeBreakdown breakdown)
{
// TODO Auto-generated method stub
return null;
}
public TimeRange newTimeRange(Time start, Time end, boolean startIncluded, boolean endIncluded)
{
// TODO Auto-generated method stub
return null;
}
public TimeRange newTimeRange(String value)
{
// TODO Auto-generated method stub
return null;
}
public TimeRange newTimeRange(Time startAndEnd)
{
// TODO Auto-generated method stub
return null;
}
public TimeRange newTimeRange(long start, long duration)
{
// TODO Auto-generated method stub
return null;
}
public TimeRange newTimeRange(Time start, Time end)
{
// TODO Auto-generated method stub
return null;
}
public int dbWriteCount(String sql, Object[] fields, String lastField, Connection callerConnection, boolean failQuiet)
{
// TODO Auto-generated method stub
return -1;
}
};
services = new HashMap<String,Object>();
services.put("sqlservice", sqlService);
services.put("timeservice",timeService);
services.put("entitymanager",entityManager);
}
/**
* @throws java.lang.Exception
*/
protected void tearDown() throws Exception
{
}
public void testConstruct() {
DbCalendarService dbCal = new DbCalendarService();
}
public void testSerialize() throws IOException {
DbCalendarService dbCal = new DbCalendarService();
dbCal.setSqlService(sqlService);
dbCal.setEntityManager(entityManager);
dbCal.setServices(services);
DbStorage s = (DbStorage) dbCal.newStorage();
for(int i = 0; i < 100; i++ ) {
InputStream ins = this.getClass().getResourceAsStream("testSerialize_"+i);
if ( ins == null ) {
break;
}
BufferedReader instream = new BufferedReader(new InputStreamReader(ins));
StringBuilder sb = new StringBuilder();
String line = instream.readLine();
while ( line != null ) {
sb.append(line).append("\n");
line = instream.readLine();
}
instream.close();
log.info("Xml is ["+sb.toString()+"]");
Entity e = s.readContainerTest(sb.toString());
assertNotNull(e);
if ( container != null ) {
container = e;
}
}
for(int i = 0; i < 100; i++ ) {
InputStream ins = this.getClass().getResourceAsStream("testSerializeEvent_"+i);
if ( ins == null ) {
break;
}
BufferedReader instream = new BufferedReader(new InputStreamReader(ins));
StringBuilder sb = new StringBuilder();
String line = instream.readLine();
while ( line != null ) {
sb.append(line).append("\n");
line = instream.readLine();
}
instream.close();
log.info("Xml is ["+sb.toString()+"]");
Entity e = s.readResourceTest(container, sb.toString());
assertNotNull(e);
}
}
}