/******************************************************************************* * Copyright (c) 2008 xored software, Inc. * * 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: * xored software, Inc. - initial API and Implementation (Alex Panchenko) *******************************************************************************/ package org.eclipse.dltk.formatter.tests; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; import java.util.List; import org.eclipse.dltk.formatter.internal.ExcludeRegionList; import org.eclipse.jface.text.IRegion; import org.eclipse.jface.text.Region; import org.junit.Test; public class ExcludeRegionListTest { @Test public void testExcludes1() { ExcludeRegionList w = new ExcludeRegionList(); w.excludeRegion(new Region(0, 2)); w.excludeRegion(new Region(1, 2)); List<IRegion> excludes = w.getExcludes(); assertEquals(1, excludes.size()); assertEquals(new Region(0, 3), excludes.get(0)); } @Test public void testExcludes2() { ExcludeRegionList w = new ExcludeRegionList(); w.excludeRegion(new Region(0, 1)); w.excludeRegion(new Region(1, 2)); List<IRegion> excludes = w.getExcludes(); assertEquals(1, excludes.size()); assertEquals(new Region(0, 3), excludes.get(0)); } @Test public void testExcludes3() { ExcludeRegionList w = new ExcludeRegionList(); final Region r04 = new Region(0, 4); w.excludeRegion(r04); w.excludeRegion(new Region(1, 2)); List<IRegion> excludes = w.getExcludes(); assertEquals(1, excludes.size()); assertEquals(r04, excludes.get(0)); assertSame(r04, excludes.get(0)); } @Test public void testExcludes4() { ExcludeRegionList w = new ExcludeRegionList(); w.excludeRegion(new Region(0, 2)); w.excludeRegion(new Region(4, 2)); List<IRegion> excludes = w.getExcludes(); assertEquals(2, excludes.size()); assertEquals(new Region(0, 2), excludes.get(0)); assertEquals(new Region(4, 2), excludes.get(1)); } @Test public void testExcludes5() { ExcludeRegionList w = new ExcludeRegionList(); w.excludeRegion(new Region(0, 2)); w.excludeRegion(new Region(4, 2)); final Region r08 = new Region(0, 8); w.excludeRegion(r08); List<IRegion> excludes = w.getExcludes(); assertEquals(1, excludes.size()); assertEquals(r08, excludes.get(0)); assertSame(r08, excludes.get(0)); } @Test public void testExcludes6() { ExcludeRegionList w = new ExcludeRegionList(); final Region r = new Region(0, 4); w.excludeRegion(r); w.excludeRegion(new Region(1, 1)); List<IRegion> excludes = w.getExcludes(); assertEquals(1, excludes.size()); assertEquals(r, excludes.get(0)); assertSame(r, excludes.get(0)); } @Test public void testExcludes7() { ExcludeRegionList w = new ExcludeRegionList(); w.excludeRegion(new Region(2, 2)); IRegion[] ranges; ranges = w.selectValidRanges(0, 3); assertEquals(1, ranges.length); assertEquals(new Region(0, 2), ranges[0]); ranges = w.selectValidRanges(0, 5); assertEquals(2, ranges.length); assertEquals(new Region(0, 2), ranges[0]); assertEquals(new Region(4, 1), ranges[1]); ranges = w.selectValidRanges(2, 2); assertEquals(0, ranges.length); } }