use of org.candlepin.model.CandlepinQuery in project candlepin by candlepin.
the class AtomFeedResourceTest method getEmptyFeed.
@Test
public void getEmptyFeed() {
CandlepinQuery cqmock = mock(CandlepinQuery.class);
when(cqmock.list()).thenReturn(new ArrayList<Event>());
when(ec.listMostRecent(eq(1000))).thenReturn(cqmock);
Feed f = afr.getFeed();
assertNotNull(f);
assertTrue(f.getEntries().isEmpty());
}
use of org.candlepin.model.CandlepinQuery in project candlepin by candlepin.
the class PoolRulesStackDerivedTest method virtLimitFromFirstVirtLimitEntBatch.
@Test
public void virtLimitFromFirstVirtLimitEntBatch() {
CandlepinQuery cqmock = mock(CandlepinQuery.class);
stackedEnts.clear();
Entitlement e1 = createEntFromPool(pool1);
e1.setQuantity(4);
stackedEnts.add(e1);
Entitlement e2 = createEntFromPool(pool4);
e2.setQuantity(16);
stackedEnts.add(e2);
Class<Set<String>> listClass = (Class<Set<String>>) (Class) HashSet.class;
ArgumentCaptor<Set<String>> arg = ArgumentCaptor.forClass(listClass);
when(cqmock.iterator()).thenReturn(stackedEnts.iterator());
when(entCurMock.findByStackIds(eq(consumer), arg.capture())).thenReturn(cqmock);
List<PoolUpdate> updates = poolRules.updatePoolsFromStack(consumer, Arrays.asList(stackDerivedPool, stackDerivedPool2), false);
Set<String> stackIds = arg.getValue();
assertEquals(2, stackIds.size());
assertThat(stackIds, hasItems(STACK, STACK + "3"));
for (PoolUpdate update : updates) {
assertTrue(update.changed());
assertTrue(update.getQuantityChanged());
}
assertEquals((Long) 2L, stackDerivedPool.getQuantity());
assertEquals((Long) 9L, stackDerivedPool2.getQuantity());
}
use of org.candlepin.model.CandlepinQuery in project candlepin by candlepin.
the class PoolRulesStackDerivedTest method setUp.
@Before
public void setUp() {
// Load the default production rules:
InputStream is = this.getClass().getResourceAsStream(RulesCurator.DEFAULT_RULES_FILE);
Rules rules = new Rules(Util.readFile(is));
when(rulesCuratorMock.getUpdated()).thenReturn(new Date());
when(rulesCuratorMock.getRules()).thenReturn(rules);
when(configMock.getInt(eq(ConfigProperties.PRODUCT_CACHE_MAX))).thenReturn(100);
poolRules = new PoolRules(poolManagerMock, configMock, entCurMock, ownerProductCuratorMock, productCurator);
principal = TestUtil.createOwnerPrincipal();
owner = principal.getOwners().get(0);
ConsumerType ctype = new ConsumerType(ConsumerTypeEnum.SYSTEM);
ctype.setId("test-ctype");
consumer = new Consumer("consumer", "registeredbybob", owner, ctype);
// Two subtly different products stacked together:
prod1 = TestUtil.createProduct("prod1", "prod1");
prod1.setAttribute(Product.Attributes.VIRT_LIMIT, "2");
prod1.setAttribute(Product.Attributes.STACKING_ID, STACK);
prod1.setAttribute("testattr1", "1");
when(ownerProductCuratorMock.getProductById(owner, prod1.getId())).thenReturn(prod1);
prod2 = TestUtil.createProduct("prod2", "prod2");
prod2.setAttribute(Product.Attributes.VIRT_LIMIT, "unlimited");
prod2.setAttribute(Product.Attributes.STACKING_ID, STACK);
prod2.setAttribute("testattr2", "2");
when(ownerProductCuratorMock.getProductById(owner, prod2.getId())).thenReturn(prod2);
prod3 = TestUtil.createProduct("prod3", "prod3");
prod3.setAttribute(Product.Attributes.VIRT_LIMIT, "9");
prod3.setAttribute(Product.Attributes.STACKING_ID, STACK + "3");
prod3.setAttribute("testattr2", "2");
when(ownerProductCuratorMock.getProductById(owner, prod3.getId())).thenReturn(prod3);
provided1 = TestUtil.createProduct();
provided2 = TestUtil.createProduct();
provided3 = TestUtil.createProduct();
provided4 = TestUtil.createProduct();
// Create three subscriptions with various start/end dates:
sub1 = createStackedVirtSub(owner, prod1, TestUtil.createDate(2010, 1, 1), TestUtil.createDate(2015, 1, 1));
sub1.getProvidedProducts().add(provided1.toDTO());
pool1 = copyFromSub(sub1);
sub2 = createStackedVirtSub(owner, prod2, TestUtil.createDate(2011, 1, 1), TestUtil.createDate(2017, 1, 1));
sub2.getProvidedProducts().add(provided2.toDTO());
pool2 = copyFromSub(sub2);
sub3 = createStackedVirtSub(owner, prod2, TestUtil.createDate(2012, 1, 1), TestUtil.createDate(2020, 1, 1));
sub3.getProvidedProducts().add(provided3.toDTO());
pool3 = copyFromSub(sub3);
sub4 = createStackedVirtSub(owner, prod3, TestUtil.createDate(2012, 1, 1), TestUtil.createDate(2020, 1, 1));
sub4.getProvidedProducts().add(provided4.toDTO());
pool4 = copyFromSub(sub4);
// Initial entitlement from one of the pools:
stackedEnts.add(createEntFromPool(pool2));
CandlepinQuery cqmock = mock(CandlepinQuery.class);
when(cqmock.list()).thenReturn(stackedEnts);
when(entCurMock.findByStackId(consumer, STACK)).thenReturn(cqmock);
pool2.setAttribute(Product.Attributes.VIRT_LIMIT, "60");
pool4.setAttribute(Product.Attributes.VIRT_LIMIT, "80");
List<Pool> reqPools = new ArrayList<>();
reqPools.add(pool2);
Map<String, Entitlement> entitlements = new HashMap<>();
entitlements.put(pool2.getId(), stackedEnts.get(0));
Map<String, Map<String, String>> attributes = new HashMap<>();
attributes.put(pool2.getId(), PoolHelper.getFlattenedAttributes(pool2));
when(poolManagerMock.createPools(Matchers.anyListOf(Pool.class))).then(returnsFirstArg());
List<Pool> resPools = PoolHelper.createHostRestrictedPools(poolManagerMock, consumer, reqPools, entitlements, attributes, productCurator);
stackDerivedPool = resPools.get(0);
reqPools.clear();
reqPools.add(pool4);
entitlements.clear();
entitlements.put(pool4.getId(), createEntFromPool(pool4));
attributes.clear();
attributes.put(pool4.getId(), PoolHelper.getFlattenedAttributes(pool4));
stackDerivedPool2 = PoolHelper.createHostRestrictedPools(poolManagerMock, consumer, reqPools, entitlements, attributes, productCurator).get(0);
}
use of org.candlepin.model.CandlepinQuery in project candlepin by candlepin.
the class ComplianceRulesTest method entIsCompliantWhenSocketsAreCovered.
@Test
public void entIsCompliantWhenSocketsAreCovered() {
Consumer c = mockConsumer(PRODUCT_1);
c.setFact("cpu.cpu_socket(s)", "4");
Entitlement ent = mockEntitlement(c, PRODUCT_1);
ent.getPool().getProduct().setAttribute(Product.Attributes.SOCKETS, "4");
CandlepinQuery cqmock = mock(CandlepinQuery.class);
when(cqmock.list()).thenReturn(Arrays.asList(ent));
when(entCurator.listByConsumerAndDate(eq(c), any(Date.class))).thenReturn(cqmock);
assertTrue(compliance.isEntitlementCompliant(c, ent, new Date()));
}
use of org.candlepin.model.CandlepinQuery in project candlepin by candlepin.
the class ComplianceRulesTest method mockEntCurator.
private void mockEntCurator(Consumer c, List<Entitlement> ents) {
CandlepinQuery cqmock = mock(CandlepinQuery.class);
c.setEntitlements(new HashSet<>(ents));
when(cqmock.list()).thenReturn(ents);
when(entCurator.listByConsumer(eq(c))).thenReturn(ents);
when(entCurator.listByConsumerAndDate(eq(c), any(Date.class))).thenReturn(cqmock);
}
Aggregations