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);
        }
    }
@Test
    public void read_non_existent() {
        var applicationRolesStore = new ApplicationRolesStore(new MockCurator(), Path.createRoot());
        Optional<ApplicationRoles> applicationRoles = applicationRolesStore.readApplicationRoles(ApplicationId.defaultId());
        assertTrue(applicationRoles.isEmpty());
    }