@After
 public void tearDown() throws Exception {
   if (policy.getId() != null) repository.deleteById(policy.getId());
   for (ComponentPolicy cpuPolicy : cpuPolicies) {
     if (cpuPolicy.getId() != null) repository.deleteComponentPolicy(cpuPolicy);
   }
 }
  @Test
  public void testFindAllPoliciesWithTheSameId() throws Exception {
    expect(algorithm.getId()).andReturn("testId");
    expect(decisionAlgorithms.isRuleAlgorithmProvided("testId")).andReturn(true);
    l.policyAdded(p1v2);
    expect(algorithm.getId()).andReturn("testId");
    expect(decisionAlgorithms.isRuleAlgorithmProvided("testId")).andReturn(true);
    l.policyAdded(p1v1);
    expect(algorithm.getId()).andReturn("testId");
    expect(decisionAlgorithms.isRuleAlgorithmProvided("testId")).andReturn(true);
    l.policyAdded(p1v3);
    expect(algorithm.getId()).andReturn("testId");
    expect(decisionAlgorithms.isRuleAlgorithmProvided("testId")).andReturn(true);
    l.policyAdded(p1v4);

    c.replay();

    r.add(p1v2);
    r.add(p1v1);
    r.add(p1v3);
    r.add(p1v4);

    Collection<Policy> found = r.getPolicies("id1", null, null, null);
    assertEquals(4, found.size());
    Iterator<Policy> it = found.iterator();

    assertEquals(Version.parse("1"), it.next().getVersion());
    assertEquals(Version.parse("1.1"), it.next().getVersion());
    assertEquals(Version.parse("1.2.1"), it.next().getVersion());
    assertEquals(Version.parse("2.0.1"), it.next().getVersion());

    c.verify();
  }
 @Test
 public void testUpdate() throws Exception {
   repository.create(policy);
   policy.setLabel("new-policy");
   repository.update(policy);
   ResourcePolicy anotherInstance = repository.findById(policy.getId());
   assertEquals("new-policy", anotherInstance.getLabel());
 }
 @Test
 public void testCreateComponentPolicy() throws Exception {
   repository.create(policy);
   for (ComponentPolicy cpuPolicy : cpuPolicies) {
     cpuPolicy.setResourcePolicyId(policy.getId());
     repository.createComponentPolicy(cpuPolicy);
   }
   ResourcePolicy newPolicy = repository.findById(policy.getId());
   assertNotNull(newPolicy.getComponents());
   assertEquals(1, newPolicy.getComponents().length);
 }
  @Test
  public void testOnePolicyDifferentVersion() throws Exception {

    expect(algorithm.getId()).andReturn("testId");
    expect(decisionAlgorithms.isRuleAlgorithmProvided("testId")).andReturn(true);
    l.policyAdded(p1v1);
    expect(algorithm.getId()).andReturn("testId");
    expect(decisionAlgorithms.isRuleAlgorithmProvided("testId")).andReturn(true);
    l.policyAdded(p1v2);
    expect(algorithm.getId()).andReturn("testId");
    expect(decisionAlgorithms.isRuleAlgorithmProvided("testId")).andReturn(true);
    l.policyAdded(p1v3);
    expect(algorithm.getId()).andReturn("testId");
    expect(decisionAlgorithms.isRuleAlgorithmProvided("testId")).andReturn(true);
    l.policyAdded(p1v4);

    c.replay();

    r.add(p1v1);
    r.add(p1v2);
    r.add(p1v3);
    r.add(p1v4);

    CompositeDecisionRule p = r.get("id1", Version.parse("1.0"));
    assertEquals(p1v1, p);
    p = r.get("id1", Version.parse("1.1"));
    assertEquals(p1v2, p);
    p = r.get("id1", Version.parse("1.2.1"));
    assertEquals(p1v3, p);
    p = r.get("id1", Version.parse("2.0.1"));
    assertEquals(p1v4, p);

    Collection<Policy> found = r.getPolicies("id1", VersionMatch.parse("1.+"));
    assertEquals(3, found.size());
    Iterator<Policy> it = found.iterator();

    // sorted by version
    assertEquals(Version.parse("1"), it.next().getVersion());
    assertEquals(Version.parse("1.1"), it.next().getVersion());
    assertEquals(Version.parse("1.2.1"), it.next().getVersion());

    found = r.getPolicies("id1", VersionMatch.parse("1.2.+"));
    assertEquals(1, found.size());

    found = r.getPolicies("id1", VersionMatch.parse("1.+"), VersionMatch.parse("1.2.*"));
    assertEquals(1, found.size());

    Policy policy = r.getPolicy("id1", null, null, null);
    assertEquals(Version.parse("2.0.1"), policy.getVersion());

    c.verify();
  }
  @Test
  public void testUpdateComponentPolicy() throws Exception {
    repository.create(policy);
    for (ComponentPolicy cpuPolicy : cpuPolicies) {
      cpuPolicy.setResourcePolicyId(policy.getId());
      repository.createComponentPolicy(cpuPolicy);
    }
    cpuPolicies[0].setCriteria("new-criteria");
    repository.updateComponentPolicy(cpuPolicies[0]);

    ResourcePolicy newPolicy = repository.findById(policy.getId());
    assertNotNull(newPolicy.getComponents());
    assertEquals(1, newPolicy.getComponents().length);
    assertEquals("new-criteria", newPolicy.getComponents()[0].getCriteria());
  }
 @Test
 public void testAddPolicyWithTheSameIdAndSameVersion() {
   expect(algorithm.getId()).andReturn("testId");
   expect(decisionAlgorithms.isRuleAlgorithmProvided("testId")).andReturn(true);
   l.policyAdded(p1v2);
   expect(algorithm.getId()).andReturn("testId");
   expect(decisionAlgorithms.isRuleAlgorithmProvided("testId")).andReturn(true);
   c.replay();
   assertTrue(r.add(p1v2));
   assertFalse(r.add(p1v2DiffInstance));
   Policy p = (Policy) r.get("id1", Version.parse("1.1"));
   assertSame(p1v2, p);
   assertNotSame(p1v2DiffInstance, p);
   c.verify();
 }
  @Test
  public void testAddRemove() throws Exception {
    expect(algorithm.getId()).andReturn("testId");
    expect(decisionAlgorithms.isRuleAlgorithmProvided("testId")).andReturn(true);
    l.policyAdded(p1v2);
    l.policyRemoved(p1v2);
    c.replay();

    r.add(p1v2);

    CompositeDecisionRule p = r.get("id1", Version.parse("1.0"));
    assertNull(p);
    p = r.get("id1", Version.parse("1.1"));
    assertEquals(p1v2, p);
    r.remove(p1v2);

    Collection<Policy> found = r.getPolicies("id1", VersionMatch.parse("1.+"));
    assertEquals(0, found.size());

    c.verify();
  }
 @Test
 public void testDeleteById() throws Exception {
   repository.create(policy);
   repository.deleteById(policy.getId());
   policy.setId(null);
 }
예제 #10
0
 @Test
 public void testCreate() throws Exception {
   repository.create(policy);
   assertNotNull(policy.getId());
 }
예제 #11
0
 @Test
 public void testFindById() throws Exception {
   ResourcePolicy policy = repository.findById(1L);
   assertNotNull(policy);
 }
예제 #12
0
 @Test
 public void testFindAllByResourceType() throws Exception {
   assertEquals(3, repository.findAllByResourceType("/dev/host").size());
 }