final StorageItem item = getRootRouter().retrieveItem(request);
// marker arrived back in item context
assertThat(item.getItemContext().flatten(), hasKey(MARKER_KEY));
// is a collection
assertThat(item, instanceOf(StorageCollectionItem.class));
final StorageCollectionItem root = (StorageCollectionItem) item;
final Collection<StorageItem> children = root.list();
for (StorageItem child : children) {
// marker arrived back in item context even for children
assertThat(child.getItemContext().flatten(), hasKey(MARKER_KEY));
}
}
// group repo access
{
final ResourceStoreRequest request = createRequest("/repositories/test/a.txt");
final StorageItem item = getRootRouter().retrieveItem(request);
// marker arrived back in item context
assertThat(item.getItemContext().flatten(), hasKey(MARKER_KEY));
}
{
final ResourceStoreRequest request = createRequest("/repositories/test/b.txt");
// b.txt is a LINK, and root router will auto-resolve it to a.txt
final StorageItem item = getRootRouter().retrieveItem(request);
// dereferencing did occur (note: we asked for b.txt!)
assertThat(item.getRepositoryItemUid().getPath(), equalTo("/a.txt"));
// marker arrived back in item context
assertThat(item.getItemContext().flatten(), hasKey(MARKER_KEY));
}
{
final ResourceStoreRequest request = createRequest("/repositories/test/");
final StorageItem item = getRootRouter().retrieveItem(request);
// marker arrived back in item context
assertThat(item.getItemContext().flatten(), hasKey(MARKER_KEY));
// is a collection
assertThat(item, instanceOf(StorageCollectionItem.class));
final StorageCollectionItem root = (StorageCollectionItem) item;
final Collection<StorageItem> children = root.list();
for (StorageItem child : children) {
// marker arrived back in item context even for children
assertThat(child.getItemContext().flatten(), hasKey(MARKER_KEY));
}
}
// virtual items
{
final ResourceStoreRequest request = createRequest("/repositories/");
final StorageItem item = getRootRouter().retrieveItem(request);
// marker arrived back in item context
assertThat(item.getItemContext().flatten(), hasKey(MARKER_KEY));
// is a collection
assertThat(item, instanceOf(StorageCollectionItem.class));
final StorageCollectionItem root = (StorageCollectionItem) item;
final Collection<StorageItem> children = root.list();
for (StorageItem child : children) {
// marker arrived back in item context even for children
assertThat(child.getItemContext().flatten(), hasKey(MARKER_KEY));
}
}