Package com.wesabe.grendel.resources.tests

Source Code of com.wesabe.grendel.resources.tests.LinksResourceTest$Listing_Links

package com.wesabe.grendel.resources.tests;

import static org.fest.assertions.Assertions.*;
import static org.mockito.Mockito.*;

import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.core.Response.Status;

import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;

import com.wesabe.grendel.auth.Credentials;
import com.wesabe.grendel.auth.Session;
import com.wesabe.grendel.entities.Document;
import com.wesabe.grendel.entities.User;
import com.wesabe.grendel.entities.dao.DocumentDAO;
import com.wesabe.grendel.entities.dao.UserDAO;
import com.wesabe.grendel.representations.LinkListRepresentation;
import com.wesabe.grendel.resources.LinksResource;

@RunWith(Enclosed.class)
public class LinksResourceTest {
  public static class Listing_Links {
    protected Document document;
    protected Credentials credentials;
    protected User user;
    protected Session session;
    protected UserDAO userDAO;
    protected DocumentDAO documentDAO;
    protected UriInfo uriInfo;
    protected LinksResource resource;
   
    @Before
    public void setup() throws Exception {
      this.document = mock(Document.class);
     
      this.user = mock(User.class);
     
      this.session = mock(Session.class);
      when(session.getUser()).thenReturn(user);
     
      this.userDAO = mock(UserDAO.class);
     
      this.documentDAO = mock(DocumentDAO.class);
      when(documentDAO.findByOwnerAndName(user, "document1.txt")).thenReturn(document);
     
      this.resource = new LinksResource(userDAO, documentDAO);
     
      this.credentials = mock(Credentials.class);
      when(credentials.buildSession(userDAO, "bob")).thenReturn(session);
     
      this.uriInfo = mock(UriInfo.class);
    }
   
    @Test
    public void itThrowsA404IfTheDocumentDoesNotExist() throws Exception {
      when(documentDAO.findByOwnerAndName(user, "document1.txt")).thenReturn(null);
     
      try {
        resource.listLinks(uriInfo, credentials, "bob", "document1.txt");
      } catch (WebApplicationException e) {
        assertThat(e.getResponse().getStatus()).isEqualTo(Status.NOT_FOUND.getStatusCode());
      }
    }
   
    @Test
    public void itReturnsADocumentList() throws Exception {
      final LinkListRepresentation docs = resource.listLinks(uriInfo, credentials, "bob", "document1.txt");
     
      assertThat(docs.getDocument()).isEqualTo(document);
      assertThat(docs.getUriInfo()).isEqualTo(uriInfo);
    }
  }
}
TOP

Related Classes of com.wesabe.grendel.resources.tests.LinksResourceTest$Listing_Links

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.