package org.testory;
import static org.junit.Assert.assertSame;
import static org.testory.Testory.a;
import static org.testory.Testory.given;
import static org.testory.Testory.mock;
import static org.testory.Testory.thenCalled;
import static org.testory.Testory.thenEqual;
import static org.testory.Testory.thenReturned;
import static org.testory.Testory.when;
import static org.testory.Testory.willReturn;
import static org.testory.testing.Fakes.newObject;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
public class TestComparingArrays {
private List<?> mock;
private int index;
private Object object;
@Before
public void before() {
mock = mock(List.class);
index = 123;
object = newObject("object");
}
@Test
public void then_equals_uses_deep_equals() {
thenEqual(new Object[] { new Object[] { object } }, new Object[] { new Object[] { object } });
}
@Test
public void then_returned_uses_deep_equals() {
when(new Object[] { new Object[] { object } });
thenReturned(new Object[] { new Object[] { object } });
}
@Test
public void matcherizing_during_stubbing_uses_deep_equals() {
given(willReturn(index), mock).indexOf(new Object[] { new Object[] { object } });
assertSame(index, mock.indexOf(new Object[] { new Object[] { object } }));
}
@Test
public void matcherizing_during_stubbing_with_any_uses_deep_equals() {
given(willReturn(index), mock).indexOf(a(new Object[] { new Object[] { object } }));
assertSame(index, mock.indexOf(new Object[] { new Object[] { object } }));
}
@Test
public void matcherizing_during_verification_uses_deep_equals() {
mock.indexOf(new Object[] { new Object[] { object } });
thenCalled(mock).indexOf(new Object[] { new Object[] { object } });
}
@Test
public void matcherizing_during_verification_with_any_uses_deep_equals() {
mock.indexOf(new Object[] { new Object[] { object } });
thenCalled(mock).indexOf(a(new Object[] { new Object[] { object } }));
}
}