Package org.saiku.web.rest.resources

Source Code of org.saiku.web.rest.resources.QueryResourceTest

/* 
*   Copyright 2012 OSBI Ltd
*
*   Licensed under the Apache License, Version 2.0 (the "License");
*   you may not use this file except in compliance with the License.
*   You may obtain a copy of the License at
*
*       http://www.apache.org/licenses/LICENSE-2.0
*
*   Unless required by applicable law or agreed to in writing, software
*   distributed under the License is distributed on an "AS IS" BASIS,
*   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*   See the License for the specific language governing permissions and
*   limitations under the License.
*/

package org.saiku.web.rest.resources;

import org.saiku.olap.dto.SaikuQuery;
import org.saiku.web.rest.objects.resultset.Cell;
import org.saiku.web.rest.objects.resultset.QueryResult;
import org.saiku.web.service.SessionService;

import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.ws.rs.core.Response.Status;

import junit.framework.TestCase;

/**
* @author bugg
*/

@ContextConfiguration(locations = { "saiku-beans.xml" })
@RunWith(SpringJUnit4ClassRunner.class)
public class QueryResourceTest extends TestCase {

  @Autowired
  private QueryResource qs;

  @Autowired
  private SessionService ss;

  @Before
  public void setUp() throws Exception {
    Authentication auth = new UsernamePasswordAuthenticationToken("testuser", null);
    SecurityContextHolder.getContext().setAuthentication(auth);
    ss.login(null, "testuser", null);
  }

  ;

  @Test
  public final void testCreateQuery() throws ServletException {

    // Create new query
    SaikuQuery testQuery = null;
    testQuery = qs.createQuery("TestConnection1", "Sales", "FoodMart",
        "FoodMart", null, "TestQuery1");

    // Check it is not null, has the same name and has an unused axis.
    assertNotNull(testQuery);
    assertEquals("TestQuery1", testQuery.getName());
    assertEquals(testQuery.getSaikuAxes().size(), 3);

    // no selections on the axes
    assertEquals(testQuery.getSaikuAxes().get(0).getDimensionSelections().size(), 0);


  }

  @Test
  public final void testGetQueries() throws ServletException {
    qs.createQuery("TestConnection1", "Sales", "FoodMart", "FoodMart",
        null, "TestQuery1");
    qs.createQuery("TestConnection1", "Sales", "FoodMart", "FoodMart",
        null, "TestQuery2");

    List<String> queryList = qs.getQueries();
    assertNotNull(queryList);
    assertEquals(queryList.size(), 2);
    assertEquals("TestQuery1", queryList.get(0));
    assertEquals("TestQuery2", queryList.get(1));

  }

  @Test
  public final void testDeleteQuery() throws ServletException {

    // Create 2 Queries
    qs.createQuery("TestConnection1", "Sales", "FoodMart", "FoodMart",
        null, "TestQuery1");
    qs.createQuery("TestConnection1", "Sales", "FoodMart", "FoodMart",
        null, "TestQuery2");

    // Check that the list contains 2 queries
    List<String> queryList = qs.getQueries();
    assertNotNull(queryList);
    assertEquals(queryList.size(), 2);

    // Delete a query
    qs.deleteQuery("TestQuery1");

    // Make sure the query has been removed from the list.
    assertEquals("TestQuery2", qs.getQueries().get(0));
  }

  @Test
  public final void testMoveDimension() throws ServletException {

    // Create a query.
    SaikuQuery testQuery = null;
    testQuery = qs.createQuery("TestConnection1", "Sales", "FoodMart",
        "FoodMart", null, "TestQuery1");

    // Check the query isn't null.
    assertNotNull(testQuery);

    assertEquals(testQuery.getSaikuAxes().size(), 3);

    // Move a dimension
    Status returnedStatus = qs.moveDimension("TestQuery1", "ROWS", "Store",
        -1);

    // Make sure an OK status was returned.
    assertEquals(Status.OK, returnedStatus);

  }

  @Test
  public final void testExecute() throws ServletException {
    // Create a query.
    SaikuQuery testQuery = null;
    testQuery = qs.createQuery("TestConnection1", "Sales", "FoodMart",
        "FoodMart", null, "TestQuery1");

    // Check the query isn't null.
    assertNotNull(testQuery);

    // Move a dimension
    qs.moveDimension("TestQuery1", "ROWS", "Store", -1);
    qs.moveDimension("TestQuery1", "COLUMNS", "Time", -1);

    // Execute the query.
    QueryResult output = qs.execute("TestQuery1");

    // Make sure output is not null.
    assertNotNull(output);

    // Check a cell value
    Cell[] cellarray = output.getCellset().get(0);
    assertEquals("1997", cellarray[1].getValue());
  }

  @Test
  public final void testExecuteMdx() throws ServletException {
    // Create a query.
    SaikuQuery testQuery = null;
    testQuery = qs.createQuery("TestConnection1", "Sales", "FoodMart",
        "FoodMart", null, "TestQuery1");

    // Check the query isn't null.
    assertNotNull(testQuery);

    qs.transformQm2Mdx("TestQuery1");

    // Execute the query.
    Long start = (new Date()).getTime();
    QueryResult output = qs.executeMdx("TestQuery1", "flattened",
        "SELECT "
        + "NON EMPTY {Hierarchize({[Measures].[Profit]})} ON COLUMNS, "
        + "NON EMPTY {Hierarchize({[Product].[Product Name].Members})} ON ROWS "
        + "FROM [Sales]");

    Long end = (new Date()).getTime();
    System.out.println("Total: " + (end - start) + "ms");
    // Make sure output is not null.
    assertNotNull(output);

  }

  /**
   * Test method for {@link org.saiku.web.rest.servlet.QueryServlet#getMDXQuery(String)}.
   */
  @Test
  @Ignore
  public final void testGetMDXQuery() {
    fail("Not yet implemented"); // TODO
  }

  /**
   * Test method for {@link org.saiku.web.rest.servlet.QueryServlet#getAxisInfo(String, String)} .
   */
  @Test
  @Ignore
  public final void testGetAxisInfo() {
    fail("Not yet implemented"); // TODO
  }

  /**
   * Test method for {@link org.saiku.web.rest.servlet.QueryServlet#deleteAxis(String, String)} .
   */
  @Test
  @Ignore
  public final void testDeleteAxis() {
    fail("Not yet implemented"); // TODO
  }

  /**
   * Test method for {@link org.saiku.web.rest.servlet.QueryServlet#setNonEmpty(String, String, Boolean)} .
   */
  @Test
  @Ignore
  public final void testSetNonEmpty() {
    fail("Not yet implemented"); // TODO
  }

  /**
   * Test method for {@link org.saiku.web.rest.servlet.QueryServlet#setSort(String, String, String)} .
   */
  @Test
  @Ignore
  public final void testSetSort() {
    fail("Not yet implemented"); // TODO
  }

  /**
   * Test method for {@link org.saiku.web.rest.servlet.QueryServlet#getDimensionInfo(String, String, String)} .
   */
  @Test
  @Ignore
  public final void testGetDimensionInfo() {
    fail("Not yet implemented"); // TODO
  }

  /**
   * Test method for {@link org.saiku.web.rest.servlet.QueryServlet#pullUpDimension(String, String, String, int)} .
   */
  @Test
  @Ignore
  public final void testPullUpDimension() {
    fail("Not yet implemented"); // TODO
  }

  /**
   * Test method for {@link org.saiku.web.rest.servlet.QueryServlet#pushDownDimension(String, String, String, int)} .
   */
  @Test
  @Ignore
  public final void testPushDownDimension() {
    fail("Not yet implemented"); // TODO
  }

  /**
   * Test method for {@link org.saiku.web.rest.servlet.QueryServlet#deleteDimension(String, String, String)} .
   */
  @Test
  @Ignore
  public final void testDeleteDimension() {
    fail("Not yet implemented"); // TODO
  }

  /**
   * Test method for {@link org.saiku.web.rest.servlet.QueryServlet#getHierarchyInfo(String, String, String, String)} .
   */
  @Test
  @Ignore
  public final void testGetHierarchyInfo() {
    fail("Not yet implemented"); // TODO
  }

  /**
   * Test method for {@link org.saiku.web.rest.servlet.QueryServlet#getLevelInfo(String, String, String, String,
   * String)} .
   */
  @Test
  @Ignore
  public final void testGetLevelInfo() {
    fail("Not yet implemented"); // TODO
  }

  /**
   * Test method for {@link org.saiku.web.rest.servlet.QueryServlet#includeMember(String, String, String, String,
   * String, int, int)} .
   */
  @Test
  @Ignore
  public final void testIncludeMember() {
    fail("Not yet implemented"); // TODO
  }

  /**
   * Test method for {@link org.saiku.web.rest.servlet.QueryServlet#removeMember(String, String, String, String,
   * String)} .
   */
  @Test
  @Ignore
  public final void testRemoveMember() {
    fail("Not yet implemented"); // TODO
  }

  /**
   * Test method for {@link org.saiku.web.rest.servlet.QueryServlet#includeLevel(String, String, String, String, String,
   * int)} .
   */
  @Test
  @Ignore
  public final void testIncludeLevel() {
    fail("Not yet implemented"); // TODO
  }

  /**
   * Test method for {@link org.saiku.web.rest.servlet.QueryServlet#removeLevel(String, String, String, String, String)}
   * .
   */
  @Test
  @Ignore
  public final void testRemoveLevel() {
    fail("Not yet implemented"); // TODO
  }

}
TOP

Related Classes of org.saiku.web.rest.resources.QueryResourceTest

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.