Refactor JMockit examples
This commit is contained in:
parent
b9c412689d
commit
34414b2a43
|
@ -1,9 +1,11 @@
|
|||
package org.baeldung.mocks.jmockit;
|
||||
|
||||
public class Collaborator {
|
||||
|
||||
public boolean collaborate(String string){
|
||||
return false;
|
||||
}
|
||||
|
||||
public void receive(boolean bool){
|
||||
//NOOP
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package org.baeldung.mocks.jmockit;
|
||||
|
||||
public class Model {
|
||||
public String getInfo(){
|
||||
return "info";
|
||||
public String getInfo() {
|
||||
return "info";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,21 +1,20 @@
|
|||
package org.baeldung.mocks.jmockit;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.hamcrest.BaseMatcher;
|
||||
import org.hamcrest.Description;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import mockit.Delegate;
|
||||
import mockit.Expectations;
|
||||
import mockit.Mocked;
|
||||
import mockit.StrictExpectations;
|
||||
import mockit.Verifications;
|
||||
import mockit.integration.junit4.JMockit;
|
||||
import org.hamcrest.BaseMatcher;
|
||||
import org.hamcrest.Description;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
@RunWith(JMockit.class)
|
||||
@SuppressWarnings("unchecked")
|
||||
|
@ -23,119 +22,103 @@ public class ExpectationsTest {
|
|||
|
||||
@Test
|
||||
public void testForAny(@Mocked ExpectationsCollaborator mock) throws Exception {
|
||||
new Expectations() {
|
||||
{
|
||||
mock.methodForAny1(anyString, anyInt, anyBoolean);
|
||||
result = "any";
|
||||
}
|
||||
};
|
||||
new Expectations() {{
|
||||
mock.methodForAny1(anyString, anyInt, anyBoolean);
|
||||
result = "any";
|
||||
}};
|
||||
|
||||
assertEquals("any", mock.methodForAny1("barfooxyz", 0, Boolean.FALSE));
|
||||
mock.methodForAny2(2L, new ArrayList<>());
|
||||
|
||||
new Verifications() {
|
||||
{
|
||||
mock.methodForAny2(anyLong, (List<String>) any);
|
||||
}
|
||||
};
|
||||
new Verifications() {{
|
||||
mock.methodForAny2(anyLong, (List<String>) any);
|
||||
}};
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testForWith(@Mocked ExpectationsCollaborator mock) throws Exception {
|
||||
new Expectations() {
|
||||
{
|
||||
mock.methodForWith1(withSubstring("foo"), withNotEqual(1));
|
||||
result = "with";
|
||||
}
|
||||
};
|
||||
|
||||
new Expectations() {{
|
||||
mock.methodForWith1(withSubstring("foo"), withNotEqual(1));
|
||||
result = "with";
|
||||
}};
|
||||
|
||||
assertEquals("with", mock.methodForWith1("barfooxyz", 2));
|
||||
mock.methodForWith2(Boolean.TRUE, new ArrayList<>());
|
||||
|
||||
new Verifications() {
|
||||
{
|
||||
mock.methodForWith2(withNotNull(), withInstanceOf(List.class));
|
||||
}
|
||||
};
|
||||
|
||||
new Verifications() {{
|
||||
mock.methodForWith2(withNotNull(), withInstanceOf(List.class));
|
||||
}};
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWithNulls(@Mocked ExpectationsCollaborator mock) {
|
||||
new Expectations() {
|
||||
{
|
||||
mock.methodForNulls1(anyString, null);
|
||||
result = "null";
|
||||
}
|
||||
};
|
||||
|
||||
new Expectations() {{
|
||||
mock.methodForNulls1(anyString, null);
|
||||
result = "null";
|
||||
}};
|
||||
|
||||
assertEquals("null", mock.methodForNulls1("blablabla", new ArrayList<String>()));
|
||||
mock.methodForNulls2("blablabla", null);
|
||||
|
||||
new Verifications() {
|
||||
{
|
||||
mock.methodForNulls2(anyString, (List<String>) withNull());
|
||||
}
|
||||
};
|
||||
|
||||
new Verifications() {{
|
||||
mock.methodForNulls2(anyString, (List<String>) withNull());
|
||||
}};
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWithTimes(@Mocked ExpectationsCollaborator mock) {
|
||||
new Expectations() {
|
||||
{
|
||||
mock.methodForTimes1(); times = 2;
|
||||
mock.methodForTimes2();
|
||||
}
|
||||
};
|
||||
|
||||
new Expectations() {{
|
||||
mock.methodForTimes1();
|
||||
times = 2;
|
||||
mock.methodForTimes2();
|
||||
}};
|
||||
|
||||
mock.methodForTimes1();
|
||||
mock.methodForTimes1();
|
||||
mock.methodForTimes2();
|
||||
mock.methodForTimes3();
|
||||
mock.methodForTimes3();
|
||||
mock.methodForTimes3();
|
||||
|
||||
new Verifications() {
|
||||
{
|
||||
mock.methodForTimes3(); minTimes = 1; maxTimes = 3;
|
||||
}
|
||||
};
|
||||
|
||||
new Verifications() {{
|
||||
mock.methodForTimes3();
|
||||
minTimes = 1;
|
||||
maxTimes = 3;
|
||||
}};
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCustomArgumentMatching(@Mocked ExpectationsCollaborator mock) {
|
||||
new Expectations() {
|
||||
{
|
||||
mock.methodForArgThat(withArgThat(new BaseMatcher<Object>() {
|
||||
@Override
|
||||
public boolean matches(Object item) {
|
||||
return item instanceof Model && "info".equals(((Model) item).getInfo());
|
||||
}
|
||||
new Expectations() {{
|
||||
mock.methodForArgThat(withArgThat(new BaseMatcher<Object>() {
|
||||
@Override
|
||||
public boolean matches(Object item) {
|
||||
return item instanceof Model && "info".equals(((Model) item).getInfo());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void describeTo(Description description) { }
|
||||
}));
|
||||
}
|
||||
};
|
||||
@Override
|
||||
public void describeTo(Description description) {
|
||||
}
|
||||
}));
|
||||
}};
|
||||
mock.methodForArgThat(new Model());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testResultAndReturns(@Mocked ExpectationsCollaborator mock) {
|
||||
new StrictExpectations() {
|
||||
{
|
||||
mock.methodReturnsString();
|
||||
result = "foo";
|
||||
result = new Exception();
|
||||
result = "bar";
|
||||
mock.methodReturnsInt();
|
||||
result = new int[] { 1, 2, 3 };
|
||||
mock.methodReturnsString();
|
||||
returns("foo", "bar");
|
||||
mock.methodReturnsInt();
|
||||
result = 1;
|
||||
}
|
||||
};
|
||||
|
||||
new StrictExpectations() {{
|
||||
mock.methodReturnsString();
|
||||
result = "foo";
|
||||
result = new Exception();
|
||||
result = "bar";
|
||||
mock.methodReturnsInt();
|
||||
result = new int[]{1, 2, 3};
|
||||
mock.methodReturnsString();
|
||||
returns("foo", "bar");
|
||||
mock.methodReturnsInt();
|
||||
result = 1;
|
||||
}};
|
||||
|
||||
assertEquals("Should return foo", "foo", mock.methodReturnsString());
|
||||
try {
|
||||
mock.methodReturnsString();
|
||||
|
@ -153,24 +136,23 @@ public class ExpectationsTest {
|
|||
|
||||
@Test
|
||||
public void testDelegate(@Mocked ExpectationsCollaborator mock) {
|
||||
new Expectations() {
|
||||
{
|
||||
mock.methodForDelegate(anyInt);
|
||||
result = new Delegate() {
|
||||
public int delegate(int i) throws Exception {
|
||||
if (i < 3) {
|
||||
return 5;
|
||||
} else {
|
||||
throw new Exception();
|
||||
}
|
||||
new Expectations() {{
|
||||
mock.methodForDelegate(anyInt);
|
||||
result = new Delegate() {
|
||||
public int delegate(int i) throws Exception {
|
||||
if (i < 3) {
|
||||
return 5;
|
||||
} else {
|
||||
throw new Exception();
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
};
|
||||
}};
|
||||
|
||||
assertEquals("Should return 5", 5, mock.methodForDelegate(1));
|
||||
try {
|
||||
mock.methodForDelegate(3);
|
||||
} catch (Exception e) { }
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,7 +21,9 @@ public class PerformerTest {
|
|||
model.getInfo();result = "bar";
|
||||
collaborator.collaborate("bar"); result = true;
|
||||
}};
|
||||
|
||||
performer.perform(model);
|
||||
|
||||
new Verifications() {{
|
||||
collaborator.receive(true);
|
||||
}};
|
||||
|
|
Loading…
Reference in New Issue