ApplicationRolesStore { public Optional<ApplicationRoles> readApplicationRoles(ApplicationId application) { try { Optional<byte[]> data = curator.getData(applicationRolesPath(application)); if (data.isEmpty() || data.get().length == 0) return Optional.empty(); Slime slime = SlimeUtils.jsonToSlime(data.get()); ApplicationRoles applicationRoles = ApplicationRolesSerializer.fromSlime(slime.get()); return Optional.of(applicationRoles); } catch (Exception e) { throw new RuntimeException("Error reading application roles of " + application, e); } } ApplicationRolesStore(Curator curator, Path tenantPath); Optional<ApplicationRoles> readApplicationRoles(ApplicationId application); void writeApplicationRoles(ApplicationId application, ApplicationRoles applicationRoles); CuratorTransaction delete(ApplicationId application);  }
@Test public void read_non_existent() { var applicationRolesStore = new ApplicationRolesStore(new MockCurator(), Path.createRoot()); Optional<ApplicationRoles> applicationRoles = applicationRolesStore.readApplicationRoles(ApplicationId.defaultId()); assertTrue(applicationRoles.isEmpty()); }