/*
* 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 java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import junit.framework.Assert;
import org.hibernate.validator.ClassValidator;
import org.hibernate.validator.InvalidValue;
import org.junit.Before;
import org.junit.Test;
/**
* Test class for Tab.
*/
public class TabTemplateTest
{
/** fixture. */
private String message;
/** fixture. */
private String name = "name";
/** fixture. */
private Layout layout = Layout.ONECOLUMN;
/** fixture. */
private List<Gadget> gadgets = new ArrayList<Gadget>();
/** fixture. */
private TabTemplate sut = new TabTemplate(name, layout);
/**
* Setup for tests.
*/
@Before
public void setup()
{
message = null;
sut = new TabTemplate(name, layout);
}
/**
* test.
*/
@Test
public void testConstructor()
{
message = "constructor parameters should be stored and accessible via setters";
assertEquals(message, name, sut.getTabName());
Assert.assertEquals(message, layout, sut.getTabLayout());
}
/**
* test.
*/
@Test
public void testAccessors()
{
message = "accessor parameters should be stored and accessible via getters/setters";
// assert preconditions
assertEquals(message, name, sut.getTabName());
Assert.assertEquals(message, layout, sut.getTabLayout());
String gadgetUrl = "http://www.example.com";
GadgetDefinition def =
new GadgetDefinition(gadgetUrl, UUID.randomUUID().toString(), new GalleryItemCategory("somecategory"));
Gadget gadget = new Gadget(def, 1, 0, new Person(), "");
gadgets.clear();
gadgets.add(gadget);
// call accessors
String newName = "another name";
Layout newLayout = Layout.ONECOLUMN;
sut.setTabLayout(newLayout);
sut.setTabName(newName);
sut.setGadgets(gadgets);
// assert postconditions
assertEquals(message, newName, sut.getTabName());
Assert.assertEquals(message, layout, sut.getTabLayout());
assertEquals(message, gadgets, sut.getGadgets());
}
/**
* test.
*/
@Test
public void testNameValidation()
{
message = "name should follow validation rules";
String newName = "";
sut.setTabName(newName);
ClassValidator<TabTemplate> validator = new ClassValidator<TabTemplate>(TabTemplate.class);
InvalidValue[] invalidValues = validator.getInvalidValues(sut);
assertEquals(message, 1, invalidValues.length);
assertEquals(message, TabTemplate.MAX_TAB_NAME_MESSAGE, invalidValues[0].getMessage());
}
}