package com.aperture_software.glados_wiki.tests; import com.aperture_software.glados_wiki.entities.*; import com.aperture_software.glados_wiki.junit.MyTestcase; import com.aperture_software.glados_wiki.services.GroupService; import com.aperture_software.glados_wiki.services.PageContentService; import com.aperture_software.glados_wiki.services.PageService; import com.aperture_software.glados_wiki.services.UserService; import com.google.common.base.Optional; import junit.framework.Assert; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import java.util.List; import java.util.UUID; /** * Created by jhyun on 14. 2. 4. */ public class PageReadablesTests extends MyTestcase { private final String RANDOM_TITLE = UUID.randomUUID().toString(); @Autowired private PageService pageService; @Autowired private PageContentService pageContentService; @Autowired private UserService userService; @Autowired private GroupService groupService; private Page page = null; private PageContent pageContent = null; private Group admins = null; private User firstAdmin = null; @Before public void prepare() { // Page, PageContent. page = pageService.createByTitle(RANDOM_TITLE); // pageContent = new PageContent(); pageContent.setPage(page); pageContent.setContent("foobar"); pageContentService.save(pageContent); // pageService.addContent(pageContent); page.setCurrent(pageContent); pageService.update(page); // Example User, Group. Optional<Group> ADMINS_ = groupService.getByName(GroupService.ADMIN_ROLE); Assert.assertTrue(ADMINS_.isPresent()); // admins = ADMINS_.get(); List<User> users = userService.list(Optional.<String>absent(), Optional.of(admins.getName()), 0, Integer.MAX_VALUE); Assert.assertTrue(users.size() > 0); firstAdmin = users.get(0); } @After public void cleanup() { if (pageContent != null) { pageContentService.delete(pageContent); } if (page != null) { pageService.delete(page); } } @Test public void t_01() { // page.getReadables().add(admins); page.getReadables().add(firstAdmin); pageService.update(page); // Optional<Page> p_ = pageService.getPageByTitle(RANDOM_TITLE); Page p = p_.get(); // for (UserAuthentication ua : p.getReadables()) { if (ua instanceof Group) { Group g = (Group) ua; Assert.assertEquals(g.getName(), admins.getName()); } else if (ua instanceof User) { User u = (User) ua; Assert.assertEquals(u.getUsername(), firstAdmin.getUsername()); } else { Assert.assertFalse("UNEXPECTED-TYPED READABLES MEMBER!!!", false); } } } }