Repository: commons-text Updated Branches: refs/heads/myers-algo 38f79f914 -> f3cff64cc
Tests for ReplacementFinder Project: http://git-wip-us.apache.org/repos/asf/commons-text/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-text/commit/f3cff64c Tree: http://git-wip-us.apache.org/repos/asf/commons-text/tree/f3cff64c Diff: http://git-wip-us.apache.org/repos/asf/commons-text/diff/f3cff64c Branch: refs/heads/myers-algo Commit: f3cff64cca0be82d9974ae210ff6cd3369819fbe Parents: 38f79f9 Author: Bruno P. Kinoshita <ki...@apache.org> Authored: Mon Feb 9 23:38:06 2015 -0200 Committer: Bruno P. Kinoshita <ki...@apache.org> Committed: Mon Feb 9 23:38:06 2015 -0200 ---------------------------------------------------------------------- .../text/diff/ReplacementsFinderTest.java | 107 +++++++++++++++++++ .../text/diff/StringsComparatorTest.java | 3 + 2 files changed, 110 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-text/blob/f3cff64c/src/test/java/org/apache/commons/text/diff/ReplacementsFinderTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/text/diff/ReplacementsFinderTest.java b/src/test/java/org/apache/commons/text/diff/ReplacementsFinderTest.java new file mode 100644 index 0000000..d611475 --- /dev/null +++ b/src/test/java/org/apache/commons/text/diff/ReplacementsFinderTest.java @@ -0,0 +1,107 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.text.diff; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; +/** + * Tests for the ReplacementsFinder. + */ +@RunWith(Parameterized.class) +public class ReplacementsFinderTest { + private SimpleHandler handler = null; + private String left; + private String right; + private int skipped; + private Character[] from; + private Character[] to; + @Before + public void setUp() { + handler = new SimpleHandler(); + } + @Parameters + public static Collection<Object[]> data() { + return Arrays.asList(new Object[][] { + { + "branco", + "blanco", + 1, + new Character[] {'r'}, + new Character[] {'l'}}, + { + "test the blocks before you use it", + "try the blocks before you put it", + 25, + new Character[] {'e', 's', 't', 's', 'e'}, + new Character[] {'r', 'y', 'p', 't'} + } + }); + } + public ReplacementsFinderTest(String left, String right, int skipped, + Character[] from, Character[] to) { + this.left = left; + this.right = right; + this.skipped = skipped; + this.from = from; + this.to = to; + } + @Test + public void testReplacementsHandler() { + final StringsComparator sc = new StringsComparator(left, right); + final ReplacementsFinder<Character> replacementFinder = new ReplacementsFinder<>(handler); + sc.getScript().visit(replacementFinder); + assertEquals("Skipped characters do not match", skipped, handler.getSkipped()); + assertArrayEquals("From characters do not match", from, + handler.getFrom().toArray(new Character[0])); + assertArrayEquals("To characters do not match", to, + handler.getTo().toArray(new Character[0])); + } + // Helper RecplacementsHandler implementation for testing + private class SimpleHandler implements ReplacementsHandler<Character> { + private int skipped; + private List<Character> from; + private List<Character> to; + public SimpleHandler() { + skipped = 0; + from = new ArrayList<>(); + to = new ArrayList<>(); + } + public int getSkipped() { + return skipped; + } + public List<Character> getFrom() { + return from; + } + public List<Character> getTo() { + return to; + } + @Override + public void handleReplacement(int skipped, List<Character> from, List<Character> to) { + this.skipped += skipped; + this.from.addAll(from); + this.to.addAll(to); + } + } +} http://git-wip-us.apache.org/repos/asf/commons-text/blob/f3cff64c/src/test/java/org/apache/commons/text/diff/StringsComparatorTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/text/diff/StringsComparatorTest.java b/src/test/java/org/apache/commons/text/diff/StringsComparatorTest.java index a988581..02b77be 100644 --- a/src/test/java/org/apache/commons/text/diff/StringsComparatorTest.java +++ b/src/test/java/org/apache/commons/text/diff/StringsComparatorTest.java @@ -24,6 +24,9 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; +/** + * Tests for the StringsComparator. + */ public class StringsComparatorTest { private List<String> before;