diff options
10 files changed, 46 insertions, 56 deletions
diff --git a/proxy/code/src/org/fedoraproject/candlepin/model/Consumer.java b/proxy/code/src/org/fedoraproject/candlepin/model/Consumer.java index 3e642fd..6b3384b 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/model/Consumer.java +++ b/proxy/code/src/org/fedoraproject/candlepin/model/Consumer.java @@ -18,7 +18,6 @@ import java.util.HashMap; import java.util.LinkedList; import java.util.List; -import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -54,6 +53,9 @@ public class Consumer { private String name; @ManyToOne + private ConsumerType type; + + @ManyToOne private Owner owner; // TODO: Is this worth mapping? Do we need a hierarchy amidst consumers? @@ -69,9 +71,10 @@ public class Consumer { @Transient // TODO private ConsumerInfo info; - public Consumer(String name, Owner owner) { + public Consumer(String name, Owner owner, ConsumerType type) { this.name = name; this.owner = owner; + this.type = type; this.info = new ConsumerInfo(); this.info.setParent(this); // TODO: ??? @@ -111,28 +114,19 @@ public class Consumer { } /** - * @return the type + * @return Returns the type. */ public ConsumerType getType() { - if (this.info == null) { - return null; - } - else { - return info.getType(); - } + return type; } - + /** - * Set the type of this Consumer. - * @param typeIn to set + * @param typeIn The type to set. */ public void setType(ConsumerType typeIn) { - if (this.info == null) { - this.info = new ConsumerInfo(); - } - this.info.setType(typeIn); + type = typeIn; } - + /** * @return the parent */ diff --git a/proxy/code/src/org/fedoraproject/candlepin/model/ConsumerInfo.java b/proxy/code/src/org/fedoraproject/candlepin/model/ConsumerInfo.java index 5488041..2394bd4 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/model/ConsumerInfo.java +++ b/proxy/code/src/org/fedoraproject/candlepin/model/ConsumerInfo.java @@ -34,7 +34,6 @@ import javax.xml.bind.annotation.XmlTransient; public class ConsumerInfo { private Consumer parent; - private ConsumerType type; private Map<String, String> metadata; /** @@ -53,21 +52,6 @@ public class ConsumerInfo { } /** - * @return Returns the type. - */ - public ConsumerType getType() { - return type; - } - - /** - * @param typeIn The type to set. - */ - public void setType(ConsumerType typeIn) { - type = typeIn; - } - - - /** * @return Returns the metadata. */ public Map<String, String> getMetadata() { diff --git a/proxy/code/src/org/fedoraproject/candlepin/model/ConsumerType.java b/proxy/code/src/org/fedoraproject/candlepin/model/ConsumerType.java index a8f18fe..ddb5976 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/model/ConsumerType.java +++ b/proxy/code/src/org/fedoraproject/candlepin/model/ConsumerType.java @@ -14,8 +14,6 @@ */ package org.fedoraproject.candlepin.model; -import java.io.Serializable; - import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @@ -32,13 +30,11 @@ import javax.xml.bind.annotation.XmlRootElement; @XmlAccessorType(XmlAccessType.PROPERTY) @Entity @Table(name="cp_consumer_type") -public class ConsumerType implements Serializable { +public class ConsumerType { + @Id private String label; - /** - * default noarg ctor - */ public ConsumerType() { label = null; } diff --git a/proxy/code/src/org/fedoraproject/candlepin/model/test/ConsumerTest.java b/proxy/code/src/org/fedoraproject/candlepin/model/test/ConsumerTest.java index 90c0428..bdc0912 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/model/test/ConsumerTest.java +++ b/proxy/code/src/org/fedoraproject/candlepin/model/test/ConsumerTest.java @@ -33,11 +33,13 @@ public class ConsumerTest extends DatabaseTestFixture { @Before public void setUpTestObjects() { em.getTransaction().begin(); + String ownerName = "Example Corporation"; owner = new Owner(ownerName); rhel = new Product("label", "Red Hat Enterprise Linux"); em.persist(owner); em.persist(rhel); + em.getTransaction().commit(); } diff --git a/proxy/code/src/org/fedoraproject/candlepin/model/test/ConsumerTypeTest.java b/proxy/code/src/org/fedoraproject/candlepin/model/test/ConsumerTypeTest.java index 5ab52e0..96261ba 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/model/test/ConsumerTypeTest.java +++ b/proxy/code/src/org/fedoraproject/candlepin/model/test/ConsumerTypeTest.java @@ -29,7 +29,5 @@ public class ConsumerTypeTest { List<EntityManager> results = em.createQuery("select ct from ConsumerType as ct") .getResultList(); assertEquals(1, results.size()); - - } } diff --git a/proxy/code/src/org/fedoraproject/candlepin/resource/ConsumerResource.java b/proxy/code/src/org/fedoraproject/candlepin/resource/ConsumerResource.java index cce0294..4a87b67 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/resource/ConsumerResource.java +++ b/proxy/code/src/org/fedoraproject/candlepin/resource/ConsumerResource.java @@ -73,12 +73,14 @@ public class ConsumerResource extends BaseResource { @POST @Consumes(MediaType.APPLICATION_JSON) @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) - public Consumer create(ConsumerInfo ci) { - System.out.println("metadata: " + ci.getMetadata()); - System.out.println("ci: " + ci); + public Consumer create(ConsumerInfo ci, ConsumerType type) { +// System.out.println("metadata: " + ci.getMetadata()); +// System.out.println("ci: " + ci); //Owner owner = (Owner) ObjectFactory.get().lookupByUUID(Owner.class, owneruuid); Consumer c = new Consumer(); c.setName(ci.getMetadataField("name")); + c.setType(type); + // TODO: Need owner specified here: //c.setOwner(owner); c.setInfo(ci); ObjectFactory.get().store(c); @@ -91,9 +93,10 @@ public class ConsumerResource extends BaseResource { */ @GET @Path("/info") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) + // TODO: What consumer? public ConsumerInfo getInfo() { ConsumerInfo ci = new ConsumerInfo(); - ci.setType(new ConsumerType("system")); +// ci.setType(new ConsumerType("system")); ci.setParent(null); // Map<String,String> m = new HashMap<String,String>(); // m.put("cpu", "i386"); @@ -101,7 +104,6 @@ public class ConsumerResource extends BaseResource { // ci.setMetadata(m); ci.setMetadataField("cpu", "i386"); ci.setMetadataField("hey", "foobar"); - System.out.println(ci.getMetadata()); return ci; } diff --git a/proxy/code/src/org/fedoraproject/candlepin/resource/test/ConsumerResourceTest.java b/proxy/code/src/org/fedoraproject/candlepin/resource/test/ConsumerResourceTest.java index 10a2c15..bb9b6ee 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/resource/test/ConsumerResourceTest.java +++ b/proxy/code/src/org/fedoraproject/candlepin/resource/test/ConsumerResourceTest.java @@ -42,8 +42,8 @@ public class ConsumerResourceTest { ConsumerResource capi = new ConsumerResource(); ConsumerInfo ci = new ConsumerInfo(); ci.setMetadataField("name", newname); - ci.setType(new ConsumerType("standard-system")); - capi.create(ci); + ConsumerType type = new ConsumerType("standard-system"); + capi.create(ci, type); assertNotNull(ObjectFactory.get().lookupByFieldName(Consumer.class, "name", newname)); } diff --git a/proxy/code/src/org/fedoraproject/candlepin/resource/test/EntitlementResourceTest.java b/proxy/code/src/org/fedoraproject/candlepin/resource/test/EntitlementResourceTest.java index 38d264a..7302a4f 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/resource/test/EntitlementResourceTest.java +++ b/proxy/code/src/org/fedoraproject/candlepin/resource/test/EntitlementResourceTest.java @@ -54,10 +54,13 @@ public class EntitlementResourceTest extends DatabaseTestFixture { em.getTransaction().begin(); Owner o = TestUtil.createOwner(); - consumer = TestUtil.createConsumer(o); + ConsumerType type = new ConsumerType("some-consumer-type"); + + consumer = TestUtil.createConsumer(type, o); product = TestUtil.createProduct(); em.persist(o); + em.persist(type); em.persist(consumer); em.persist(product); em.getTransaction().commit(); @@ -87,11 +90,13 @@ public class EntitlementResourceTest extends DatabaseTestFixture { assertNotNull(cert); assertNotNull(consumer.getConsumedProducts()); assertNotNull(consumer.getEntitlements()); + + ConsumerType type = new ConsumerType("some-consumer-type"); // Test max membership boolean failed = false; for (int i = 0; i < ep.getMaxMembers() + 10; i++) { - Consumer ci = TestUtil.createConsumer(consumer.getOwner()); + Consumer ci = TestUtil.createConsumer(type, consumer.getOwner()); f.add("consumer_id", ci.getId()); try { eapi.entitle(consumer, product); @@ -133,7 +138,7 @@ public class EntitlementResourceTest extends DatabaseTestFixture { @Test public void testListAvailableEntitlements() { EntitlementResource eapi = new EntitlementResource(); - consumer.setType(new ConsumerType("standard-system")); +// consumer.setType(new ConsumerType("standard-system")); Form f = new Form(); f.add("consumer_id", consumer.getId()); diff --git a/proxy/code/src/org/fedoraproject/candlepin/test/DatabaseTestFixture.java b/proxy/code/src/org/fedoraproject/candlepin/test/DatabaseTestFixture.java index 33eb8f4..c4502e1 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/test/DatabaseTestFixture.java +++ b/proxy/code/src/org/fedoraproject/candlepin/test/DatabaseTestFixture.java @@ -6,6 +6,7 @@ import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; import org.fedoraproject.candlepin.model.Consumer; +import org.fedoraproject.candlepin.model.ConsumerType; import org.fedoraproject.candlepin.model.Owner; import org.fedoraproject.candlepin.model.Product; import org.fedoraproject.candlepin.util.EntityManagerUtil; @@ -59,6 +60,14 @@ public class DatabaseTestFixture { em.remove(c); } + // TODO: Is this right? Or should we pre-populate default defined types, and always + // reference these in the tests instead of creating them everywhere? + List<ConsumerType> consumerTypes = em.createQuery("from ConsumerType c"). + getResultList(); + for (ConsumerType c : consumerTypes) { + em.remove(c); + } + em.getTransaction().commit(); em.close(); } diff --git a/proxy/code/src/org/fedoraproject/candlepin/test/TestUtil.java b/proxy/code/src/org/fedoraproject/candlepin/test/TestUtil.java index a1c7874..f71d36a 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/test/TestUtil.java +++ b/proxy/code/src/org/fedoraproject/candlepin/test/TestUtil.java @@ -14,15 +14,15 @@ */ package org.fedoraproject.candlepin.test; -import org.fedoraproject.candlepin.model.BaseModel; import org.fedoraproject.candlepin.model.Consumer; +import org.fedoraproject.candlepin.model.ConsumerType; import org.fedoraproject.candlepin.model.ObjectFactory; import org.fedoraproject.candlepin.model.Owner; import org.fedoraproject.candlepin.model.Product; // TODO: Do we want to keep this style of creating objects for testing? -@Deprecated public class TestUtil { + private TestUtil() { } @@ -33,8 +33,8 @@ public class TestUtil { return o; } - public static Consumer createConsumer(Owner owner) { - Consumer c = new Consumer("Consumer Name", owner); + public static Consumer createConsumer(ConsumerType type, Owner owner) { + Consumer c = new Consumer("Consumer Name", owner, type); ObjectFactory.get().store(c); return c; } @@ -44,7 +44,7 @@ public class TestUtil { * @return Consumer */ public static Consumer createConsumer() { - return createConsumer(createOwner()); + return createConsumer(new ConsumerType("some-consumer-type"), createOwner()); } public static Product createProduct() { |