Thanks. I need to write up a document explaining how to write tests using
this framework.
Will see if i can work on that TODO.

On Thu, Jul 22, 2010 at 1:30 PM, David Jencks <[email protected]>wrote:

> I fixed the spelling on some of the keys (pre>>per) in rev 966758
>
> Also I straightened out some of the logic in AnnotationDeployer.  I think
> there is at least one type that isn't getting validated there.... I added a
> TODO at line 2907.  I'm also not 100% sure about overriding ejb refs in
> buildEjbRef line 2375.
>
> This validation stuff is great... I hadn't seen it before!!!
>
> thanks
> david jencks
>
> On Jul 17, 2010, at 6:24 AM, [email protected] wrote:
>
> > Author: kmalhi
> > Date: Sat Jul 17 13:24:03 2010
> > New Revision: 965072
> >
> > URL: http://svn.apache.org/viewvc?rev=965072&view=rev
> > Log:
> > Tests all @PersistenceUnit usage
> >
> > Added:
> >
>  
> openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.java
> >
> > Added:
> openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.java
> > URL:
> http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.java?rev=965072&view=auto
> >
> ==============================================================================
> > ---
> openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.java
> (added)
> > +++
> openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.java
> Sat Jul 17 13:24:03 2010
> > @@ -0,0 +1,96 @@
> > +/**
> > + * 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.openejb.config.rules;
> > +
> > +import javax.persistence.EntityManager;
> > +import javax.persistence.EntityManagerFactory;
> > +
> > +import org.apache.openejb.OpenEJBException;
> > +import org.apache.openejb.config.AppModule;
> > +import org.apache.openejb.config.EjbModule;
> > +import org.apache.openejb.config.PersistenceModule;
> > +import org.apache.openejb.jee.EjbJar;
> > +import org.apache.openejb.jee.StatelessBean;
> > +import org.apache.openejb.jee.jpa.unit.PersistenceUnit;
> > +import org.junit.runner.RunWith;
> > +
> > +...@runwith(ValidationRunner.class)
> > +public class CheckPersistenceUnitUsageTest {
> > +    @Keys( { @Key(value = "persistenceUnitRef.noPersistenceUnits", count
> = 3), @Key("presistenceUnitAnnotation.onClassWithNoName"),
> > +            @Key("presistenceUnitAnnotation.onEntityManager"),
> @Key("presistenceUnitAnnotation.onNonEntityManagerFactory") })
> > +    public EjbJar wrongUsage() throws OpenEJBException {
> > +        EjbJar ejbJar = new EjbJar();
> > +        ejbJar.addEnterpriseBean(new StatelessBean(FooStateless.class));
> > +        return ejbJar;
> > +    }
> > +
> > +    @Keys( { @Key(value = "persistenceUnitRef.noMatches"), @Key(value =
> "persistenceUnitRef.noUnitName") })
> > +    public AppModule noUnitName() {
> > +        EjbJar ejbJar = new EjbJar();
> > +        ejbJar.addEnterpriseBean(new
> StatelessBean(FooStatelessOne.class));
> > +        EjbModule ejbModule = new EjbModule(ejbJar);
> > +        AppModule appModule = new AppModule(ejbModule.getClassLoader(),
> ejbModule.getJarLocation());
> > +        appModule.getEjbModules().add(ejbModule);
> > +        PersistenceUnit pu = new PersistenceUnit("fooUnit");
> > +        PersistenceUnit pu1 = new PersistenceUnit("fooUnit1");
> > +        PersistenceUnit pu2 = new PersistenceUnit("fooUnit");
> > +        org.apache.openejb.jee.jpa.unit.Persistence p = new
> org.apache.openejb.jee.jpa.unit.Persistence(pu, pu1, pu2);
> > +        PersistenceModule pm = new PersistenceModule("foo", p);
> > +        appModule.getPersistenceModules().add(pm);
> > +        return appModule;
> > +    }
> > +
> > +    @Keys( { @Key(value = "persistenceUnitRef.vagueMatches") })
> > +    public AppModule vagueMatches() {
> > +        EjbJar ejbJar = new EjbJar();
> > +        ejbJar.addEnterpriseBean(new
> StatelessBean(FooStatelessTwo.class));
> > +        EjbModule ejbModule = new EjbModule(ejbJar);
> > +        AppModule appModule = new AppModule(ejbModule.getClassLoader(),
> ejbModule.getJarLocation());
> > +        appModule.getEjbModules().add(ejbModule);
> > +        PersistenceUnit pu = new PersistenceUnit("fooUnit");
> > +        org.apache.openejb.jee.jpa.unit.Persistence p = new
> org.apache.openejb.jee.jpa.unit.Persistence(pu);
> > +        PersistenceModule pm = new PersistenceModule("foo", p);
> > +        appModule.getPersistenceModules().add(pm);
> > +        PersistenceUnit pu1 = new PersistenceUnit("fooUnit");
> > +        org.apache.openejb.jee.jpa.unit.Persistence p1 = new
> org.apache.openejb.jee.jpa.unit.Persistence(pu1);
> > +        PersistenceModule pm1 = new PersistenceModule("foo1", p1);
> > +        appModule.getPersistenceModules().add(pm1);
> > +        return appModule;
> > +    }
> > +
> > +    @javax.persistence.PersistenceUnit
> > +    private static class FooStateless {
> > +        @javax.persistence.PersistenceUnit
> > +        EntityManagerFactory emf;
> > +        @javax.persistence.PersistenceUnit
> > +        EntityManager em;
> > +        @javax.persistence.PersistenceUnit
> > +        String nonEntityManagerFactory;
> > +    }
> > +
> > +    private static class FooStatelessOne {
> > +        @javax.persistence.PersistenceUnit(unitName = "wrongName")
> > +        EntityManagerFactory emf;
> > +        @javax.persistence.PersistenceUnit
> > +        EntityManagerFactory emf1;
> > +    }
> > +
> > +    private static class FooStatelessTwo {
> > +        @javax.persistence.PersistenceUnit(unitName = "fooUnit")
> > +        EntityManagerFactory emf;
> > +    }
> > +}
> >
> >
>
>


-- 
Karan Singh Malhi

Reply via email to