@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()); }
@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()); }
@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); } }
@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()); }
@Test(expected = OseeArgumentException.class) public void testGetAccessNullCheck() throws OseeCoreException { AccessData data = new AccessData(); data.getAccess(null); }