/*
* Copyright "2"011 Blazebit
*/
package com.blazebit.comparator;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import org.junit.Test;
/**
* This test class tests the {@link GenericComparator}
*
* @author Thomas Herzog
*/
public class GenericComparatorTest {
@Test
public void testGenericComparator_string_value() {
List<CompareModel> values = Arrays.asList(new CompareModel("4"),
new CompareModel("3"), new CompareModel("2"), new CompareModel("1"));
List<CompareModel> expResult = Arrays.asList(new CompareModel("1"),
new CompareModel("2"), new CompareModel("3"), new CompareModel("4"));
Collections.sort(values, new GenericComparator<CompareModel>(CompareModel.PATH_VALUE));
assertEquals(expResult, values);
}
@Test
public void testGenericComparator_with_model_value() {
List<CompareModel> values = Arrays.asList(new CompareModel(new CompareModel("4")),
new CompareModel(new CompareModel("2")), new CompareModel(new CompareModel("3")), new CompareModel(new CompareModel("1")));
List<CompareModel> expResult = Arrays.asList(new CompareModel(new CompareModel("1")),
new CompareModel(new CompareModel("2")), new CompareModel(new CompareModel("3")), new CompareModel(new CompareModel("4")));
Collections.sort(values, new GenericComparator<CompareModel>(CompareModel.PATH_MODEL));
assertEquals(expResult, values);
}
@Test
public void testGenericComparator_with_model_string_value() {
List<CompareModel> values = Arrays.asList(new CompareModel(new CompareModel("4")),
new CompareModel(new CompareModel("2")), new CompareModel(new CompareModel("3")), new CompareModel(new CompareModel("1")));
List<CompareModel> expResult = Arrays.asList(new CompareModel(new CompareModel("1")),
new CompareModel(new CompareModel("2")), new CompareModel(new CompareModel("3")), new CompareModel(new CompareModel("4")));
Collections.sort(values, new GenericComparator<CompareModel>(CompareModel.PATH_MODEL_VALUE));
assertEquals(expResult, values);
}
@Test(expected = IllegalArgumentException.class)
public void testGenericComparator_model_resolves_to_null() {
List<CompareModel> values = Arrays.asList(new CompareModel(new CompareModel("4")),
new CompareModel(new CompareModel("2")), new CompareModel(new CompareModel("3")), new CompareModel((CompareModel) null));
Collections.sort(values, new GenericComparator<CompareModel>(CompareModel.PATH_MODEL_VALUE));
fail();
}
@Test(expected = IllegalArgumentException.class)
public void testGenericComparator_path_does_not_exists() {
List<CompareModel> values = Arrays.asList(new CompareModel(new CompareModel("4")),
new CompareModel(new CompareModel("2")), new CompareModel(new CompareModel("3")), new CompareModel((CompareModel) null));
Collections.sort(values, new GenericComparator<CompareModel>(CompareModel.PATH_INVALID));
fail();
}
}