org.slc.sli.dashboard.unit.controller.LayoutControllerTest.java Source code

Java tutorial

Introduction

Here is the source code for org.slc.sli.dashboard.unit.controller.LayoutControllerTest.java

Source

/*
 * Copyright 2012 Shared Learning Collaborative, LLC
 *
 * 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.slc.sli.dashboard.unit.controller;

import java.util.Collection;
import java.util.Map;

import junit.framework.Assert;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.web.servlet.ModelAndView;

import org.slc.sli.dashboard.entity.Config;
import org.slc.sli.dashboard.entity.GenericEntity;
import org.slc.sli.dashboard.util.Constants;
import org.slc.sli.dashboard.web.controller.LayoutController;

/**
 * Tesing layout controller
 *
 * @author svankina
 *
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/application-context.xml", "/dashboard-servlet-test.xml" })
public class LayoutControllerTest extends ControllerTestBase {
    LayoutController layoutController = new LayoutController() {
        @Override
        public boolean isAdmin() {
            return false;
        }
    };;

    @Before
    public void setup() throws Exception {
        setCustomizationAssemblyFactory(layoutController);
        setPortalWS(layoutController);
    }

    @SuppressWarnings("unchecked")
    @Test
    public void testHandle() throws Exception {
        try {
            ModelAndView mv = layoutController.handle("simpleLayout", null, request);
            Assert.assertEquals(2, ((Map<String, Config>) mv.getModel().get(Constants.MM_KEY_VIEW_CONFIGS)).size());
            Assert.assertEquals(1, ((Map<String, GenericEntity>) mv.getModel().get(Constants.MM_KEY_DATA)).size());
            Assert.assertEquals(1, ((Collection<Config>) mv.getModel().get(Constants.MM_KEY_LAYOUT)).size());
        } catch (Exception e) {
            Assert.fail("Should pass but getting " + e.getMessage());
        }
    }

    @SuppressWarnings("unchecked")
    @Test
    public void testHandleWithId() throws Exception {
        try {
            ModelAndView mv = layoutController.handleWithId("simpleLayout", null, request);
            ModelAndView mv1 = layoutController.handle("simpleLayout", null, request);
            Map<String, Config> c = (Map<String, Config>) mv.getModel().get(Constants.MM_KEY_VIEW_CONFIGS);
            Map<String, Config> c1 = (Map<String, Config>) mv1.getModel().get(Constants.MM_KEY_VIEW_CONFIGS);
            Assert.assertEquals(2, c.size());
            Assert.assertEquals(2, c1.size());
            for (Map.Entry<String, Config> conf : c.entrySet()) {
                Assert.assertEquals(conf.getValue().getName(), c1.get(conf.getKey()).getName());
            }
        } catch (Exception e) {
            Assert.fail("Should pass but getting " + e.getMessage());
        }
    }

    @SuppressWarnings("unchecked")
    @Test
    public void testHandleLos() throws Exception {
        try {
            ModelAndView mv = layoutController.handleLos(request);
            Assert.assertEquals(2, ((Map<String, Config>) mv.getModel().get(Constants.MM_KEY_VIEW_CONFIGS)).size());
        } catch (Exception e) {
            Assert.fail("Should pass but getting " + e.getMessage());
        }
    }
}