예제 #1
0
  @Test
  public void testAccessDetailMultipleKeys() throws OseeCoreException {
    AccessDetail<?> detail1 =
        MockDataFactory.createAccessDetails(
            relTypeSide1, PermissionEnum.DENY, "item 1 - deny", new Scope().add("same_scope"));
    AccessDetail<?> detail2 =
        MockDataFactory.createAccessDetails(
            relTypeSide1, PermissionEnum.WRITE, "item 2 - write", new Scope().add("same_scope"));

    AccessData data = new AccessData();
    data.add(branchToCheck1, detail1);
    data.add(branchToCheck2, detail2);

    Set<Object> keys = data.keySet();
    Assert.assertEquals(2, keys.size());
    Assert.assertTrue(keys.contains(branchToCheck1));
    Assert.assertTrue(keys.contains(branchToCheck2));

    Collection<AccessDetail<?>> details = data.getAccess(branchToCheck1);
    Assert.assertTrue(details.size() == 1);
    AccessDetail<?> actualDetail = details.iterator().next();
    Assert.assertEquals(detail1, actualDetail);

    details = data.getAccess(branchToCheck2);
    Assert.assertTrue(details.size() == 1);
    actualDetail = details.iterator().next();
    Assert.assertEquals(detail2, actualDetail);
    Assert.assertEquals("/same_scope", actualDetail.getScope().getPath());
  }
예제 #2
0
  @Test
  public void testAccessDetailLegacyScope() throws OseeCoreException {
    AccessDetail<?> specificDetail =
        MockDataFactory.createAccessDetails(
            relTypeSide1,
            PermissionEnum.DENY,
            "item 1 - deny",
            new Scope().add("more").add("specific").add("scope"));
    AccessDetail<?> lessSpecificDetail =
        MockDataFactory.createAccessDetails(
            relTypeSide1,
            PermissionEnum.WRITE,
            "item 2 - write",
            new Scope().add("less").add("specific"));
    AccessDetail<?> legacyDetail =
        MockDataFactory.createAccessDetails(
            relTypeSide1, PermissionEnum.WRITE, "item 2 - write", Scope.createLegacyScope());

    AccessData data = new AccessData();
    data.add(branchToCheck1, specificDetail);
    data.add(branchToCheck1, legacyDetail);
    data.add(branchToCheck1, lessSpecificDetail);

    Collection<AccessDetail<?>> details = data.getAccess(branchToCheck1);
    Assert.assertTrue(details.size() == 1);
    AccessDetail<?> actualDetail = details.iterator().next();
    Assert.assertEquals(specificDetail, actualDetail);
    Assert.assertEquals("/more/specific/scope", actualDetail.getScope().getPath());
    Assert.assertEquals(PermissionEnum.DENY, actualDetail.getPermission());
  }
예제 #3
0
  @Test
  public void testAddAll() throws OseeCoreException {
    Collection<AccessDetail<?>> expectedDetails = new ArrayList<AccessDetail<?>>();
    createTestObjects(
        expectedDetails,
        branchToCheck1,
        artifactType,
        attributeType,
        wordAttributeType,
        artifactToCheck,
        relTypeSide1,
        relTypeSide2,
        branchToCheck2);

    AccessData data = new AccessData();
    data.addAll(artifactToCheck, expectedDetails);
    Collection<AccessDetail<?>> actualDetails = data.getAccess(artifactToCheck);
    Assert.assertEquals(expectedDetails.size(), actualDetails.size());
    Assert.assertFalse(Compare.isDifferent(expectedDetails, actualDetails));

    for (AccessDetail<?> expectedDetail : expectedDetails) {
      AccessDetail<?> actualDetail = findObject(expectedDetail, actualDetails);
      ModelAsserts.assertEquals(expectedDetail, actualDetail);
    }
  }
예제 #4
0
  @Test
  public void testAccessDetailMerge() throws OseeCoreException {
    AccessData data = new AccessData();

    AccessDetail<?> detail1 =
        MockDataFactory.createAccessDetails(
            relTypeSide1, PermissionEnum.DENY, "item 1 - deny", new Scope().add("same_scope"));
    AccessDetail<?> detail2 =
        MockDataFactory.createAccessDetails(
            relTypeSide1, PermissionEnum.WRITE, "item 2 - write", new Scope().add("same_scope"));
    data.add(artifactToCheck, detail1);
    data.add(artifactToCheck, detail2);

    Collection<AccessDetail<?>> details = data.getAccess(artifactToCheck);
    Assert.assertTrue(details.size() == 1);
    AccessDetail<?> actualDetail = details.iterator().next();
    Assert.assertEquals(detail1.getAccessObject(), actualDetail.getAccessObject());
    Assert.assertEquals(detail2.getAccessObject(), actualDetail.getAccessObject());

    Assert.assertEquals(PermissionEnum.DENY, actualDetail.getPermission());
    Assert.assertEquals("item 1 - deny", actualDetail.getReason());
    Assert.assertEquals("/same_scope", actualDetail.getScope().getPath());
  }
예제 #5
0
 @Test(expected = OseeArgumentException.class)
 public void testGetAccessNullCheck() throws OseeCoreException {
   AccessData data = new AccessData();
   data.getAccess(null);
 }