    001package org.apache.turbine.services.intake;
    002
    003/*
    004 * Licensed to the Apache Software Foundation (ASF) under one
    005 * or more contributor license agreements.  See the NOTICE file
    006 * distributed with this work for additional information
    007 * regarding copyright ownership.  The ASF licenses this file
    008 * to you under the Apache License, Version 2.0 (the
    009 * "License"); you may not use this file except in compliance
    010 * with the License.  You may obtain a copy of the License at
    011 *
    012 *   http://www.apache.org/licenses/LICENSE-2.0
    013 *
    014 * Unless required by applicable law or agreed to in writing,
    015 * software distributed under the License is distributed on an
    016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    017 * KIND, either express or implied.  See the License for the
    018 * specific language governing permissions and limitations
    019 * under the License.
    020 */
    021
    022import static org.junit.Assert.assertEquals;
    023import static org.junit.Assert.assertNotNull;
    024import static org.junit.Assert.assertTrue;
    025import static org.mockito.Mockito.mock;
    026
    027import java.io.File;
    028
    029import javax.servlet.ServletConfig;
    030import javax.servlet.http.HttpServletRequest;
    031import javax.servlet.http.HttpServletResponse;
    032
    033import org.apache.fulcrum.intake.IntakeService;
    034import org.apache.fulcrum.intake.model.Group;
    035import org.apache.fulcrum.parser.DefaultParameterParser;
    036import org.apache.turbine.annotation.AnnotationProcessor;
    037import org.apache.turbine.services.TurbineServices;
    038import org.apache.turbine.services.rundata.RunDataService;
    039import org.apache.turbine.test.BaseTestCase;
    040import org.apache.turbine.util.RunData;
    041import org.apache.turbine.util.TurbineConfig;
    042import org.junit.AfterClass;
    043import org.junit.Before;
    044import org.junit.BeforeClass;
    045import org.junit.Test;
    046
    047/**
    048 * Unit test for Intake Tool, wrapping the Fulcrum Intake service.
    049 *
    050 * @author <a href="mailto:epugh@upstate.com">Eric Pugh</a>
    051 * @version $Id: IntakeToolTest.java 1754909 2016-08-02 12:55:35Z tv $
    052 */
    053public class IntakeToolTest extends BaseTestCase
    054{
    055    private static TurbineConfig tc = null;
    056    private IntakeTool intakeTool;
    057
    058    @Before
    059    public void initTool() throws Exception
    060    {
    061        intakeTool = new IntakeTool();
    062        AnnotationProcessor.process(intakeTool);
    063        intakeTool.init(getRunData());
    064    }
    065
    066    @Test
    067    public void testGet() throws Exception
    068    {
    069        File file = new File("./target/appData.ser");
    070        assertTrue("Make sure serialized data file exists:" + file, file.exists());
    071        Group group = intakeTool.get("LoginGroup", "loginGroupKey");
    072        assertNotNull(group);
    073        assertEquals("loginGroupKey", group.getGID());
    074        assertEquals("LoginGroup", group.getIntakeGroupName());
    075    }
    076
    077    /**
    078     * Make sure refresh DOESN'T do anything
    079     *
    080     * @throws Exception
    081     */
    082    @Test
    083    public void testRefresh() throws Exception
    084    {
    085        int numberOfGroups = intakeTool.getGroups().size();
    086        intakeTool.refresh();
    087        assertEquals(numberOfGroups, intakeTool.getGroups().size());
    088    }
    089
    090    private RunData getRunData() throws Exception
    091    {
    092        RunDataService rds = (RunDataService) TurbineServices.getInstance().getService(RunDataService.SERVICE_NAME);
    093        ServletConfig config = mock(ServletConfig.class);
    094        HttpServletRequest request = getMockRequest();
    095        HttpServletResponse response = mock(HttpServletResponse.class);
    096        RunData runData = rds.getRunData(request, response, config);
    097        assertEquals("Verify we are using Fulcrum parameter parser", DefaultParameterParser.class, runData.getParameters()
    098            .getClass());
    099        return runData;
    100    }
    101
    102    @BeforeClass
    103    public static void setUp() throws Exception
    104    {
    105        tc = new TurbineConfig(".", "/conf/test/TestFulcrumComponents.properties");
    106        tc.initialize();
    107        TurbineServices.getInstance().getService(IntakeService.class.getName());
    108    }
    109
    110    @AfterClass
    111    public static void tearDown() throws Exception
    112    {
    113        if (tc != null)
    114        {
    115            tc.dispose();
    116        }
    117    }
    118}