package net.ttddyy.dsproxy.proxy;
import org.junit.Test;
import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
import static org.assertj.core.api.Assertions.assertThat;
/**
* @author Tadaya Tsuyukubo
* @since 1.4
*/
public class ParameterKeyTest {
@Test
public void identityWithString() {
ParameterKey first = new ParameterKey("foo");
ParameterKey second = new ParameterKey("foo");
ParameterKey third = new ParameterKey("bar");
LinkedHashSet<ParameterKey> set = new LinkedHashSet<ParameterKey>();
set.add(first);
set.add(second);
set.add(third);
assertThat(set).hasSize(2).contains(new ParameterKey("foo"), new ParameterKey("bar"));
}
@Test
public void identityWithInt() {
ParameterKey first = new ParameterKey(100);
ParameterKey second = new ParameterKey(100);
ParameterKey third = new ParameterKey(99);
Set<ParameterKey> set = new HashSet<ParameterKey>();
set.add(first);
set.add(second);
set.add(third);
assertThat(set).hasSize(2).contains(new ParameterKey(99), new ParameterKey(100));
}
@Test
public void sort() {
ParameterKey numOne = new ParameterKey(1);
ParameterKey numFive = new ParameterKey(5);
ParameterKey numTen = new ParameterKey(10);
ParameterKey strTwo = new ParameterKey("2");
ParameterKey strSeven = new ParameterKey("7");
ParameterKey foo = new ParameterKey("foo");
ParameterKey bar = new ParameterKey("bar");
SortedSet<ParameterKey> set = new TreeSet<ParameterKey>();
// all int numbers
set.addAll(Arrays.asList(numFive, numOne, numTen));
assertThat(set).containsSequence(numOne, numFive, numTen);
// num-int and num-str
set = new TreeSet<ParameterKey>();
set.addAll(Arrays.asList(numFive, strTwo, strSeven));
assertThat(set).containsSequence(strTwo, numFive, strSeven);
// num-int and non-num-str
set = new TreeSet<ParameterKey>();
set.addAll(Arrays.asList(numFive, foo, strTwo));
assertThat(set).containsSequence(strTwo, numFive, foo);
// num-str and non-num-str
set = new TreeSet<ParameterKey>();
set.addAll(Arrays.asList(bar, foo, strTwo));
assertThat(set).containsSequence(strTwo, bar, foo);
// non-num-str and non-num-str
set = new TreeSet<ParameterKey>();
set.addAll(Arrays.asList(bar, foo));
assertThat(set).containsSequence(bar, foo);
// all
set = new TreeSet<ParameterKey>();
set.addAll(Arrays.asList(numFive, numOne, numTen, strSeven, strTwo, bar, foo));
assertThat(set).containsSequence(numOne, strTwo, numFive, strSeven, numTen, bar, foo);
}
@Test
public void equal() {
ParameterKey numOne = new ParameterKey(1);
ParameterKey anotherNumOne = new ParameterKey(1);
ParameterKey strOne = new ParameterKey("1");
ParameterKey anotherStrOne = new ParameterKey("1");
assertThat(numOne).isEqualTo(anotherNumOne);
assertThat(numOne).isNotEqualTo(strOne);
assertThat(strOne).isEqualTo(anotherStrOne);
assertThat(strOne).isNotEqualTo(numOne);
}
@Test
public void equalComparison() {
ParameterKey numOne = new ParameterKey(1);
ParameterKey anotherNumOne = new ParameterKey(1);
ParameterKey strOne = new ParameterKey("1");
ParameterKey anotherStrOne = new ParameterKey("1");
ParameterKey foo = new ParameterKey("foo");
assertThat(numOne).isEqualByComparingTo(numOne);
assertThat(numOne).isEqualByComparingTo(anotherNumOne);
assertThat(numOne).isEqualByComparingTo(strOne);
assertThat(strOne).isEqualByComparingTo(strOne);
assertThat(strOne).isEqualByComparingTo(anotherStrOne);
assertThat(strOne).isEqualByComparingTo(numOne);
assertThat(foo).isEqualByComparingTo(foo);
}
}