/**
* 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.fr3080657;
import java.util.Vector;
import javax.microedition.rms.RecordStore;
import net.sourceforge.floggy.persistence.FloggyBaseTest;
import net.sourceforge.floggy.persistence.PersistableManager;
import net.sourceforge.floggy.persistence.impl.IndexMetadata;
import net.sourceforge.floggy.persistence.impl.PersistableMetadata;
import net.sourceforge.floggy.persistence.impl.PersistableMetadataManager;
import net.sourceforge.floggy.persistence.impl.__Persistable;
/**
* DOCUMENT ME!
*
* @author <a href="mailto:thiago.moreira@floggy.org">Thiago Moreira</a>
* @version $Revision$
*/
public class FR3080657Test extends FloggyBaseTest {
/**
* DOCUMENT ME!
*
* @throws Exception DOCUMENT ME!
*/
public void testStoreIndexAfterSaveOperationFalse() throws Exception {
manager.setProperty(PersistableManager.STORE_INDEX_AFTER_SAVE_OPERATION,
Boolean.FALSE);
FR3080657 fr3080657 = new FR3080657();
fr3080657.setName("São Paulo - 04/10/2010");
__Persistable object = (__Persistable) fr3080657;
PersistableMetadata metadata =
PersistableMetadataManager.getClassBasedMetadata(object.getClass()
.getName());
Vector indexMetadatas = metadata.getIndexMetadatas();
IndexMetadata indexMetadata = (IndexMetadata) indexMetadatas.elementAt(0);
RecordStore recordStore =
RecordStore.openRecordStore(indexMetadata.getRecordStoreName(), true);
assertEquals(0, recordStore.getNumRecords());
recordStore.closeRecordStore();
manager.save(object);
recordStore = RecordStore.openRecordStore(indexMetadata.getRecordStoreName(),
false);
assertEquals(0, recordStore.getNumRecords());
recordStore.closeRecordStore();
}
/**
* DOCUMENT ME!
*
* @throws Exception DOCUMENT ME!
*/
public void testStoreIndexAfterSaveOperationString()
throws Exception {
try {
manager.setProperty(PersistableManager.STORE_INDEX_AFTER_SAVE_OPERATION,
"true");
fail("Must throw a IllegalArgumentException");
} catch (Exception ex) {
assertEquals(IllegalArgumentException.class, ex.getClass());
}
}
/**
* DOCUMENT ME!
*
* @throws Exception DOCUMENT ME!
*/
public void testStoreIndexAfterSaveOperationTrue() throws Exception {
manager.setProperty(PersistableManager.STORE_INDEX_AFTER_SAVE_OPERATION,
Boolean.TRUE);
FR3080657 fr3080657 = new FR3080657();
fr3080657.setName("São Paulo - 04/10/2010");
__Persistable object = (__Persistable) fr3080657;
PersistableMetadata metadata =
PersistableMetadataManager.getClassBasedMetadata(object.getClass()
.getName());
Vector indexMetadatas = metadata.getIndexMetadatas();
IndexMetadata indexMetadata = (IndexMetadata) indexMetadatas.elementAt(0);
try {
RecordStore recordStore =
RecordStore.openRecordStore(indexMetadata.getRecordStoreName(), true);
assertEquals(0, recordStore.getNumRecords());
recordStore.closeRecordStore();
manager.save(object);
recordStore = RecordStore.openRecordStore(indexMetadata.getRecordStoreName(),
false);
assertEquals(1, recordStore.getNumRecords());
recordStore.closeRecordStore();
} finally {
manager.setProperty(PersistableManager.STORE_INDEX_AFTER_SAVE_OPERATION,
Boolean.FALSE);
}
}
}