/**
* Copyright (c) 2006-2011 Floggy Open Source Group. All rights reserved.
*
* Licensed 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 net.sourceforge.floggy.persistence.fr2857247;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreNotOpenException;
import net.sourceforge.floggy.persistence.FloggyBaseTest;
import net.sourceforge.floggy.persistence.PersistableManager;
import net.sourceforge.floggy.persistence.beans.Person;
import net.sourceforge.floggy.persistence.impl.PersistableMetadata;
import net.sourceforge.floggy.persistence.impl.PersistableMetadataManager;
import net.sourceforge.floggy.persistence.impl.RecordStoreManager;
import net.sourceforge.floggy.persistence.impl.__Persistable;
/**
* DOCUMENT ME!
*
* @author <a href="mailto:thiago.moreira@floggy.org">Thiago Moreira</a>
* @version $Revision$
*/
public class FR2857247Test extends FloggyBaseTest {
/**
* DOCUMENT ME!
*/
protected Object batchMode;
/**
* DOCUMENT ME!
*
* @throws Exception DOCUMENT ME!
*/
public void testBatchModeFalse() throws Exception {
manager.setProperty(PersistableManager.BATCH_MODE, Boolean.FALSE);
__Persistable object = (__Persistable) new Person();
PersistableMetadata metadata =
PersistableMetadataManager.getClassBasedMetadata(object.getClass()
.getName());
RecordStore rs =
RecordStoreManager.getRecordStore(object.getRecordStoreName(), metadata);
RecordStoreManager.closeRecordStore(rs);
try {
rs.getNumRecords();
fail("Must throw a RecordStoreNotOpenException");
} catch (Exception ex) {
assertEquals(RecordStoreNotOpenException.class, ex.getClass());
}
}
/**
* DOCUMENT ME!
*
* @throws Exception DOCUMENT ME!
*/
public void testBatchModeTrue() throws Exception {
manager.setProperty(PersistableManager.BATCH_MODE, Boolean.TRUE);
__Persistable object = (__Persistable) new Person();
PersistableMetadata metadata =
PersistableMetadataManager.getClassBasedMetadata(object.getClass()
.getName());
RecordStore rs =
RecordStoreManager.getRecordStore(object.getRecordStoreName(), metadata);
RecordStoreManager.closeRecordStore(rs);
try {
assertEquals(0, rs.getNumRecords());
rs.closeRecordStore();
} catch (Exception ex) {
fail(ex.getMessage());
}
}
/**
* DOCUMENT ME!
*
* @throws Exception DOCUMENT ME!
*/
public void testBatchModeTrueShutdown() throws Exception {
manager.setProperty(PersistableManager.BATCH_MODE, Boolean.TRUE);
__Persistable object = (__Persistable) new Person();
PersistableMetadata metadata =
PersistableMetadataManager.getClassBasedMetadata(object.getClass()
.getName());
RecordStore rs =
RecordStoreManager.getRecordStore(object.getRecordStoreName(), metadata);
RecordStoreManager.closeRecordStore(rs);
manager.shutdown();
try {
assertEquals(0, rs.getNumRecords());
fail("Must throw a RecordStoreNotOpenException");
} catch (Exception ex) {
assertEquals(RecordStoreNotOpenException.class, ex.getClass());
}
}
/**
* DOCUMENT ME!
*
* @throws Exception DOCUMENT ME!
*/
protected void setUp() throws Exception {
batchMode = manager.getProperty(PersistableManager.BATCH_MODE);
}
/**
* DOCUMENT ME!
*
* @throws Exception DOCUMENT ME!
*/
protected void tearDown() throws Exception {
manager.setProperty(PersistableManager.BATCH_MODE, batchMode);
}
}