/*
 * Created on 24-Feb-2005
 */
package org.bodington.server.resources;

import java.util.Hashtable;

import org.bodington.server.BuildingServerException;
import org.bodington.server.BuildingServerTest;

/**
 * @author buckett
 */
public class BlogResourceTest extends BuildingServerTest
{
    private BlogResource blogResource;
    
    public void setUp() throws Exception
    {
        super.setUp();
        blogResource = new BlogResource();
        blogResource.setAclId(acl.getAclId());
        blogResource.setName("blogtest");
        blogResource.setTitle("Blog Test");
        blogResource.setIntroduction("Don't need one");
        blogResource.setDescription("Nothing to say");
    }

    public void testSave() throws BuildingServerException
    {
        blogResource.save();
        assertTrue(blogResource.getPrimaryKey() != null);
    }
    
    // Check that we protect the database and only save when necessary
    public void testOnlyUpdateWhenNeeded() throws BuildingServerException
    {
        blogResource.setDisplayAuthor(true);
        blogResource.setDisplayAuthor(false);
        assertTrue(blogResource.isUnsaved());
        blogResource.save();
        assertFalse(blogResource.isUnsaved());
        blogResource.setDisplayAuthor(false);
        assertFalse(blogResource.isUnsaved());
        
    }
    
    public void testLoadTransformParams() throws BuildingServerException
    {
        blogResource.setDisplayAuthor(true);
        blogResource.setDisplayDate(true);
        blogResource.setDisplayDescription(true);
        blogResource.setDisplayItemAuthors(true);
        blogResource.setDisplayItemContent(true);
        blogResource.setDisplayItemDate(true);
        blogResource.setDisplayItemTitles(true);
        blogResource.setDisplayExcerpt(true);
        blogResource.setDisplayImage(true);
        blogResource.setDisplayTitle(true);
        
        Hashtable table = blogResource.loadTransformParams();
        assertTrue(table.get("isDisplayAuthor").equals("true"));
        assertTrue(table.get("isDisplayDate").equals("true"));
        assertTrue(table.get("isDisplayDescription").equals("true"));
        assertTrue(table.get("isDisplayItemAuthors").equals("true"));
        assertTrue(table.get("isDisplayItemContent").equals("true"));
        assertTrue(table.get("isDisplayItemDate").equals("true"));
        assertTrue(table.get("isDisplayItemTitles").equals("true"));
        assertTrue(table.get("isDisplayExcerpt").equals("true"));
        assertTrue(table.get("isDisplayImage").equals("true"));
        assertTrue(table.get("isDisplayTitle").equals("true"));
        
        blogResource.setDisplayAuthor(false);
        table = blogResource.loadTransformParams();
        assertTrue(table.get("isDisplayAuthor") == null);
        blogResource.setDisplayDate(false);
        table = blogResource.loadTransformParams();
        assertTrue(table.get("isDisplayDate") == null);
        blogResource.setDisplayDescription(false);
        table = blogResource.loadTransformParams();
        assertTrue(table.get("isDisplayDescription") == null);
        blogResource.setDisplayItemAuthors(false);
        table = blogResource.loadTransformParams();
        assertTrue(table.get("isDisplayItemAuthor") == null);
        blogResource.setDisplayItemContent(false);
        table = blogResource.loadTransformParams();
        assertTrue(table.get("isDisplayItemContent") == null);
        blogResource.setDisplayItemDate(false);
        table = blogResource.loadTransformParams();
        assertTrue(table.get("isDisplayItemDate") == null);
        blogResource.setDisplayItemTitles(false);
        table = blogResource.loadTransformParams();
        assertTrue(table.get("isDisplayItemTitles") == null);
        blogResource.setDisplayExcerpt(false);
        table = blogResource.loadTransformParams();
        assertTrue(table.get("isDisplayExcerpt") == null);
        blogResource.setDisplayImage(false);
        table = blogResource.loadTransformParams();
        assertTrue(table.get("isDisplayImage") == null);
        blogResource.setDisplayTitle(false);
        table = blogResource.loadTransformParams();
        assertTrue(table.get("isDisplayTitle") == null);
        
    }
    
    public void testSetDisplayAuthor() throws BuildingServerException
    {
        blogResource.setDisplayAuthor(true);
        assertTrue(blogResource.isDisplayAuthor());
        blogResource.setDisplayAuthor(false);
        assertFalse(blogResource.isDisplayAuthor());
    }
    
    public void testSetDisplayDate() throws BuildingServerException
    {
        blogResource.setDisplayDate(true);
        assertTrue(blogResource.isDisplayDate());
        blogResource.setDisplayDate(false);
        assertFalse(blogResource.isDisplayDate());
    }
    
    public void testSetDisplayDescription() throws BuildingServerException
    {
        blogResource.setDisplayDescription(true);
        assertTrue(blogResource.isDisplayDescription());
        blogResource.setDisplayDescription(false);
        assertFalse(blogResource.isDisplayDescription());
    }
    
    public void testsetDisplayItemAuthors() throws BuildingServerException
    {
        blogResource.setDisplayItemAuthors(true);
        assertTrue(blogResource.isDisplayItemAuthors());
        blogResource.setDisplayItemAuthors(false);
        assertFalse(blogResource.isDisplayItemAuthors());
    }

    public void testSetDisplayItemContent() throws BuildingServerException
    {
        blogResource.setDisplayItemContent(true);
        assertTrue(blogResource.isDisplayItemContent());
        blogResource.setDisplayItemContent(false);
        assertFalse(blogResource.isDisplayItemContent());
    }

    public void testSetDisplayItemDate() throws BuildingServerException
    {
        blogResource.setDisplayItemDate(true);
        assertTrue(blogResource.isDisplayItemDate());
        blogResource.setDisplayItemDate(false);
        assertFalse(blogResource.isDisplayItemDate());
    }

    public void testSetDisplayItemTitles() throws BuildingServerException
    {
        blogResource.setDisplayItemTitles(true);
        assertTrue(blogResource.isDisplayItemTitles());
        blogResource.setDisplayItemTitles(false);
        assertFalse(blogResource.isDisplayItemTitles());
    }

    public void testSetDisplayExcerpt() throws BuildingServerException
    {
        blogResource.setDisplayExcerpt(true);
        assertTrue(blogResource.isDisplayExcerpt());
        blogResource.setDisplayExcerpt(false);
        assertFalse(blogResource.isDisplayExcerpt());
    }

    public void testSetDisplayImage() throws BuildingServerException
    {
        blogResource.setDisplayImage(true);
        assertTrue(blogResource.isDisplayImage());
        blogResource.setDisplayImage(false);
        assertFalse(blogResource.isDisplayImage());
    }
    
    public void testSetDisplayInline() throws BuildingServerException
    {
        blogResource.setDisplayInline(true);
        assertTrue(blogResource.isDisplayInline());
        blogResource.setDisplayInline(false);
        assertFalse(blogResource.isDisplayInline());
    }
    
    public void testSetDisplayTitle() throws BuildingServerException
    {
        blogResource.setDisplayTitle(true);
        assertTrue(blogResource.isDisplayTitle());
        blogResource.setDisplayTitle(false);
        assertFalse(blogResource.isDisplayTitle());
    }
    
}
