ACLStorageProvider implements StorageProvider { @Override public Map<String, AclType> getSpaceACLs(String spaceId) { DuracloudUserDetails user = getCurrentUserDetails(); if (isAdmin(user) && !loaded) { return targetProvider.getSpaceACLs(spaceId); } waitForCache(); if (spaceACLMap.containsKey(spaceId)) { return spaceACLMap.get(spaceId); } else { Map<String, AclType> acls = targetProvider.getSpaceACLs(spaceId); spaceACLMap.put(spaceId, acls); return acls; } } ACLStorageProvider(StorageProvider targetProvider,
                              AccountChangeNotifier notifier,
                              DuraCloudRequestContextUtil requestContextUtil);  ACLStorageProvider(StorageProvider targetProvider,
                              SecurityContextUtil securityContextUtil,
                              AccountChangeNotifier notifier,
                              DuraCloudRequestContextUtil requestContextUtil); @Override StorageProviderType getStorageProviderType(); @Override Iterator<String> getSpaces(); @Override Iterator<String> getSpaceContents(String spaceId, String prefix); @Override List<String> getSpaceContentsChunked(String spaceId,
                                                String prefix,
                                                long maxResults,
                                                String marker); @Override void createSpace(String spaceId); @Override void deleteSpace(String spaceId); @Override Map<String, String> getSpaceProperties(String spaceId); @Override Map<String, AclType> getSpaceACLs(String spaceId); @Override void setSpaceACLs(String spaceId, Map<String, AclType> spaceACLs); @Override String addContent(String spaceId,
                             String contentId,
                             String contentMimeType,
                             Map<String, String> userProperties,
                             long contentSize,
                             String contentChecksum,
                             InputStream content); @Override String copyContent(String sourceSpaceId,
                              String sourceContentId,
                              String destSpaceId,
                              String destContentId); @Override RetrievedContent getContent(String spaceId, String contentId); @Override RetrievedContent getContent(String spaceId, String contentId, String range); @Override void deleteContent(String spaceId, String contentId); @Override void setContentProperties(String spaceId,
                                     String contentId,
                                     Map<String, String> contentProperties); @Override Map<String, String> getContentProperties(String spaceId,
                                                    String contentId);  }
@Test public void testGetSpaceACLs() throws Exception { setupNotification(); String spaceId = spacePrefix + 4; createMockStorageProvider(1); Map<String, AclType> origAcls = createSpaceACLs(); mockProvider.setSpaceACLs(spaceId, origAcls); expectLastCall().once(); replayMocks(); provider = createProvider(); Map<String, AclType> acls = provider.getSpaceACLs(spaceId); Assert.assertNotNull(acls); Assert.assertEquals(new HashMap<String, String>(), acls); provider.setSpaceACLs(spaceId, origAcls); acls = provider.getSpaceACLs(spaceId); Assert.assertEquals(origAcls, acls); acls = provider.getSpaceACLs(spaceId); Assert.assertNotNull(acls); Assert.assertEquals(origAcls, acls); }