/**
* Copyright (c) 2012, 2013 Tasktop Technologies and others.
* 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
*
* Contributors:
* Tasktop Technologies - initial API and implementation
*/
package org.eclipse.mylyn.reviews.core.model;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.sameInstance;
import static org.junit.Assert.assertThat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.eclipse.mylyn.reviews.internal.core.model.ReviewsFactory;
import org.junit.Before;
import org.junit.Test;
public class IndexedTest {
private ILineLocation l1;
private ILineLocation l2;
@Before
public void setup() {
l1 = ReviewsFactory.eINSTANCE.createLineLocation();
ILineRange l1r1 = ReviewsFactory.eINSTANCE.createLineRange();
l1r1.setStart(100);
l1r1.setEnd(100);
l1.getRanges().add(l1r1);
ILineRange l1r2 = ReviewsFactory.eINSTANCE.createLineRange();
l1r2.setStart(200);
l1r2.setEnd(200);
l1.getRanges().add(l1r2);
assertThat(l1.getRangeMin(), is(100));
assertThat(l1.getRangeMax(), is(200));
l2 = ReviewsFactory.eINSTANCE.createLineLocation();
ILineRange l2r1 = ReviewsFactory.eINSTANCE.createLineRange();
l2r1.setStart(10000);
l2r1.setEnd(10000);
l2.getRanges().add(l2r1);
ILineRange l2r2 = ReviewsFactory.eINSTANCE.createLineRange();
l2r2.setStart(30);
l2r2.setEnd(30);
l2.getRanges().add(l2r2);
assertThat(l2.getRangeMin(), is(30));
assertThat(l2.getRangeMax(), is(10000));
}
@Test
public void testLineLocation() {
List<ILineLocation> orderable = new ArrayList<ILineLocation>();
orderable.add(l1);
orderable.add(l2);
Collections.sort(orderable, IIndexed.COMPARATOR);
assertThat(orderable.get(0), sameInstance(l2));
assertThat(orderable.get(1), sameInstance(l1));
}
@Test
public void testComment() {
IComment c1 = ReviewsFactory.eINSTANCE.createComment();
IComment c2 = ReviewsFactory.eINSTANCE.createComment();
c1.getLocations().add(l1);
c2.getLocations().add(l2);
List<IComment> orderable = new ArrayList<IComment>();
orderable.add(c1);
orderable.add(c2);
Collections.sort(orderable, IIndexed.COMPARATOR);
assertThat(orderable.get(0), sameInstance(c2));
assertThat(orderable.get(1), sameInstance(c1));
}
}