Package org.molgenis.framework.server.services

Source Code of org.molgenis.framework.server.services.MolgenisDownloadServiceTest

package org.molgenis.framework.server.services;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;

import java.io.IOException;
import java.text.ParseException;
import java.util.Vector;

import org.molgenis.framework.db.DatabaseException;
import org.molgenis.framework.server.MolgenisContext;
import org.molgenis.framework.server.MolgenisRequest;
import org.molgenis.framework.server.MolgenisResponse;
import org.molgenis.mock.MockDatabase;
import org.molgenis.mock.MockLogin;
import org.molgenis.model.elements.Entity;
import org.molgenis.model.elements.Model;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class MolgenisDownloadServiceTest
{
  private static final String API_FIND_URI = "/api/find";

  private MolgenisDownloadService molgenisDownloadService;
  private MockHttpServletRequest mockHttpServletRequest;
  private MockHttpServletResponse mockHttpServletResponse;
  private MolgenisRequest molgenisRequest;
  private MolgenisResponse molgenisResponse;

  @BeforeMethod
  public void setup() throws Exception
  {
    molgenisDownloadService = new MolgenisDownloadService(mock(MolgenisContext.class));
    mockHttpServletRequest = new MockHttpServletRequest();
    mockHttpServletResponse = new MockHttpServletResponse();
    molgenisRequest = new MolgenisRequest(mockHttpServletRequest);
    molgenisResponse = new MolgenisResponse(mockHttpServletResponse);
  }

  @Test
  public void testNotAuthenticated() throws Exception
  {
    MockDatabase db = new MockDatabase();
    db.setLogin(new MockLogin(false));

    Model model = when(mock(Model.class).getEntities(false, false)).thenReturn(new Vector<Entity>()).getMock();
    db.setMetaData(model);

    molgenisRequest.setDatabase(db);
    molgenisRequest.setServicePath(API_FIND_URI);
    mockHttpServletRequest.setPathInfo(API_FIND_URI + "/");

    molgenisDownloadService.handleRequest(molgenisRequest, molgenisResponse);

    assertEquals(mockHttpServletResponse.getStatus(), 200);

    String response = mockHttpServletResponse.getContentAsString();
    assertTrue((response != null) && response.contains("You are currently browsing as anonymous."));
  }

  @Test
  public void testAuthenticated() throws Exception
  {
    MockDatabase db = new MockDatabase();
    db.setLogin(new MockLogin(true));

    Model model = when(mock(Model.class).getEntities(false, false)).thenReturn(new Vector<Entity>()).getMock();
    db.setMetaData(model);

    molgenisRequest.setDatabase(db);
    molgenisRequest.setServicePath(API_FIND_URI);
    mockHttpServletRequest.setPathInfo(API_FIND_URI + "/");

    molgenisDownloadService.handleRequest(molgenisRequest, molgenisResponse);

    assertEquals(mockHttpServletResponse.getStatus(), 200);

    String response = mockHttpServletResponse.getContentAsString();
    assertTrue((response != null) && !response.contains("You are currently browsing as anonymous."));
  }

  @Test
  public void testNotExistingOrSystemEntity() throws ParseException, DatabaseException, IOException
  {
    MockDatabase db = new MockDatabase();
    db.setLogin(new MockLogin(true));

    Model model = when(mock(Model.class).getEntities(false, false)).thenReturn(new Vector<Entity>()).getMock();
    db.setMetaData(model);

    molgenisRequest.setDatabase(db);
    molgenisRequest.setServicePath(API_FIND_URI);
    mockHttpServletRequest.setPathInfo(API_FIND_URI + "/XXXX");

    molgenisDownloadService.handleRequest(molgenisRequest, molgenisResponse);

    assertEquals(mockHttpServletResponse.getStatus(), 404);
  }

}
TOP

Related Classes of org.molgenis.framework.server.services.MolgenisDownloadServiceTest

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.