filebot/test/net/filebot/ui/rename/MatchModelTest.java

104 lines
2.7 KiB
Java
Raw Permalink Normal View History

2014-04-19 02:30:29 -04:00
package net.filebot.ui.rename;
2009-05-17 13:22:44 -04:00
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
import ca.odell.glazedlists.GlazedLists;
2016-03-13 09:32:26 -04:00
import net.filebot.similarity.Match;
public class MatchModelTest {
2015-07-25 18:47:19 -04:00
@Test
public void addAll() {
MatchModel<String, Integer> model = new MatchModel<String, Integer>();
2015-07-25 18:47:19 -04:00
List<String> names = Arrays.asList("A", "B", "C", "D", "E");
List<Integer> values = Arrays.asList(1, 2, 3);
2015-07-25 18:47:19 -04:00
model.addAll(Arrays.asList("A", "B", "C", "D", "E"), Arrays.asList(1, 2, 3));
2015-07-25 18:47:19 -04:00
assertEquals(5, model.size(), 0);
2015-07-25 18:47:19 -04:00
for (int i = 0; i < model.size(); i++) {
String name = i < names.size() ? names.get(i) : null;
Integer value = i < values.size() ? values.get(i) : null;
2015-07-25 18:47:19 -04:00
// check model and views
assertMatchEquals(name, value, model.matches().get(i));
assertEquals(name, model.values().get(i));
assertEquals(value, model.candidates().get(i));
}
}
2015-07-25 18:47:19 -04:00
@Test
public void matchViewElements() {
MatchModel<String, Integer> model = new MatchModel<String, Integer>();
model.addAll(Arrays.asList("A", "B", "C"), Arrays.asList(1, 2, 3, 4, 5));
2015-07-25 18:47:19 -04:00
model.values().add("D");
assertMatchEquals("D", 4, model.getMatch(3));
2015-07-25 18:47:19 -04:00
model.values().add(1, "A2");
assertMatchEquals("C", 4, model.getMatch(3));
2015-07-25 18:47:19 -04:00
model.candidates().remove(3);
assertMatchEquals("C", 5, model.getMatch(3));
2015-07-25 18:47:19 -04:00
model.candidates().remove(3);
assertMatchEquals("C", null, model.getMatch(3));
2015-07-25 18:47:19 -04:00
model.matches().remove(0);
assertMatchEquals("A2", 2, model.getMatch(0));
2015-07-25 18:47:19 -04:00
model.values().set(0, "A");
assertMatchEquals("A", 2, model.getMatch(0));
}
2015-07-25 18:47:19 -04:00
@Test
public void matchViewClear() {
MatchModel<String, Integer> model = new MatchModel<String, Integer>();
2015-07-25 18:47:19 -04:00
model.values().addAll(Arrays.asList("A", "B", "C"));
model.candidates().addAll(Arrays.asList(1, 2, 3, 4, 5));
2015-07-25 18:47:19 -04:00
model.values().clear();
2015-07-25 18:47:19 -04:00
assertEquals(0, model.values().size(), 0);
assertEquals(5, model.candidates().size(), 0);
2015-07-25 18:47:19 -04:00
model.values().addAll(Arrays.asList("A", "B", "C"));
2015-07-25 18:47:19 -04:00
assertMatchEquals("A", 1, model.getMatch(0));
assertMatchEquals("C", 3, model.getMatch(2));
}
2015-07-25 18:47:19 -04:00
@Test
public void matchViewListEvents() {
MatchModel<String, Integer> model = new MatchModel<String, Integer>();
2015-07-25 18:47:19 -04:00
ArrayList<String> copy = new ArrayList<String>();
GlazedLists.syncEventListToList(model.values(), copy);
2015-07-25 18:47:19 -04:00
model.addAll(Arrays.asList("A", "B", "C"), Arrays.asList(1, 2, 3, 4, 5));
2015-07-25 18:47:19 -04:00
assertArrayEquals(Arrays.asList("A", "B", "C").toArray(), copy.toArray());
}
2015-07-25 18:47:19 -04:00
private static <V, C> void assertMatchEquals(V expectedValue, C expectedCandidate, Match<V, C> actual) {
assertEquals(expectedValue, actual.getValue());
assertEquals(expectedCandidate, actual.getCandidate());
}
}