use of org.candlepin.model.GuestId in project candlepin by candlepin.
the class CriteriaRulesTest method manifestConsumerVirtOnlyNoRequiresHost.
@Test
public void manifestConsumerVirtOnlyNoRequiresHost() {
// create a manifest consumer
ConsumerType type = new ConsumerType(ConsumerType.ConsumerTypeEnum.CANDLEPIN);
consumerTypeCurator.create(type);
Consumer c = new Consumer("test-consumer", "test-user", owner, type);
consumerCurator.create(c);
Consumer host = createConsumer(owner);
host.addGuestId(new GuestId("GUESTUUID", host));
consumerCurator.update(host);
Product targetProduct = this.createProduct(owner);
Pool virtPool = this.createPool(owner, targetProduct, 1L, new Date(), new Date());
virtPool.setAttribute(Product.Attributes.VIRT_ONLY, "true");
virtPool.setAttribute(Pool.Attributes.REQUIRES_HOST, host.getUuid());
poolCurator.merge(virtPool);
poolCurator.flush();
List<Pool> results = poolCurator.listAvailableEntitlementPools(c, (String) null, (Collection<String>) null, null);
assertEquals(0, results.size());
}
use of org.candlepin.model.GuestId in project candlepin by candlepin.
the class CriteriaRulesTest method requiresHostPoolAttributeFiltering.
@Test
public void requiresHostPoolAttributeFiltering() {
consumer = this.createConsumer(owner);
Consumer host = createConsumer(owner);
host.addGuestId(new GuestId("GUESTUUID", host));
consumerCurator.update(host);
Product targetProduct = this.createProduct(owner);
Pool virtPool = this.createPool(owner, targetProduct, 1L, new Date(), new Date());
virtPool.setAttribute(Product.Attributes.VIRT_ONLY, "true");
virtPool.setAttribute(Pool.Attributes.REQUIRES_HOST, host.getUuid());
poolCurator.merge(virtPool);
// Another pool requiring a different host:
Pool anotherVirtPool = this.createPool(owner, targetProduct, 1L, new Date(), new Date());
anotherVirtPool.setAttribute(Product.Attributes.VIRT_ONLY, "true");
anotherVirtPool.setAttribute(Pool.Attributes.REQUIRES_HOST, "SOMEOTHERUUID");
poolCurator.merge(anotherVirtPool);
poolCurator.flush();
List<Pool> results = poolCurator.listAvailableEntitlementPools(consumer, (String) null, (Collection<String>) null, null);
assertEquals(0, results.size());
// Make the consumer a guest and try again:
consumer.setFact("virt.is_guest", "true");
consumer.setFact("virt.uuid", "GUESTUUID");
consumerCurator.update(consumer);
assertEquals(host.getUuid(), consumerCurator.getHost("GUESTUUID", owner.getId()).getUuid());
results = poolCurator.listAvailableEntitlementPools(consumer, (String) null, (Collection<String>) null, null);
assertEquals(1, results.size());
assertEquals(virtPool.getId(), results.get(0).getId());
}
use of org.candlepin.model.GuestId in project candlepin by candlepin.
the class CriteriaRulesTest method manifestConsumerVirtOnly.
@Test
public void manifestConsumerVirtOnly() {
// create a manifest consumer
ConsumerType type = new ConsumerType(ConsumerType.ConsumerTypeEnum.CANDLEPIN);
consumerTypeCurator.create(type);
Consumer c = new Consumer("test-consumer", "test-user", owner, type);
consumerCurator.create(c);
Consumer host = createConsumer(owner);
host.addGuestId(new GuestId("GUESTUUID", host));
consumerCurator.update(host);
Product targetProduct = this.createProduct(owner);
Pool virtPool = this.createPool(owner, targetProduct, 1L, new Date(), new Date());
virtPool.setAttribute(Product.Attributes.VIRT_ONLY, "true");
poolCurator.merge(virtPool);
poolCurator.flush();
List<Pool> results = poolCurator.listAvailableEntitlementPools(c, (String) null, (Collection<String>) null, null);
assertEquals(1, results.size());
}
use of org.candlepin.model.GuestId in project candlepin by candlepin.
the class ComplianceRulesTest method fullyCompliantVirtLimitStackWithInactiveGuests.
@Test
public void fullyCompliantVirtLimitStackWithInactiveGuests() {
Consumer c = mockConsumer(PRODUCT_1, PRODUCT_2);
for (int i = 0; i < 5; i++) {
c.addGuestId(new GuestId("" + i, c));
}
List<Entitlement> ents = new LinkedList<>();
ents.add(mockStackedEntitlement(c, STACK_ID_1, TestUtil.createProduct("Awesome Product"), PRODUCT_1, PRODUCT_2));
ents.add(mockStackedEntitlement(c, STACK_ID_1, TestUtil.createProduct("Awesome Product"), PRODUCT_1, PRODUCT_2));
ents.add(mockStackedEntitlement(c, STACK_ID_1, TestUtil.createProduct("Awesome Product"), PRODUCT_1, PRODUCT_2));
ents.add(mockStackedEntitlement(c, STACK_ID_1, TestUtil.createProduct("Awesome Product"), PRODUCT_1, PRODUCT_2));
for (Entitlement ent : ents) {
ent.getPool().getProduct().setAttribute(Product.Attributes.GUEST_LIMIT, "4");
}
mockEntCurator(c, ents);
ComplianceStatus status = compliance.getStatus(c, TestUtil.createDate(2011, 8, 30));
assertEquals(0, status.getNonCompliantProducts().size());
assertEquals(0, status.getPartiallyCompliantProducts().size());
assertEquals(2, status.getCompliantProducts().size());
assertTrue(status.getCompliantProducts().keySet().contains(PRODUCT_1.getId()));
assertTrue(status.getCompliantProducts().keySet().contains(PRODUCT_2.getId()));
assertEquals(4, status.getCompliantProducts().get(PRODUCT_1.getId()).size());
assertEquals(4, status.getCompliantProducts().get(PRODUCT_2.getId()).size());
}
use of org.candlepin.model.GuestId in project candlepin by candlepin.
the class ComplianceRulesTest method fullyCompliantVirtLimitStackAllUnlimited.
@Test
public void fullyCompliantVirtLimitStackAllUnlimited() {
Consumer c = mockConsumer(PRODUCT_1, PRODUCT_2);
for (int i = 0; i < 5; i++) {
c.addGuestId(new GuestId("" + i, c, activeGuestAttrs));
}
List<Entitlement> ents = new LinkedList<>();
ents.add(mockStackedEntitlement(c, STACK_ID_1, TestUtil.createProduct("Awesome Product"), PRODUCT_1, PRODUCT_2));
ents.add(mockStackedEntitlement(c, STACK_ID_1, TestUtil.createProduct("Awesome Product"), PRODUCT_1, PRODUCT_2));
ents.add(mockStackedEntitlement(c, STACK_ID_1, TestUtil.createProduct("Awesome Product"), PRODUCT_1, PRODUCT_2));
ents.add(mockStackedEntitlement(c, STACK_ID_1, TestUtil.createProduct("Awesome Product"), PRODUCT_1, PRODUCT_2));
for (Entitlement ent : ents) {
ent.getPool().getProduct().setAttribute(Product.Attributes.GUEST_LIMIT, "-1");
}
mockEntCurator(c, ents);
ComplianceStatus status = compliance.getStatus(c, TestUtil.createDate(2011, 8, 30));
assertEquals(0, status.getNonCompliantProducts().size());
assertEquals(2, status.getCompliantProducts().size());
assertEquals(0, status.getPartiallyCompliantProducts().size());
assertTrue(status.getCompliantProducts().keySet().contains(PRODUCT_1.getId()));
assertTrue(status.getCompliantProducts().keySet().contains(PRODUCT_2.getId()));
assertEquals(4, status.getCompliantProducts().get(PRODUCT_1.getId()).size());
assertEquals(4, status.getCompliantProducts().get(PRODUCT_2.getId()).size());
}
Aggregations