/*******************************************************************************
* Copyright (c) 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
* accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package org.eclipse.tracecompass.segmentstore.core.tests;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import java.util.Arrays;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.tracecompass.internal.segmentstore.core.treemap.TreeMapStore;
import org.eclipse.tracecompass.segmentstore.core.BasicSegment;
import org.eclipse.tracecompass.segmentstore.core.ISegment;
import org.eclipse.tracecompass.segmentstore.core.ISegmentStore;
import org.junit.Test;
/**
* Test specific behavior for a TreeMapStore segment store.
*
* @author France Lapointe Nguyen
*/
public class TreeMapStoreTest extends AbstractTestSegmentStore {
@Override
protected ISegmentStore<@NonNull ISegment> getSegmentStore() {
return new TreeMapStore<>();
}
/**
* The TreeMapStore does not have a bulk loader, if it ever gets one, it should be tested here.
*/
@Override
protected ISegmentStore<@NonNull ISegment> getSegmentStore(@NonNull ISegment @NonNull [] data) {
TreeMapStore<@NonNull ISegment> treeMapStore = new TreeMapStore<>();
treeMapStore.addAll(Arrays.asList(data));
return treeMapStore;
}
/**
* Try adding duplicate elements, they should be ignored
*/
@Test
public void testNoDuplicateElements() {
for (ISegment segment : SEGMENTS) {
boolean ret = fSegmentStore.add(new BasicSegment(segment.getStart(), segment.getEnd()));
assertFalse(ret);
}
assertEquals(SEGMENTS.size(), fSegmentStore.size());
}
}