diff --git a/src/test/java/org/wikitolearn/wikirating/service/PageServiceTest.java b/src/test/java/org/wikitolearn/wikirating/service/PageServiceTest.java index 41f2246..e6a941f 100644 --- a/src/test/java/org/wikitolearn/wikirating/service/PageServiceTest.java +++ b/src/test/java/org/wikitolearn/wikirating/service/PageServiceTest.java @@ -1,149 +1,146 @@ /** * */ package org.wikitolearn.wikirating.service; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.wikitolearn.wikirating.exception.PageNotFoundException; import org.wikitolearn.wikirating.model.Page; import org.wikitolearn.wikirating.model.Revision; import org.wikitolearn.wikirating.repository.PageRepository; /** * @author aletundo * */ @RunWith(SpringJUnit4ClassRunner.class) public class PageServiceTest { @Mock private PageRepository pageRepository; - @Mock - private RevisionService revisionService; - @InjectMocks private PageService pageService; @Before public void setup(){ MockitoAnnotations.initMocks(this); } @Test public void testGetPageByLangPageId(){ Page page = new Page(1, "Title", "en", "en_1"); when(pageRepository.findByLangPageId("en_1")).thenReturn(page); Page result = pageService.getPage("en_1"); assertEquals(1, result.getPageId()); assertEquals("Title", result.getTitle()); assertEquals("en", result.getLang()); assertEquals("en_1", result.getLangPageId()); } @Test public void testGetPageByPageIdAndLang(){ Page page = new Page(1, "Title", "en", "en_1"); when(pageRepository.findByLangPageId("en_1")).thenReturn(page); Page result = pageService.getPage(1, "en"); assertEquals(1, result.getPageId()); assertEquals("Title", result.getTitle()); assertEquals("en", result.getLang()); assertEquals("en_1", result.getLangPageId()); } @Test(expected = PageNotFoundException.class) public void testGetPageByPageIdAndLangNotFound(){ when(pageRepository.findByLangPageId("en_1")).thenReturn(null); pageService.getPage(1, "en"); } @Test(expected = PageNotFoundException.class) public void testGetPageByLangPageIdNotFound(){ when(pageRepository.findByLangPageId("en_1")).thenReturn(null); pageService.getPage("en_1"); } @Test(expected = PageNotFoundException.class) public void testDeletePageNotFound(){ when(pageRepository.findByTitleAndLang("Title", "en")).thenReturn(null); pageService.deletePage("Title", "en"); } @Test public void testDeletePage(){ Page page = new Page(1, "Title", "en", "en_1"); when(pageRepository.findByTitleAndLang("Title", "en")).thenReturn(page); pageService.deletePage("Title", "en"); verify(pageRepository, times(1)).delete(page); } @Test(expected = PageNotFoundException.class) public void testMovePageNotFound(){ when(pageRepository.findByLangPageId("en_1")).thenReturn(null); pageService.movePage("Title", "NewTitle", "en"); } @Test public void testMovePage(){ Page page = new Page(1, "Title", "en", "en_1"); when(pageRepository.findByTitleAndLang("Title", "en")).thenReturn(page); Page result = pageService.movePage("Title", "NewTitle", "en"); assertEquals("NewTitle", result.getTitle()); } @Test public void testAddPage(){ Page page = new Page(1, "Title", "en", "en_1"); when(pageRepository.save(page)).thenReturn(page); Page result = pageService.addPage(1, "Title", "en", new Revision()); assertEquals(1, result.getPageId()); assertEquals("Title", result.getTitle()); assertEquals("en", result.getLang()); assertEquals("en_1", result.getLangPageId()); } @Test public void testGetUncategorizedPages(){ List uncategorizedPages = new ArrayList(); uncategorizedPages.add(new Page(1, "Title", "en", "en_1")); uncategorizedPages.add(new Page(2, "Title2", "en", "en_2")); uncategorizedPages.add(new Page(3, "Title3", "en", "en_4")); when(pageRepository.findAllUncategorizedPages("en")).thenReturn(uncategorizedPages); List result = pageService.getUncategorizedPages("en"); assertEquals(3, result.size()); } @Test public void testGetCourseRootPages(){ List uncategorizedPages = new ArrayList(); Page p1 = new Page(1, "Title", "en", "en_1"); p1.addLabel("CourseRoot"); Page p2 = new Page(2, "Title2", "en", "en_2"); p2.addLabel("CourseRoot"); Page p3 = new Page(3, "Title3", "en", "en_3"); p3.addLabel("CourseRoot"); uncategorizedPages.add(p1); uncategorizedPages.add(p2); uncategorizedPages.add(p3); when(pageRepository.findAllCourseRootPages("en")).thenReturn(uncategorizedPages); List result = pageService.getCourseRootPages("en"); assertEquals(3, result.size()); } } diff --git a/src/test/java/org/wikitolearn/wikirating/service/RevisionServiceTest.java b/src/test/java/org/wikitolearn/wikirating/service/RevisionServiceTest.java new file mode 100644 index 0000000..360ede8 --- /dev/null +++ b/src/test/java/org/wikitolearn/wikirating/service/RevisionServiceTest.java @@ -0,0 +1,133 @@ +/** + * + */ +package org.wikitolearn.wikirating.service; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.util.Date; +import java.util.HashSet; +import java.util.Set; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.wikitolearn.wikirating.exception.RevisionNotFoundException; +import org.wikitolearn.wikirating.model.Revision; +import org.wikitolearn.wikirating.repository.RevisionRepository; + +/** + * @author aletundo + * + */ +@RunWith(SpringJUnit4ClassRunner.class) +public class RevisionServiceTest { + + @Mock + private RevisionRepository revisionRepository; + + @InjectMocks + private RevisionService revisionService; + + @Before + public void setup(){ + MockitoAnnotations.initMocks(this); + } + + @Test + public void testGetRevision(){ + Date now = new Date(); + Revision revision = new Revision(2, "en", 1, 1, 123456, now); + when(revisionRepository.findByLangRevId("en_2")).thenReturn(revision); + Revision result = revisionService.getRevision("en_2"); + assertEquals(2, result.getRevId()); + assertEquals("en", result.getLang()); + assertEquals(1, result.getParentId()); + assertEquals(1, result.getUserId()); + assertEquals(123456, result.getLength()); + assertEquals(now, result.getTimestamp()); + } + + @Test(expected = RevisionNotFoundException.class) + public void testGetRevisionNotFound(){ + when(revisionRepository.findByLangRevId("en_1")).thenReturn(null); + revisionService.getRevision("en_1"); + } + + @Test + public void testAddPage(){ + Date now = new Date(); + Revision revision = new Revision(2, "en", 1, 1, 123456, now); + when(revisionRepository.save(revision)).thenReturn(revision); + Revision result = revisionService.addRevision(2, "en", 1, 1, 123456, now); + assertEquals(2, result.getRevId()); + assertEquals("en", result.getLang()); + assertEquals(1, result.getParentId()); + assertEquals(1, result.getUserId()); + assertEquals(123456, result.getLength()); + assertEquals(now, result.getTimestamp()); + } + + @Test + public void testUpdateRevision(){ + Date now = new Date(); + Revision revision = new Revision(2, "en", 1, 1, 123456, now); + when(revisionRepository.save(revision)).thenReturn(revision); + Revision result = revisionService.updateRevision(revision); + assertEquals(2, result.getRevId()); + assertEquals("en", result.getLang()); + assertEquals(1, result.getParentId()); + assertEquals(1, result.getUserId()); + assertEquals(123456, result.getLength()); + assertEquals(now, result.getTimestamp()); + } + + @Test + public void testDeleteRevisionsOfPage(){ + Set revisions = new HashSet(); + Revision r1 = new Revision(2, "en", 1, 1, 123456, new Date()); + Revision r2 = new Revision(3, "en", 2, 1, 123456, new Date()); + Revision r3 = new Revision(4, "en", 3, 1, 123456, new Date()); + revisions.add(r1); + revisions.add(r2); + revisions.add(r3); + when(revisionRepository.findAllRevisionOfPage("en_1")).thenReturn(revisions); + revisionService.deleteRevisionsOfPage("en_1"); + verify(revisionRepository, times(1)).delete(revisions); + } + + @Test(expected = RevisionNotFoundException.class) + public void testDeleteRevisionsOfPageNotFound(){ + Set revisions = new HashSet(); + when(revisionRepository.findAllRevisionOfPage("en_1")).thenReturn(revisions); + revisionService.deleteRevisionsOfPage("en_1"); + } + + @Test + public void testGetRevisionsOfPage(){ + Set revisions = new HashSet(); + Revision r1 = new Revision(2, "en", 1, 1, 123456, new Date()); + Revision r2 = new Revision(3, "en", 2, 1, 123456, new Date()); + Revision r3 = new Revision(4, "en", 3, 1, 123456, new Date()); + revisions.add(r1); + revisions.add(r2); + revisions.add(r3); + when(revisionRepository.findAllRevisionOfPage("en_1")).thenReturn(revisions); + Set result = revisionService.getRevisionsOfPage("en_1"); + assertEquals(3, result.size()); + } + + @Test(expected = RevisionNotFoundException.class) + public void testGetRevisionsOfPageNotFound(){ + Set revisions = new HashSet(); + when(revisionRepository.findAllRevisionOfPage("en_1")).thenReturn(revisions); + revisionService.getRevisionsOfPage("en_1"); + } +}