Search in sources :

Example 16 with CandlepinQuery

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());
}
Also used : Event(org.candlepin.audit.Event) CandlepinQuery(org.candlepin.model.CandlepinQuery) Feed(org.jboss.resteasy.plugins.providers.atom.Feed) Test(org.junit.Test)

Example 17 with CandlepinQuery

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());
}
Also used : HashSet(java.util.HashSet) Set(java.util.Set) CandlepinQuery(org.candlepin.model.CandlepinQuery) Entitlement(org.candlepin.model.Entitlement) PoolUpdate(org.candlepin.policy.js.pool.PoolUpdate) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 18 with CandlepinQuery

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);
}
Also used : PoolRules(org.candlepin.policy.js.pool.PoolRules) HashMap(java.util.HashMap) InputStream(java.io.InputStream) ArrayList(java.util.ArrayList) CandlepinQuery(org.candlepin.model.CandlepinQuery) PoolRules(org.candlepin.policy.js.pool.PoolRules) Rules(org.candlepin.model.Rules) Date(java.util.Date) Consumer(org.candlepin.model.Consumer) Pool(org.candlepin.model.Pool) ConsumerType(org.candlepin.model.ConsumerType) Entitlement(org.candlepin.model.Entitlement) HashMap(java.util.HashMap) Map(java.util.Map) Before(org.junit.Before)

Example 19 with CandlepinQuery

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()));
}
Also used : Consumer(org.candlepin.model.Consumer) CandlepinQuery(org.candlepin.model.CandlepinQuery) Entitlement(org.candlepin.model.Entitlement) Date(java.util.Date) Test(org.junit.Test)

Example 20 with CandlepinQuery

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);
}
Also used : CandlepinQuery(org.candlepin.model.CandlepinQuery) Date(java.util.Date)

Aggregations

CandlepinQuery (org.candlepin.model.CandlepinQuery)50 Test (org.junit.Test)42 ArrayList (java.util.ArrayList)25 Date (java.util.Date)21 Consumer (org.candlepin.model.Consumer)20 Entitlement (org.candlepin.model.Entitlement)14 Owner (org.candlepin.model.Owner)14 Pool (org.candlepin.model.Pool)14 ConsumerType (org.candlepin.model.ConsumerType)12 Product (org.candlepin.model.Product)11 List (java.util.List)10 ConsumerInstalledProduct (org.candlepin.model.ConsumerInstalledProduct)10 MockResultIterator (org.candlepin.test.MockResultIterator)10 LinkedList (java.util.LinkedList)9 CertificateSerial (org.candlepin.model.CertificateSerial)9 InputStream (java.io.InputStream)8 HashSet (java.util.HashSet)8 Rules (org.candlepin.model.Rules)8 Matchers.anyString (org.mockito.Matchers.anyString)8 File (java.io.File)7