@Test
public void nextComponentIsLeaf() {
int id = 1;
storageBranchIndexer = new StorageBranchIndexer<>(delegateIndexer, null, id, true);
DefaultData defaultData = mock(DefaultData.class);
InvocationSequenceData invocationSequenceData = mock(InvocationSequenceData.class);
IStorageTreeComponent<DefaultData> component = storageBranchIndexer.getNextTreeComponent(defaultData);
assertThat(component, is(instanceOf(LeafWithNoDescriptors.class)));
LeafWithNoDescriptors<DefaultData> leaf = (LeafWithNoDescriptors<DefaultData>) component;
assertThat(leaf.getId(), is(id));
component = storageBranchIndexer.getNextTreeComponent(invocationSequenceData);
assertThat(component, is(instanceOf(ArrayBasedStorageLeaf.class)));
ArrayBasedStorageLeaf<DefaultData> arrayLeaf = (ArrayBasedStorageLeaf<DefaultData>) component;
assertThat(arrayLeaf.getId(), is(id));
storageBranchIndexer = new StorageBranchIndexer<>(delegateIndexer, null, id, false);
component = storageBranchIndexer.getNextTreeComponent(defaultData);
assertThat(component, is(instanceOf(LeafWithNoDescriptors.class)));
leaf = (LeafWithNoDescriptors<DefaultData>) component;
assertThat(leaf.getId(), is(not(id)));
component = storageBranchIndexer.getNextTreeComponent(invocationSequenceData);
assertThat(component, is(instanceOf(ArrayBasedStorageLeaf.class)));
arrayLeaf = (ArrayBasedStorageLeaf<DefaultData>) component;
assertThat(arrayLeaf.getId(), is(not(id)));
}