/*
* Copyright (c) 2009-2010 Lockheed Martin Corporation
*
* 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.eurekastreams.server.domain;
import static junit.framework.Assert.assertEquals;
import org.hibernate.validator.ClassValidator;
import org.hibernate.validator.InvalidValue;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* Test class for Tab.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContext*-test.xml" })
public class TabTest
{
/**
* Constructor test for tabName parameter.
*/
@Test
public final void testConstructorTabName()
{
Tab tab = new Tab("testTab", Layout.THREECOLUMN);
assertEquals("tab name does not match value passed into constructor",
"testTab", tab.getTabName());
assertEquals("tab layout does not match value passed into constructor",
Layout.THREECOLUMN, tab.getTabLayout());
tab = new Tab(new TabTemplate("testTab", Layout.THREECOLUMN));
assertEquals("tab name does not match value passed into constructor",
"testTab", tab.getTabName());
assertEquals("tab layout does not match value passed into constructor",
Layout.THREECOLUMN, tab.getTabLayout());
}
/**
* Basic test to ensure the setTabLayout works properly.
*/
@Test
public void testTabLayoutProperty()
{
Layout tabLayout = Layout.THREECOLUMNRIGHTWIDEHEADER;
Tab tab = new Tab("testTab", Layout.THREECOLUMN, new Long(1));
tab.setTabLayout(tabLayout);
assertEquals(
"getTabLayout() doesn't return the same value as the previous setTabLayout()",
tabLayout, tab.getTabLayout());
}
/**
* test.
*/
@Test
public void testIndexValidation()
{
String message = "index must be >= 0";
Tab tab = new Tab("testTab", Layout.THREECOLUMN, new Long(0));
tab.setTabIndex(-1);
ClassValidator<Tab> validator = new ClassValidator<Tab>(Tab.class);
InvalidValue[] invalidValues = validator.getInvalidValues(tab);
assertEquals(message, 1, invalidValues.length);
assertEquals(message, Tab.TAB_INDEX_MESSAGE, invalidValues[0].getMessage());
}
}