summaryrefslogtreecommitdiffstats
path: root/proxy/src/test/java/org/fedoraproject/candlepin/model/test
diff options
context:
space:
mode:
Diffstat (limited to 'proxy/src/test/java/org/fedoraproject/candlepin/model/test')
-rw-r--r--proxy/src/test/java/org/fedoraproject/candlepin/model/test/ConsumerTest.java52
-rw-r--r--proxy/src/test/java/org/fedoraproject/candlepin/model/test/ConsumerTypeTest.java35
-rw-r--r--proxy/src/test/java/org/fedoraproject/candlepin/model/test/ObjectFactoryTest.java102
-rw-r--r--proxy/src/test/java/org/fedoraproject/candlepin/model/test/OwnerTest.java93
-rw-r--r--proxy/src/test/java/org/fedoraproject/candlepin/model/test/ProductTest.java64
-rw-r--r--proxy/src/test/java/org/fedoraproject/candlepin/model/test/TestUtil.java58
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;
+ }
+}