### Question:
PageDatastore extends CommonDatastore<PageItem, Page> implements DatastoreHasAdd<PageItem>, DatastoreHasUpdate<PageItem>,
        DatastoreHasGet<PageItem>, DatastoreHasSearch<PageItem>, DatastoreHasDelete { protected boolean isPageTokenValid(final String urlToken) { return urlToken.matches(PAGE_TOKEN_PREFIX + "\\p{Alnum}+"); } PageDatastore(final APISession engineSession, final WebBonitaConstantsUtils constantsValue,
            final PageAPI pageAPI,
            final CustomPageService customPageService,
            final CompoundPermissionsMapping compoundPermissionsMapping,
            final ResourcesPermissionsMapping resourcesPermissionsMapping,
            final BonitaHomeFolderAccessor tenantFolder); @Override PageItem add(final PageItem pageItem); @Override PageItem get(final APIID id); @Override void delete(final List<APIID> ids); @Override ItemSearchResult<PageItem> search(final int page, final int resultsByPage, final String search,
            final String orders,
            final Map<String, String> filters); @Override PageItem update(final APIID id, final Map<String, String> attributes); static final String UNMAPPED_ATTRIBUTE_ZIP_FILE; }### Answer:
@Test public void should_IsPageTokenValid_returns_true_when_url_token_starts_with_custom_page_prefix() { assertThat(pageDatastore.isPageTokenValid(PageDatastore.PAGE_TOKEN_PREFIX + "anySuffix123456")).isTrue(); }
@Test public void should_IsPageTokenValid_returns_false_when_url_token_contains_non_alphanumeric_values() { assertThat(pageDatastore.isPageTokenValid(PageDatastore.PAGE_TOKEN_PREFIX + "suffixxx_dsqds")).isFalse(); }
@Test public void should_IsPageTokenValid_returns_false_when_url_token_does_not_starts_with_custom_page_prefix() { assertThat(pageDatastore.isPageTokenValid("WrongStartString" + PageDatastore.PAGE_TOKEN_PREFIX + "suffixx")).isFalse(); }