From: Andy J. <and...@us...> - 2005-02-20 20:36:38
|
Update of /cvsroot/jpox/JPOX/Core/src/test/org/jpox/persistence In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30694/src/test/org/jpox/persistence Modified Files: EmbeddedTest.java Log Message: Split first test into 2. Now have one that tests an embedded object with values, and one that tests an embedded object with the null-value functionality Index: EmbeddedTest.java =================================================================== RCS file: /cvsroot/jpox/JPOX/Core/src/test/org/jpox/persistence/EmbeddedTest.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** EmbeddedTest.java 20 Feb 2005 18:22:21 -0000 1.10 --- EmbeddedTest.java 20 Feb 2005 20:36:26 -0000 1.11 *************** *** 57,83 **** // ------------------ Check the persistence of an object with embedded objects ----------------- ! Object comp1_id = null; ! Object comp2_id = null; try { tx.begin(); ! Computer comp1 = new Computer("Linux", new ComputerCard("ATI", ComputerCard.AGP_CARD), new ComputerCard("Creative Labs", ComputerCard.PCI_CARD), new Memory(Memory.DRAM, 256, 3.3)); ! pm.makePersistent(comp1); ! ! Computer comp2 = new Computer("MacOS", ! new ComputerCard("NVidia", ComputerCard.AGP_CARD), ! null, ! null); ! ! pm.makePersistent(comp2); tx.commit(); ! comp1_id = pm.getObjectId(comp1); ! comp2_id = pm.getObjectId(comp2); } catch (Exception e) --- 57,74 ---- // ------------------ Check the persistence of an object with embedded objects ----------------- ! Object comp_id = null; try { tx.begin(); ! Computer comp = new Computer("Linux", new ComputerCard("ATI", ComputerCard.AGP_CARD), new ComputerCard("Creative Labs", ComputerCard.PCI_CARD), new Memory(Memory.DRAM, 256, 3.3)); ! pm.makePersistent(comp); tx.commit(); ! comp_id = pm.getObjectId(comp); } catch (Exception e) *************** *** 104,145 **** // Retrieve the object with both embedded subobjects ! Computer comp1 = (Computer)pm.getObjectById(comp1_id); ! assertTrue("Unable to retrieve object with embedded object(s)", comp1 != null); assertTrue("Retrieved object with embedded object(s) has incorrect own field", ! comp1.getOperatingSystem().equals("Linux")); assertTrue("Retrieved object with embedded object(s) has no graphics card", ! comp1.getGraphicsCard() != null); assertTrue("Retrieved object with embedded object(s) has incorrect embedded object : graphics card manufacturer is wrong", ! comp1.getGraphicsCard().getManufacturer().equals("ATI")); assertTrue("Retrieved object with embedded object(s) has incorrect embedded object : graphics card type is wrong", ! comp1.getGraphicsCard().getType() == ComputerCard.AGP_CARD); assertTrue("Embedded graphics card doesn't have its owner field set", ! comp1.getGraphicsCard().getComputer() != null); assertTrue("Embedded graphics card has its owner field set incorrectly", ! comp1.getGraphicsCard().getComputer() == comp1); assertTrue("Retrieved object with embedded object(s) has no sound card", ! comp1.getSoundCard() != null); assertTrue("Retrieved object with embedded object(s) has incorrect embedded object : sound card manufacturer is wrong", ! comp1.getSoundCard().getManufacturer().equals("Creative Labs")); assertTrue("Retrieved object with embedded object(s) has incorrect embedded object : sound card type is wrong", ! comp1.getSoundCard().getType() == ComputerCard.PCI_CARD); assertTrue("Embedded sound card doesn't have its owner field set", ! comp1.getSoundCard().getComputer() != null); assertTrue("Embedded sound card has its owner field set incorrectly", ! comp1.getSoundCard().getComputer() == comp1); - // Retrieve the object with 1 embedded subobject, and one unset. - Computer comp2 = (Computer)pm.getObjectById(comp2_id); - assertTrue("Unable to retrieve object with embedded object", comp2 != null); - assertTrue("Retrieved object with embedded object(s) has incorrect own field", - comp2.getOperatingSystem().equals("MacOS")); - assertTrue("Retrieved object with embedded object(s) has no graphics card", - comp2.getGraphicsCard() != null); - assertTrue("Retrieved object with embedded object(s) has incorrect embedded object : graphics card manufacturer is wrong", - comp2.getGraphicsCard().getManufacturer().equals("NVidia")); - assertTrue("Retrieved object with embedded object(s) has incorrect embedded object : graphics card type is wrong", - comp2.getGraphicsCard().getType() == ComputerCard.AGP_CARD); - assertTrue("Retrieved object with embedded object(s) has sound card, but shouldn't have", - comp2.getSoundCard() == null); tx.commit(); } --- 95,123 ---- // Retrieve the object with both embedded subobjects ! Computer comp = (Computer)pm.getObjectById(comp_id); ! assertTrue("Unable to retrieve object with embedded object(s)", comp != null); assertTrue("Retrieved object with embedded object(s) has incorrect own field", ! comp.getOperatingSystem().equals("Linux")); assertTrue("Retrieved object with embedded object(s) has no graphics card", ! comp.getGraphicsCard() != null); assertTrue("Retrieved object with embedded object(s) has incorrect embedded object : graphics card manufacturer is wrong", ! comp.getGraphicsCard().getManufacturer().equals("ATI")); assertTrue("Retrieved object with embedded object(s) has incorrect embedded object : graphics card type is wrong", ! comp.getGraphicsCard().getType() == ComputerCard.AGP_CARD); assertTrue("Embedded graphics card doesn't have its owner field set", ! comp.getGraphicsCard().getComputer() != null); assertTrue("Embedded graphics card has its owner field set incorrectly", ! comp.getGraphicsCard().getComputer() == comp); assertTrue("Retrieved object with embedded object(s) has no sound card", ! comp.getSoundCard() != null); assertTrue("Retrieved object with embedded object(s) has incorrect embedded object : sound card manufacturer is wrong", ! comp.getSoundCard().getManufacturer().equals("Creative Labs")); assertTrue("Retrieved object with embedded object(s) has incorrect embedded object : sound card type is wrong", ! comp.getSoundCard().getType() == ComputerCard.PCI_CARD); assertTrue("Embedded sound card doesn't have its owner field set", ! comp.getSoundCard().getComputer() != null); assertTrue("Embedded sound card has its owner field set incorrectly", ! comp.getSoundCard().getComputer() == comp); tx.commit(); } *************** *** 166,172 **** tx.begin(); ! // Retrieve the object with 1 embedded subobject, and one unset, and set its sound card ! Computer comp2 = (Computer)pm.getObjectById(comp2_id); ! comp2.setSoundCard(new ComputerCard("Turtle Beach", ComputerCard.PCI_CARD)); tx.commit(); --- 144,150 ---- tx.begin(); ! // Retrieve the object and change its sound card ! Computer comp = (Computer)pm.getObjectById(comp_id); ! comp.setSoundCard(new ComputerCard("Turtle Beach", ComputerCard.PCI_CARD)); tx.commit(); *************** *** 194,213 **** // Retrieve the object that has just been updated ! Computer comp2 = (Computer)pm.getObjectById(comp2_id); ! assertTrue("Unable to retrieve object with embedded object(s)", comp2 != null); assertTrue("Updated object with embedded object(s) has incorrect own field", ! comp2.getOperatingSystem().equals("MacOS")); assertTrue("Updated object with embedded object(s) has no graphics card", ! comp2.getGraphicsCard() != null); assertTrue("Updated object with embedded object(s) has incorrect embedded object : graphics card manufacturer is wrong", ! comp2.getGraphicsCard().getManufacturer().equals("NVidia")); assertTrue("Updated object with embedded object(s) has incorrect embedded object : graphics card type is wrong", ! comp2.getGraphicsCard().getType() == ComputerCard.AGP_CARD); assertTrue("Updated object with embedded object(s) has no sound card", ! comp2.getSoundCard() != null); assertTrue("Updated object with embedded object(s) has incorrect embedded object : sound card manufacturer is wrong", ! comp2.getSoundCard().getManufacturer().equals("Turtle Beach")); assertTrue("Updated object with embedded object(s) has incorrect embedded object : sound card type is wrong", ! comp2.getSoundCard().getType() == ComputerCard.PCI_CARD); tx.commit(); --- 172,191 ---- // Retrieve the object that has just been updated ! Computer comp = (Computer)pm.getObjectById(comp_id); ! assertTrue("Unable to retrieve object with embedded object(s)", comp != null); assertTrue("Updated object with embedded object(s) has incorrect own field", ! comp.getOperatingSystem().equals("Linux")); assertTrue("Updated object with embedded object(s) has no graphics card", ! comp.getGraphicsCard() != null); assertTrue("Updated object with embedded object(s) has incorrect embedded object : graphics card manufacturer is wrong", ! comp.getGraphicsCard().getManufacturer().equals("ATI")); assertTrue("Updated object with embedded object(s) has incorrect embedded object : graphics card type is wrong", ! comp.getGraphicsCard().getType() == ComputerCard.AGP_CARD); assertTrue("Updated object with embedded object(s) has no sound card", ! comp.getSoundCard() != null); assertTrue("Updated object with embedded object(s) has incorrect embedded object : sound card manufacturer is wrong", ! comp.getSoundCard().getManufacturer().equals("Turtle Beach")); assertTrue("Updated object with embedded object(s) has incorrect embedded object : sound card type is wrong", ! comp.getSoundCard().getType() == ComputerCard.PCI_CARD); tx.commit(); *************** *** 235,241 **** tx.begin(); ! // Retrieve the object with 2 embedded subobject, and update its sound card ! Computer comp1 = (Computer)pm.getObjectById(comp1_id); ! ComputerCard sound_card = comp1.getSoundCard(); sound_card.setType(ComputerCard.ISA_CARD); --- 213,219 ---- tx.begin(); ! // Retrieve the object and update its sound card details ! Computer comp = (Computer)pm.getObjectById(comp_id); ! ComputerCard sound_card = comp.getSoundCard(); sound_card.setType(ComputerCard.ISA_CARD); *************** *** 264,283 **** // Retrieve the object that has just been updated ! Computer comp1 = (Computer)pm.getObjectById(comp1_id); ! assertTrue("Unable to retrieve object with embedded object(s)", comp1 != null); assertTrue("Updated object with embedded object(s) has incorrect own field", ! comp1.getOperatingSystem().equals("Linux")); assertTrue("Updated object with embedded object(s) has no graphics card", ! comp1.getGraphicsCard() != null); assertTrue("Updated object with embedded object(s) has incorrect embedded object : graphics card manufacturer is wrong", ! comp1.getGraphicsCard().getManufacturer().equals("ATI")); assertTrue("Updated object with embedded object(s) has incorrect embedded object : graphics card type is wrong", ! comp1.getGraphicsCard().getType() == ComputerCard.AGP_CARD); assertTrue("Updated object with embedded object(s) has no sound card", ! comp1.getSoundCard() != null); assertTrue("Updated object with embedded object(s) has incorrect embedded object : sound card manufacturer is wrong", ! comp1.getSoundCard().getManufacturer().equals("Creative Labs")); assertTrue("Updated object with embedded object(s) has incorrect embedded object : sound card type is wrong", ! comp1.getSoundCard().getType() == ComputerCard.ISA_CARD); tx.commit(); --- 242,261 ---- // Retrieve the object that has just been updated ! Computer comp = (Computer)pm.getObjectById(comp_id); ! assertTrue("Unable to retrieve object with embedded object(s)", comp != null); assertTrue("Updated object with embedded object(s) has incorrect own field", ! comp.getOperatingSystem().equals("Linux")); assertTrue("Updated object with embedded object(s) has no graphics card", ! comp.getGraphicsCard() != null); assertTrue("Updated object with embedded object(s) has incorrect embedded object : graphics card manufacturer is wrong", ! comp.getGraphicsCard().getManufacturer().equals("ATI")); assertTrue("Updated object with embedded object(s) has incorrect embedded object : graphics card type is wrong", ! comp.getGraphicsCard().getType() == ComputerCard.AGP_CARD); assertTrue("Updated object with embedded object(s) has no sound card", ! comp.getSoundCard() != null); assertTrue("Updated object with embedded object(s) has incorrect embedded object : sound card manufacturer is wrong", ! comp.getSoundCard().getManufacturer().equals("Turtle Beach")); assertTrue("Updated object with embedded object(s) has incorrect embedded object : sound card type is wrong", ! comp.getSoundCard().getType() == ComputerCard.ISA_CARD); tx.commit(); *************** *** 300,303 **** --- 278,429 ---- /** + * Test for an embedded PC object, and use of null-value. + * @throws Exception + */ + public void testEmbeddedPCObjectNullValue() + throws Exception + { + PersistenceManager pm = pmf.getPersistenceManager(); + Transaction tx = pm.currentTransaction(); + + // ------------------ Check the persistence of an object with embedded objects ----------------- + Object comp_id = null; + try + { + tx.begin(); + + Computer comp = new Computer("MacOS", + new ComputerCard("NVidia", ComputerCard.AGP_CARD), + null, + null); + + pm.makePersistent(comp); + + tx.commit(); + comp_id = pm.getObjectId(comp); + } + catch (Exception e) + { + e.printStackTrace(); + LOG.error(e); + fail("Exception thrown while creating objects with embedded field(s) : " + e.getMessage()); + } + finally + { + if (tx.isActive()) + { + tx.rollback(); + } + pm.close(); + } + + // -------------- Check the retrieval of objects with embedded subobjects ----------------- + pm = pmf.getPersistenceManager(); + tx = pm.currentTransaction(); + try + { + tx.begin(); + + // Retrieve the object with both embedded subobjects + Computer comp = (Computer)pm.getObjectById(comp_id); + assertTrue("Unable to retrieve object with embedded object", comp != null); + assertTrue("Retrieved object with embedded object(s) has incorrect own field", + comp.getOperatingSystem().equals("MacOS")); + assertTrue("Retrieved object with embedded object(s) has no graphics card", + comp.getGraphicsCard() != null); + assertTrue("Retrieved object with embedded object(s) has incorrect embedded object : graphics card manufacturer is wrong", + comp.getGraphicsCard().getManufacturer().equals("NVidia")); + assertTrue("Retrieved object with embedded object(s) has incorrect embedded object : graphics card type is wrong", + comp.getGraphicsCard().getType() == ComputerCard.AGP_CARD); + assertTrue("Retrieved object with embedded object(s) has sound card, but shouldn't have", + comp.getSoundCard() == null); + tx.commit(); + } + catch (Exception e) + { + e.printStackTrace(); + LOG.error(e); + fail("Exception thrown while fetching objects with embedded field(s) : " + e.getMessage()); + } + finally + { + if (tx.isActive()) + { + tx.rollback(); + } + pm.close(); + } + + // ------------------- Check update of an embedded object ------------------------ + pm = pmf.getPersistenceManager(); + tx = pm.currentTransaction(); + try + { + tx.begin(); + + // Retrieve the object with 1 embedded subobject, and one unset, and set its sound card + Computer comp = (Computer)pm.getObjectById(comp_id); + comp.setSoundCard(new ComputerCard("Turtle Beach", ComputerCard.PCI_CARD)); + + tx.commit(); + } + catch (Exception e) + { + e.printStackTrace(); + LOG.error(e); + fail("Exception thrown while updating objects with embedded field(s) : " + e.getMessage()); + } + finally + { + if (tx.isActive()) + { + tx.rollback(); + } + pm.close(); + } + + pm = pmf.getPersistenceManager(); + tx = pm.currentTransaction(); + try + { + tx.begin(); + + // Retrieve the object that has just been updated + Computer comp = (Computer)pm.getObjectById(comp_id); + assertTrue("Unable to retrieve object with embedded object(s)", comp != null); + assertTrue("Updated object with embedded object(s) has incorrect own field", + comp.getOperatingSystem().equals("MacOS")); + assertTrue("Updated object with embedded object(s) has no graphics card", + comp.getGraphicsCard() != null); + assertTrue("Updated object with embedded object(s) has incorrect embedded object : graphics card manufacturer is wrong", + comp.getGraphicsCard().getManufacturer().equals("NVidia")); + assertTrue("Updated object with embedded object(s) has incorrect embedded object : graphics card type is wrong", + comp.getGraphicsCard().getType() == ComputerCard.AGP_CARD); + assertTrue("Updated object with embedded object(s) has no sound card", + comp.getSoundCard() != null); + assertTrue("Updated object with embedded object(s) has incorrect embedded object : sound card manufacturer is wrong", + comp.getSoundCard().getManufacturer().equals("Turtle Beach")); + assertTrue("Updated object with embedded object(s) has incorrect embedded object : sound card type is wrong", + comp.getSoundCard().getType() == ComputerCard.PCI_CARD); + + tx.commit(); + } + catch (Exception e) + { + e.printStackTrace(); + LOG.error(e); + fail("Exception thrown while updating objects with embedded field(s) : " + e.getMessage()); + } + finally + { + if (tx.isActive()) + { + tx.rollback(); + } + pm.close(); + } + } + + /** * Test the ability to persist (in its own right) an embedded object. * @throws Exception |