From jdo-commits-return-2274-apmail-db-jdo-commits-archive=www.apache.org@db.apache.org Fri Feb 01 22:47:38 2008 Return-Path: Delivered-To: apmail-db-jdo-commits-archive@www.apache.org Received: (qmail 13989 invoked from network); 1 Feb 2008 22:47:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 1 Feb 2008 22:47:38 -0000 Received: (qmail 55884 invoked by uid 500); 1 Feb 2008 22:47:29 -0000 Mailing-List: contact jdo-commits-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jdo-dev@db.apache.org Delivered-To: mailing list jdo-commits@db.apache.org Received: (qmail 55866 invoked by uid 99); 1 Feb 2008 22:47:29 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 01 Feb 2008 14:47:29 -0800 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 01 Feb 2008 22:47:09 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 9C7DE1A9832; Fri, 1 Feb 2008 14:47:16 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r617687 - in /db/jdo/trunk: tck2-legacy/src/conf/ tck2-legacy/src/java/org/apache/jdo/tck/api/persistencemanager/detach/ tck2/src/conf/ tck2/src/java/org/apache/jdo/tck/api/persistencemanager/detach/ Date: Fri, 01 Feb 2008 22:47:12 -0000 To: jdo-commits@db.apache.org From: mcaisse@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080201224716.9C7DE1A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: mcaisse Date: Fri Feb 1 14:47:07 2008 New Revision: 617687 URL: http://svn.apache.org/viewvc?rev=617687&view=rev Log: JDO-532 new TCK test for CopyOnAttach Added: db/jdo/trunk/tck2-legacy/src/java/org/apache/jdo/tck/api/persistencemanager/detach/CopyOnAttachFalse.java (with props) db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/api/persistencemanager/detach/CopyOnAttachFalse.java (with props) Modified: db/jdo/trunk/tck2-legacy/src/conf/detach.conf db/jdo/trunk/tck2/src/conf/detach.conf Modified: db/jdo/trunk/tck2-legacy/src/conf/detach.conf URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck2-legacy/src/conf/detach.conf?rev=617687&r1=617686&r2=617687&view=diff ============================================================================== --- db/jdo/trunk/tck2-legacy/src/conf/detach.conf (original) +++ db/jdo/trunk/tck2-legacy/src/conf/detach.conf Fri Feb 1 14:47:07 2008 @@ -26,5 +26,7 @@ org.apache.jdo.tck.api.persistencemanager.detach.DetachCopy \ org.apache.jdo.tck.api.persistencemanager.detach.DetachSerialize \ org.apache.jdo.tck.api.persistencemanager.detach.SetDetachAllOnCommit \ - org.apache.jdo.tck.api.persistencemanager.detach.DetachUndetachable + org.apache.jdo.tck.api.persistencemanager.detach.DetachUndetachable \ + org.apache.jdo.tck.api.persistencemanager.detach.DetachAccessUnloadedField \ + org.apache.jdo.tck.api.persistencemanager.detach.CopyOnAttachFalse jdo.tck.requiredOptions = Added: db/jdo/trunk/tck2-legacy/src/java/org/apache/jdo/tck/api/persistencemanager/detach/CopyOnAttachFalse.java URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck2-legacy/src/java/org/apache/jdo/tck/api/persistencemanager/detach/CopyOnAttachFalse.java?rev=617687&view=auto ============================================================================== --- db/jdo/trunk/tck2-legacy/src/java/org/apache/jdo/tck/api/persistencemanager/detach/CopyOnAttachFalse.java (added) +++ db/jdo/trunk/tck2-legacy/src/java/org/apache/jdo/tck/api/persistencemanager/detach/CopyOnAttachFalse.java Fri Feb 1 14:47:07 2008 @@ -0,0 +1,99 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.apache.jdo.tck.api.persistencemanager.detach; + + + + +import javax.jdo.JDOUserException; +import org.apache.jdo.tck.pc.shoppingcart.Cart; + +import org.apache.jdo.tck.util.BatchTestRunner; + +/** + * Title: Test DetachAttach + *
+ * Keywords: makePersistent detach + *
+ * Assertion IDs: + *
+ * Assertion Description: + * A12.6.8-29 [If the CopyOnAttach property is false, then the instance itself +is transitioned to persistent-clean for datastore transactions or persistent-nontransactional for optimistic +transactions. If there already is an instance in the cache with the same identity, JDOUserException +is thrown.] + */ +public class CopyOnAttachFalse extends DetachTest { + + private static final String ASSERTION_FAILED = + "Assertion A12.6.8 (CopyOnAttachFalse) failed: "; + + /** + * The main is called when the class + * is directly executed from the command line. + * @param args The arguments passed to the program. + */ + public static void main(String[] args) { + BatchTestRunner.run(CopyOnAttachFalse.class); + } + + /** */ + + /** + */ + public void testAttachClean() { + Cart detachedCart = createDetachedInstance(ASSERTION_FAILED); + pm.setCopyOnAttach(false); + pm.currentTransaction().begin(); + Cart attachedCart = (Cart)pm.makePersistent(detachedCart); + assertTrue("Expected attached object to == detached object.", + attachedCart == detachedCart); + pm.currentTransaction().commit(); + } + + /** */ + public void testAttachDirty() { + Cart detachedCart = createDetachedInstance(ASSERTION_FAILED); + pm.setCopyOnAttach(false); + pm.currentTransaction().begin(); + cartEntry1.setQuantity(500); + goldenCartEntry.setQuantity(500); + Cart attachedCart = (Cart)pm.makePersistent(detachedCart); + assertTrue("Expected attached object to == detached object.", + attachedCart == detachedCart); + pm.currentTransaction().commit(); + } + + /** + */ + public void testNegativeAttachClean() { + Cart detachedCart = createDetachedInstance(ASSERTION_FAILED); + pm.setCopyOnAttach(false); + pm.currentTransaction().begin(); + // Obtain new instance of cart1 + pm.getObjectById(cart1oid, false); + try { + Cart attachedCart = (Cart)pm.makePersistent(detachedCart); + fail("Expected JDOUserException. Object with same identity as " + + "attached object is already in the cache."); + } catch (JDOUserException jdoe) { + // expected exception + } + pm.currentTransaction().commit(); + } + +} Propchange: db/jdo/trunk/tck2-legacy/src/java/org/apache/jdo/tck/api/persistencemanager/detach/CopyOnAttachFalse.java ------------------------------------------------------------------------------ svn:eol-style = LF Modified: db/jdo/trunk/tck2/src/conf/detach.conf URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck2/src/conf/detach.conf?rev=617687&r1=617686&r2=617687&view=diff ============================================================================== --- db/jdo/trunk/tck2/src/conf/detach.conf (original) +++ db/jdo/trunk/tck2/src/conf/detach.conf Fri Feb 1 14:47:07 2008 @@ -27,5 +27,6 @@ org.apache.jdo.tck.api.persistencemanager.detach.DetachSerialize \ org.apache.jdo.tck.api.persistencemanager.detach.SetDetachAllOnCommit \ org.apache.jdo.tck.api.persistencemanager.detach.DetachUndetachable \ - org.apache.jdo.tck.api.persistencemanager.detach.DetachAccessUnloadedField + org.apache.jdo.tck.api.persistencemanager.detach.DetachAccessUnloadedField \ + org.apache.jdo.tck.api.persistencemanager.detach.CopyOnAttachFalse jdo.tck.requiredOptions = Added: db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/api/persistencemanager/detach/CopyOnAttachFalse.java URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/api/persistencemanager/detach/CopyOnAttachFalse.java?rev=617687&view=auto ============================================================================== --- db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/api/persistencemanager/detach/CopyOnAttachFalse.java (added) +++ db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/api/persistencemanager/detach/CopyOnAttachFalse.java Fri Feb 1 14:47:07 2008 @@ -0,0 +1,99 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.apache.jdo.tck.api.persistencemanager.detach; + + + + +import javax.jdo.JDOUserException; +import org.apache.jdo.tck.pc.shoppingcart.Cart; + +import org.apache.jdo.tck.util.BatchTestRunner; + +/** + * Title: Test DetachAttach + *
+ * Keywords: makePersistent detach + *
+ * Assertion IDs: + *
+ * Assertion Description: + * A12.6.8-29 [If the CopyOnAttach property is false, then the instance itself +is transitioned to persistent-clean for datastore transactions or persistent-nontransactional for optimistic +transactions. If there already is an instance in the cache with the same identity, JDOUserException +is thrown.] + */ +public class CopyOnAttachFalse extends DetachTest { + + private static final String ASSERTION_FAILED = + "Assertion A12.6.8 (CopyOnAttachFalse) failed: "; + + /** + * The main is called when the class + * is directly executed from the command line. + * @param args The arguments passed to the program. + */ + public static void main(String[] args) { + BatchTestRunner.run(CopyOnAttachFalse.class); + } + + /** */ + + /** + */ + public void testAttachClean() { + Cart detachedCart = createDetachedInstance(ASSERTION_FAILED); + pm.setCopyOnAttach(false); + pm.currentTransaction().begin(); + Cart attachedCart = (Cart)pm.makePersistent(detachedCart); + assertTrue("Expected attached object to == detached object.", + attachedCart == detachedCart); + pm.currentTransaction().commit(); + } + + /** */ + public void testAttachDirty() { + Cart detachedCart = createDetachedInstance(ASSERTION_FAILED); + pm.setCopyOnAttach(false); + pm.currentTransaction().begin(); + cartEntry1.setQuantity(500); + goldenCartEntry.setQuantity(500); + Cart attachedCart = (Cart)pm.makePersistent(detachedCart); + assertTrue("Expected attached object to == detached object.", + attachedCart == detachedCart); + pm.currentTransaction().commit(); + } + + /** + */ + public void testNegativeAttachClean() { + Cart detachedCart = createDetachedInstance(ASSERTION_FAILED); + pm.setCopyOnAttach(false); + pm.currentTransaction().begin(); + // Obtain new instance of cart1 + pm.getObjectById(cart1oid, false); + try { + Cart attachedCart = (Cart)pm.makePersistent(detachedCart); + fail("Expected JDOUserException. Object with same identity as " + + "attached object is already in the cache."); + } catch (JDOUserException jdoe) { + // expected exception + } + pm.currentTransaction().commit(); + } + +} Propchange: db/jdo/trunk/tck2/src/java/org/apache/jdo/tck/api/persistencemanager/detach/CopyOnAttachFalse.java ------------------------------------------------------------------------------ svn:eol-style = LF