diff options
Diffstat (limited to 'proxy/src/test/java/org/fedoraproject/candlepin/model/test')
6 files changed, 404 insertions, 0 deletions
diff --git a/proxy/src/test/java/org/fedoraproject/candlepin/model/test/ConsumerTest.java b/proxy/src/test/java/org/fedoraproject/candlepin/model/test/ConsumerTest.java new file mode 100644 index 0000000..ec057bb --- /dev/null +++ b/proxy/src/test/java/org/fedoraproject/candlepin/model/test/ConsumerTest.java @@ -0,0 +1,52 @@ +/** + * Copyright (c) 2009 Red Hat, Inc. + * + * This software is licensed to you under the GNU General Public License, + * version 2 (GPLv2). There is NO WARRANTY for this software, express or + * implied, including the implied warranties of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 + * along with this software; if not, see + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. + * + * Red Hat trademarks are not licensed under GPLv2. No permission is + * granted to use or replicate Red Hat trademarks that are incorporated + * in this software or its documentation. + */ +package org.fedoraproject.candlepin.model.test; + +import static org.junit.Assert.assertEquals; + +import org.fedoraproject.candlepin.model.BaseModel; +import org.fedoraproject.candlepin.model.Consumer; +import org.fedoraproject.candlepin.model.Owner; +import org.fedoraproject.candlepin.model.Product; + +import org.junit.Test; + + + +public class ConsumerTest { + + @Test + public void testConsumedProduct() throws Exception { + Owner o = TestUtil.createOwner(); + + Product rhel = new Product(BaseModel.generateUUID()); + rhel.setName("Red Hat Enterprise Linux"); + + Consumer c = TestUtil.createConsumer(o); + c.addConsumedProduct(rhel); + + + + } + + @Test + public void testProperties() { + Owner o = TestUtil.createOwner(); + Consumer c = TestUtil.createConsumer(o); + c.setMetadataField("cpu", "2"); + + assertEquals(c.getMetadataField("cpu"), "2"); + } +} diff --git a/proxy/src/test/java/org/fedoraproject/candlepin/model/test/ConsumerTypeTest.java b/proxy/src/test/java/org/fedoraproject/candlepin/model/test/ConsumerTypeTest.java new file mode 100644 index 0000000..229644e --- /dev/null +++ b/proxy/src/test/java/org/fedoraproject/candlepin/model/test/ConsumerTypeTest.java @@ -0,0 +1,35 @@ +package org.fedoraproject.candlepin.model.test; + +import static org.junit.Assert.assertEquals; + +import org.fedoraproject.candlepin.model.ConsumerType; +import org.fedoraproject.candlepin.util.EntityManagerUtil; + +import org.junit.Test; + +import java.util.List; + +import javax.persistence.EntityManager; +import javax.persistence.EntityTransaction; + +public class ConsumerTypeTest { + + @Test + public void testSomething() { + EntityManager em = EntityManagerUtil.createEntityManager(); + EntityTransaction tx = null; + tx = em.getTransaction(); + tx.begin(); + + ConsumerType ct = new ConsumerType("standard-system"); + em.persist(ct); + + tx.commit(); + + List<EntityManager> results = em.createQuery("select ct from ConsumerType as ct") + .getResultList(); + assertEquals(1, results.size()); + + + } +} diff --git a/proxy/src/test/java/org/fedoraproject/candlepin/model/test/ObjectFactoryTest.java b/proxy/src/test/java/org/fedoraproject/candlepin/model/test/ObjectFactoryTest.java new file mode 100644 index 0000000..8bd66f1 --- /dev/null +++ b/proxy/src/test/java/org/fedoraproject/candlepin/model/test/ObjectFactoryTest.java @@ -0,0 +1,102 @@ +/** + * Copyright (c) 2009 Red Hat, Inc. + * + * This software is licensed to you under the GNU General Public License, + * version 2 (GPLv2). There is NO WARRANTY for this software, express or + * implied, including the implied warranties of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 + * along with this software; if not, see + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. + * + * Red Hat trademarks are not licensed under GPLv2. No permission is + * granted to use or replicate Red Hat trademarks that are incorporated + * in this software or its documentation. + */ +package org.fedoraproject.candlepin.model.test; + +import org.fedoraproject.candlepin.model.BaseModel; +import org.fedoraproject.candlepin.model.ObjectFactory; +import org.fedoraproject.candlepin.model.Owner; + + +import java.util.List; + +import org.junit.Test; +import static org.junit.Assert.*; + +/** + * ObjectFactoryTest + */ +public class ObjectFactoryTest { + + @Test + public void testGet() { + ObjectFactory o1 = ObjectFactory.get(); + ObjectFactory o2 = ObjectFactory.get(); + + assertNotNull(o1); + assertNotNull(o2); + assertEquals(o1, o2); + } + + @Test + public void testListObjectsByClass() { + List<Object> l = ObjectFactory.get().listObjectsByClass(Object.class); + assertNotNull(l); + assertTrue(l.isEmpty()); + + l = ObjectFactory.get().listObjectsByClass(Owner.class); + assertNotNull(l); + assertFalse(l.isEmpty()); + Object o = l.get(0); + assertNotNull(o); + assertEquals(o.getClass(), Owner.class); + } + + @Test + public void testStore() { + // make sure we don't have one stored already + List<Object> list = ObjectFactory.get().listObjectsByClass(Long.class); + assertNotNull(list); + assertTrue(list.isEmpty()); + + Long l = new Long(10); + ObjectFactory.get().store(l); + + // verify it got stored + list = ObjectFactory.get().listObjectsByClass(Long.class); + assertNotNull(list); + assertFalse(list.isEmpty()); + Long l2 = (Long) list.get(0); + assertEquals(l, l2); + } + + @Test + public void testLookupByUUID() { + String uuid = BaseModel.generateUUID(); + assertNull(ObjectFactory.get().lookupByUUID(Owner.class, uuid)); + + Owner owner = new Owner(uuid); + owner.setName("unit-test-owner"); + ObjectFactory.get().store(owner); + Object o = ObjectFactory.get().lookupByUUID(Owner.class, uuid); + assertNotNull(o); + assertEquals(o.getClass(), Owner.class); + assertEquals(((Owner)o).getUuid(), owner.getUuid()); + } + + @Test + public void testLookupByFieldName() { + String uuid = BaseModel.generateUUID(); + assertNull(ObjectFactory.get().lookupByUUID(Owner.class, uuid)); + + Owner owner = new Owner(uuid); + owner.setName("unit-test-org"); + ObjectFactory.get().store(owner); + + Owner o2 = (Owner) ObjectFactory.get().lookupByFieldName( + Owner.class, "uuid", uuid); + assertNotNull(o2); + assertEquals(owner, o2); + } +} diff --git a/proxy/src/test/java/org/fedoraproject/candlepin/model/test/OwnerTest.java b/proxy/src/test/java/org/fedoraproject/candlepin/model/test/OwnerTest.java new file mode 100644 index 0000000..abfce82 --- /dev/null +++ b/proxy/src/test/java/org/fedoraproject/candlepin/model/test/OwnerTest.java @@ -0,0 +1,93 @@ +/** + * Copyright (c) 2009 Red Hat, Inc. + * + * This software is licensed to you under the GNU General Public License, + * version 2 (GPLv2). There is NO WARRANTY for this software, express or + * implied, including the implied warranties of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 + * along with this software; if not, see + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. + * + * Red Hat trademarks are not licensed under GPLv2. No permission is + * granted to use or replicate Red Hat trademarks that are incorporated + * in this software or its documentation. + */ +package org.fedoraproject.candlepin.model.test; + +import org.fedoraproject.candlepin.model.BaseModel; +import org.fedoraproject.candlepin.model.Consumer; +import org.fedoraproject.candlepin.model.EntitlementPool; +import org.fedoraproject.candlepin.model.ObjectFactory; +import org.fedoraproject.candlepin.model.Owner; +import org.fedoraproject.candlepin.model.Product; +import org.fedoraproject.candlepin.model.User; + +import java.util.List; + +import org.junit.Test; +import static org.junit.Assert.*; + +/** + * + * + */ +public class OwnerTest { + + @Test + public void testOwner() throws Exception { + Owner o = new Owner(BaseModel.generateUUID()); + assertNotNull(o); + } + + @Test + public void testLookup() throws Exception { + + Owner o = TestUtil.createOwner(); + String lookedUp = o.getUuid(); + o = (Owner) ObjectFactory.get(). + lookupByUUID(Owner.class, lookedUp); + assertNotNull(o); + } + + @Test + public void testList() throws Exception { + for (int i = 0; i < 10; i++) { + TestUtil.createOwner(); + } + + List orgs = ObjectFactory.get().listObjectsByClass(Owner.class); + assertNotNull(orgs); + assertTrue(orgs.size() >= 10); + } + + @Test + public void testObjectRelationships() throws Exception { + Owner owner = new Owner(BaseModel.generateUUID()); + owner.setName("test-owner"); + // Product + Product rhel = new Product(BaseModel.generateUUID()); + rhel.setName("Red Hat Enterprise Linux"); + + // User + User u = new User(); + u.setLogin("test-login"); + u.setPassword("redhat"); + owner.addUser(u); + assertEquals(1, owner.getUsers().size()); + + // Consumer + Consumer c = new Consumer(BaseModel.generateUUID()); + c.setOwner(owner); + owner.addConsumer(c); + c.addConsumedProduct(rhel); + assertEquals(1, owner.getConsumers().size()); + assertEquals(1, c.getConsumedProducts().size()); + + // EntitlementPool + EntitlementPool pool = new EntitlementPool(BaseModel.generateUUID()); + owner.addEntitlementPool(pool); + pool.setProduct(rhel); + assertEquals(1, owner.getEntitlementPools().size()); + + } +} diff --git a/proxy/src/test/java/org/fedoraproject/candlepin/model/test/ProductTest.java b/proxy/src/test/java/org/fedoraproject/candlepin/model/test/ProductTest.java new file mode 100644 index 0000000..318ea49 --- /dev/null +++ b/proxy/src/test/java/org/fedoraproject/candlepin/model/test/ProductTest.java @@ -0,0 +1,64 @@ +package org.fedoraproject.candlepin.model.test; + +import static org.junit.Assert.assertEquals; + +import org.fedoraproject.candlepin.model.Product; +import org.fedoraproject.candlepin.util.EntityManagerUtil; + +import org.junit.Before; +import org.junit.Test; + +import java.util.List; + +import javax.persistence.EntityManager; +import javax.persistence.EntityTransaction; +import javax.persistence.PersistenceException; + +public class ProductTest { + + private EntityManager em; + + @Before + public void setUp() { + em = EntityManagerUtil.createEntityManager(); + } + + @Test + public void normalCreate() { + + Product prod = new Product("myproductlabel", "My Product"); + storeObject(prod); + + List<Product> results = em.createQuery("select p from Product as p") + .getResultList(); + assertEquals(1, results.size()); + } + + @Test(expected = PersistenceException.class) + public void nameRequired() { + + Product prod = new Product(); + prod.setLabel("someproductlabel"); + storeObject(prod); + + } + + @Test(expected = PersistenceException.class) + public void labelRequired() { + + Product prod = new Product(); + prod.setName("My Product Name"); + storeObject(prod); + + } + + public void storeObject(Object storeMe) { + EntityTransaction tx = null; + tx = em.getTransaction(); + tx.begin(); + + em.persist(storeMe); + tx.commit(); + } + +} diff --git a/proxy/src/test/java/org/fedoraproject/candlepin/model/test/TestUtil.java b/proxy/src/test/java/org/fedoraproject/candlepin/model/test/TestUtil.java new file mode 100644 index 0000000..b2e2ad3 --- /dev/null +++ b/proxy/src/test/java/org/fedoraproject/candlepin/model/test/TestUtil.java @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2009 Red Hat, Inc. + * + * This software is licensed to you under the GNU General Public License, + * version 2 (GPLv2). There is NO WARRANTY for this software, express or + * implied, including the implied warranties of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 + * along with this software; if not, see + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. + * + * Red Hat trademarks are not licensed under GPLv2. No permission is + * granted to use or replicate Red Hat trademarks that are incorporated + * in this software or its documentation. + */ +package org.fedoraproject.candlepin.model.test; + +import org.fedoraproject.candlepin.model.BaseModel; +import org.fedoraproject.candlepin.model.Consumer; +import org.fedoraproject.candlepin.model.ObjectFactory; +import org.fedoraproject.candlepin.model.Owner; +import org.fedoraproject.candlepin.model.Product; + + + +public class TestUtil { + private TestUtil() { + } + + public static Owner createOwner() { + String lookedUp = BaseModel.generateUUID(); + Owner o = new Owner(); + o.setUuid(lookedUp); + ObjectFactory.get().store(o); + return o; + } + + public static Consumer createConsumer(Owner owner) { + Consumer c = new Consumer(BaseModel.generateUUID()); + c.setOwner(owner); + ObjectFactory.get().store(c); + return c; + } + + /** + * Create a consumer with a new owner + * @return Consumer + */ + public static Consumer createConsumer() { + return createConsumer(createOwner()); + } + + public static Product createProduct() { + Product rhel = new Product(BaseModel.generateUUID()); + rhel.setName("Red Hat Enterprise Linux"); + ObjectFactory.get().store(rhel); + return rhel; + } +} |