Java tutorial
/** * 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.fr2935390; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Iterator; import java.util.Vector; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.microemu.MIDletBridge; import org.microemu.MicroEmulator; import net.sourceforge.floggy.persistence.FloggyBaseTest; import net.sourceforge.floggy.persistence.FloggyException; import net.sourceforge.floggy.persistence.IndexFilter; import net.sourceforge.floggy.persistence.ObjectSet; import net.sourceforge.floggy.persistence.RMSMemoryMicroEmulator; import net.sourceforge.floggy.persistence.beans.animals.Bird; import net.sourceforge.floggy.persistence.impl.IndexManager; import net.sourceforge.floggy.persistence.impl.PersistableMetadataManager; import net.sourceforge.floggy.persistence.impl.RecordStoreManager; /** * DOCUMENT ME! * * @author <a href="mailto:thiago.moreira@floggy.org">Thiago Moreira</a> * @version $Revision$ */ public class FR2935390Test extends FloggyBaseTest { /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testDoesNotExistIndexName() throws Exception { try { IndexFilter indexFilter = new IndexFilter("color", "green"); manager.find(Bird.class, indexFilter, false); fail("It must throw a FloggyException"); } catch (Exception ex) { assertEquals(FloggyException.class, ex.getClass()); } finally { } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testDoesNotFind() throws Exception { Vector birds = buildOrderedPersons(100); final String colorExpected = "noColor"; try { for (Iterator iterator = birds.iterator(); iterator.hasNext();) { Bird bird = (Bird) iterator.next(); manager.save(bird); } IndexFilter indexFilter = new IndexFilter("byColor", colorExpected); ObjectSet os = manager.find(Bird.class, indexFilter, false); assertEquals(0, os.size()); } catch (Exception e) { fail(e.getMessage()); } finally { IndexManager.shutdown(); for (Iterator iterator = birds.iterator(); iterator.hasNext();) { Bird bird = (Bird) iterator.next(); manager.delete(bird); } } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testFindOne() throws Exception { Vector birds = buildOrderedPersons(100); final String colorExpected = "color98"; try { for (Iterator iterator = birds.iterator(); iterator.hasNext();) { Bird bird = (Bird) iterator.next(); manager.save(bird); } IndexFilter indexFilter = new IndexFilter("byColor", colorExpected); ObjectSet os = manager.find(Bird.class, indexFilter, false); assertEquals(1, os.size()); assertEquals(colorExpected, ((Bird) os.get(0)).getColor()); } catch (Exception e) { fail(e.getMessage()); } finally { for (Iterator iterator = birds.iterator(); iterator.hasNext();) { Bird bird = (Bird) iterator.next(); manager.delete(bird); } } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testFindThree() throws Exception { Vector birds = buildOrderedPersons(100); final String colorExpected = "color98"; try { for (Iterator iterator = birds.iterator(); iterator.hasNext();) { Bird bird = (Bird) iterator.next(); manager.save(bird); } Bird bird1 = new Bird(); bird1.setColor(colorExpected); manager.save(bird1); Bird bird2 = new Bird(); bird2.setColor(colorExpected); manager.save(bird2); IndexFilter indexFilter = new IndexFilter("byColor", colorExpected); ObjectSet os = manager.find(Bird.class, indexFilter, false); assertEquals(3, os.size()); assertEquals(colorExpected, ((Bird) os.get(0)).getColor()); assertEquals(colorExpected, ((Bird) os.get(1)).getColor()); manager.delete(bird1); manager.delete(bird2); } catch (Exception e) { fail(e.getMessage()); } finally { for (Iterator iterator = birds.iterator(); iterator.hasNext();) { Bird bird = (Bird) iterator.next(); manager.delete(bird); } } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testFindTwo() throws Exception { Vector birds = buildOrderedPersons(100); final String colorExpected = "color98"; try { for (Iterator iterator = birds.iterator(); iterator.hasNext();) { Bird bird = (Bird) iterator.next(); manager.save(bird); } Bird bird = new Bird(); bird.setColor(colorExpected); manager.save(bird); IndexFilter indexFilter = new IndexFilter("byColor", colorExpected); ObjectSet os = manager.find(Bird.class, indexFilter, false); assertEquals(2, os.size()); assertEquals(colorExpected, ((Bird) os.get(0)).getColor()); assertEquals(colorExpected, ((Bird) os.get(1)).getColor()); manager.delete(bird); } catch (Exception e) { fail(e.getMessage()); } finally { for (Iterator iterator = birds.iterator(); iterator.hasNext();) { Bird bird = (Bird) iterator.next(); manager.delete(bird); } } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testFindWithoutAddingPersistables() throws Exception { String name = "Parsippany"; MicroEmulator oldEmulator = MIDletBridge.getMicroEmulator(); try { FileUtils.forceMkdir(new File("target/fr2935390/rms/1.4.0")); IOUtils.copy(new FileInputStream("src/test/rms/1.4.0/FR2935390.rms"), new FileOutputStream("target/fr2935390/rms/1.4.0/FR2935390.rms")); IOUtils.copy(new FileInputStream("src/test/rms/1.4.0/Index1452747138byName.rms"), new FileOutputStream("target/fr2935390/rms/1.4.0/Index1452747138byName.rms")); MIDletBridge.setMicroEmulator(new RMSMemoryMicroEmulator("target/fr2935390/rms/1.4.0")); RecordStoreManager.reset(); IndexManager.reset(); PersistableMetadataManager.init(); IndexManager.init(); IndexFilter filter = new IndexFilter("byName", name); ObjectSet os = manager.find(FR2935390.class, filter, false); assertEquals(2, os.size()); } finally { MIDletBridge.setMicroEmulator(oldEmulator); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testIndexManagerShutdownMethod() throws Exception { MicroEmulator oldEmulator = MIDletBridge.getMicroEmulator(); String name = "New York"; FR2935390 fr2935390 = new FR2935390(); fr2935390.setName(name); try { FileUtils.forceMkdir(new File("target/fr2935390/rms/1.4.0")); MIDletBridge.setMicroEmulator(new RMSMemoryMicroEmulator("target/fr2935390/rms/1.4.0")); IndexManager.reset(); manager.save(fr2935390); IndexManager.shutdown(); IndexFilter filter = new IndexFilter("byName", name); ObjectSet os = manager.find(FR2935390.class, filter, false); assertEquals(1, os.size()); manager.delete(fr2935390); os = manager.find(FR2935390.class, filter, false); assertEquals(0, os.size()); IndexManager.shutdown(); IndexManager.reset(); IndexManager.init(); os = manager.find(FR2935390.class, filter, false); assertEquals(0, os.size()); } finally { manager.delete(fr2935390); MIDletBridge.setMicroEmulator(oldEmulator); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testSaveNotNullThenNullAndFind() throws Exception { String name = "New York"; FR2935390 fr2935390 = new FR2935390(); fr2935390.setName(name); try { manager.save(fr2935390); IndexFilter filter = new IndexFilter("byName", name); ObjectSet os = manager.find(FR2935390.class, filter, false); assertEquals(1, os.size()); fr2935390.setName(null); manager.save(fr2935390); os = manager.find(FR2935390.class, filter, false); assertEquals(0, os.size()); } finally { manager.delete(fr2935390); } } /** * DOCUMENT ME! * * @param quantity DOCUMENT ME! * * @return DOCUMENT ME! */ protected Vector buildOrderedPersons(int quantity) { Vector vector = new Vector(quantity); for (int i = 0; i < quantity; i++) { Bird bird = new Bird(); String color = "color" + i; bird.setColor(color); vector.addElement(bird); } return vector; } }