BAEL-1565 (#3869)
* BAEL-1565 * move BAEL-1565 code to testing-modules/mocks/mock-comparisons
This commit is contained in:
committed by
Grzegorz Piwowarek
parent
26b94ac17e
commit
8855a45ddf
+57
@@ -0,0 +1,57 @@
|
||||
package com.baeldung.easymock;
|
||||
|
||||
import org.easymock.EasyMockRunner;
|
||||
import org.easymock.Mock;
|
||||
import org.easymock.TestSubject;
|
||||
import org.junit.*;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import java.util.NoSuchElementException;
|
||||
|
||||
import static org.easymock.EasyMock.*;
|
||||
|
||||
@RunWith(EasyMockRunner.class)
|
||||
public class BaeldungReaderAnnotatedTest {
|
||||
|
||||
@Mock ArticleReader mockArticleReader;
|
||||
|
||||
@Mock IArticleWriter mockArticleWriter;
|
||||
|
||||
@TestSubject BaeldungReader baeldungReader = new BaeldungReader();
|
||||
|
||||
@Test
|
||||
public void givenBaeldungReader_whenReadNext_thenNextArticleRead() {
|
||||
expect(mockArticleReader.next()).andReturn(null);
|
||||
replay(mockArticleReader);
|
||||
baeldungReader.readNext();
|
||||
verify(mockArticleReader);
|
||||
}
|
||||
|
||||
@Mock BaeldungReader mockBaeldungReader;
|
||||
|
||||
@Test
|
||||
public void givenBaeldungReader_whenWrite_thenWriterCalled() {
|
||||
expect(mockArticleWriter.write("title", "content")).andReturn(null);
|
||||
replay(mockArticleWriter);
|
||||
baeldungReader.write("title", "content");
|
||||
verify(mockArticleWriter);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenArticlesInReader_whenReadTillEnd_thenThrowException() {
|
||||
expect(mockArticleReader.next())
|
||||
.andReturn(null)
|
||||
.times(2)
|
||||
.andThrow(new NoSuchElementException());
|
||||
replay(mockArticleReader);
|
||||
try {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
baeldungReader.readNext();
|
||||
}
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
verify(mockArticleReader);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
package com.baeldung.easymock;
|
||||
|
||||
import org.easymock.EasyMockRule;
|
||||
import org.easymock.Mock;
|
||||
import org.easymock.TestSubject;
|
||||
import org.junit.*;
|
||||
|
||||
import java.util.NoSuchElementException;
|
||||
|
||||
import static org.easymock.EasyMock.*;
|
||||
|
||||
public class BaeldungReaderAnnotatedWithRuleTest {
|
||||
|
||||
@Rule public EasyMockRule mockRule = new EasyMockRule(this);
|
||||
|
||||
@Mock ArticleReader mockArticleReader;
|
||||
|
||||
@Mock IArticleWriter mockArticleWriter;
|
||||
|
||||
@TestSubject BaeldungReader baeldungReader = new BaeldungReader();
|
||||
|
||||
@Test
|
||||
public void givenBaeldungReader_whenReadNext_thenNextArticleRead() {
|
||||
expect(mockArticleReader.next()).andReturn(null);
|
||||
replay(mockArticleReader);
|
||||
baeldungReader.readNext();
|
||||
verify(mockArticleReader);
|
||||
}
|
||||
|
||||
@Mock BaeldungReader mockBaeldungReader;
|
||||
|
||||
@Test
|
||||
public void givenBaeldungReader_whenWrite_thenWriterCalled() {
|
||||
expect(mockArticleWriter.write("title", "content")).andReturn(null);
|
||||
replay(mockArticleWriter);
|
||||
baeldungReader.write("title", "content");
|
||||
verify(mockArticleWriter);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenArticlesInReader_whenReadTillEnd_thenThrowException() {
|
||||
expect(mockArticleReader.next())
|
||||
.andReturn(null)
|
||||
.times(2)
|
||||
.andThrow(new NoSuchElementException());
|
||||
replay(mockArticleReader);
|
||||
try {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
baeldungReader.readNext();
|
||||
}
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
verify(mockArticleReader);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
package com.baeldung.easymock;
|
||||
|
||||
import org.easymock.*;
|
||||
import org.junit.*;
|
||||
|
||||
import static org.easymock.EasyMock.*;
|
||||
|
||||
public class BaeldungReaderMockDelegationTest {
|
||||
|
||||
EasyMockSupport easyMockSupport = new EasyMockSupport();
|
||||
|
||||
@Test
|
||||
public void givenBaeldungReader_whenReadAndWrite_thenOperationSupported() {
|
||||
ArticleReader mockArticleReader = easyMockSupport.createMock(ArticleReader.class);
|
||||
IArticleWriter mockArticleWriter = easyMockSupport.createMock(IArticleWriter.class);
|
||||
BaeldungReader baeldungReader = new BaeldungReader(mockArticleReader, mockArticleWriter);
|
||||
|
||||
expect(mockArticleReader.next()).andReturn(null);
|
||||
expect(mockArticleWriter.write("title", "content")).andReturn("");
|
||||
easyMockSupport.replayAll();
|
||||
|
||||
baeldungReader.readNext();
|
||||
baeldungReader.write("title", "content");
|
||||
easyMockSupport.verifyAll();
|
||||
}
|
||||
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
package com.baeldung.easymock;
|
||||
|
||||
import org.easymock.*;
|
||||
import org.junit.*;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import java.util.NoSuchElementException;
|
||||
|
||||
import static org.easymock.EasyMock.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
@RunWith(EasyMockRunner.class)
|
||||
public class BaeldungReaderMockSupportTest extends EasyMockSupport {
|
||||
|
||||
@TestSubject BaeldungReader baeldungReader = new BaeldungReader();
|
||||
@Mock ArticleReader mockArticleReader;
|
||||
@Mock IArticleWriter mockArticleWriter;
|
||||
|
||||
@Test
|
||||
public void givenBaeldungReader_whenReadAndWrite_thenOperationSupported() {
|
||||
expect(mockArticleReader.next())
|
||||
.andReturn(null)
|
||||
.times(2)
|
||||
.andThrow(new NoSuchElementException());
|
||||
expect(mockArticleWriter.write("title", "content")).andReturn("BAEL-201801");
|
||||
replayAll();
|
||||
|
||||
Exception expectedException = null;
|
||||
try {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
baeldungReader.readNext();
|
||||
}
|
||||
} catch (Exception exception) {
|
||||
expectedException = exception;
|
||||
}
|
||||
String articleId = baeldungReader.write("title", "content");
|
||||
verifyAll();
|
||||
assertEquals(NoSuchElementException.class, expectedException.getClass());
|
||||
assertEquals("BAEL-201801", articleId);
|
||||
}
|
||||
|
||||
}
|
||||
Executable
+105
@@ -0,0 +1,105 @@
|
||||
package com.baeldung.easymock;
|
||||
|
||||
import org.junit.*;
|
||||
|
||||
import java.util.NoSuchElementException;
|
||||
|
||||
import static org.easymock.EasyMock.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class BaeldungReaderTest {
|
||||
|
||||
private BaeldungReader baeldungReader;
|
||||
|
||||
private ArticleReader mockArticleReader;
|
||||
|
||||
private IArticleWriter mockArticleWriter;
|
||||
|
||||
@Test
|
||||
public void givenBaeldungReader_whenReadNext_thenNextArticleRead() {
|
||||
mockArticleReader = mock(ArticleReader.class);
|
||||
baeldungReader = new BaeldungReader(mockArticleReader);
|
||||
|
||||
expect(mockArticleReader.next()).andReturn(null);
|
||||
replay(mockArticleReader);
|
||||
|
||||
BaeldungArticle article = baeldungReader.readNext();
|
||||
verify(mockArticleReader);
|
||||
assertEquals(null, article);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenBaeldungReader_whenReadNextAndSkimTopics_thenAllAllowed() {
|
||||
mockArticleReader = strictMock(ArticleReader.class);
|
||||
baeldungReader = new BaeldungReader(mockArticleReader);
|
||||
|
||||
expect(mockArticleReader.next()).andReturn(null);
|
||||
expect(mockArticleReader.ofTopic("easymock")).andReturn(null);
|
||||
replay(mockArticleReader);
|
||||
|
||||
baeldungReader.readNext();
|
||||
baeldungReader.readTopic("easymock");
|
||||
verify(mockArticleReader);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenBaeldungReader_whenReadNextAndOthers_thenAllowed() {
|
||||
mockArticleReader = niceMock(ArticleReader.class);
|
||||
baeldungReader = new BaeldungReader(mockArticleReader);
|
||||
|
||||
expect(mockArticleReader.next()).andReturn(null);
|
||||
replay(mockArticleReader);
|
||||
|
||||
baeldungReader.readNext();
|
||||
baeldungReader.readTopic("easymock");
|
||||
verify(mockArticleReader);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenBaeldungReader_whenWriteMaliciousContent_thenArgumentIllegal() {
|
||||
mockArticleWriter = mock(IArticleWriter.class);
|
||||
baeldungReader = new BaeldungReader(mockArticleWriter);
|
||||
expect(mockArticleWriter.write("easymock", "<body onload=alert('baeldung')>")).andThrow(new IllegalArgumentException());
|
||||
replay(mockArticleWriter);
|
||||
|
||||
Exception expectedException = null;
|
||||
try {
|
||||
baeldungReader.write("easymock", "<body onload=alert('baeldung')>");
|
||||
} catch (Exception exception) {
|
||||
expectedException = exception;
|
||||
}
|
||||
|
||||
verify(mockArticleWriter);
|
||||
assertEquals(IllegalArgumentException.class, expectedException.getClass());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenBaeldungReader_whenWrite_thenWriterCalled() {
|
||||
mockArticleWriter = mock(IArticleWriter.class);
|
||||
baeldungReader = new BaeldungReader(mockArticleWriter);
|
||||
expect(mockArticleWriter.write("title", "content")).andReturn(null);
|
||||
replay(mockArticleWriter);
|
||||
String articleId = baeldungReader.write("title", "content");
|
||||
verify(mockArticleWriter);
|
||||
assertEquals(null, articleId);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenArticlesInReader_whenReadTillEnd_thenThrowException() {
|
||||
ArticleReader mockArticleReader = mock(ArticleReader.class);
|
||||
baeldungReader = new BaeldungReader(mockArticleReader);
|
||||
expect(mockArticleReader.next())
|
||||
.andReturn(null)
|
||||
.times(2)
|
||||
.andThrow(new NoSuchElementException());
|
||||
replay(mockArticleReader);
|
||||
try {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
baeldungReader.readNext();
|
||||
}
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
verify(mockArticleReader);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user