/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.content.contentdata.custom; import java.io.IOException; import org.jdom.Element; import org.jdom.JDOMException; import org.joda.time.DateTime; import org.junit.Before; import org.junit.Test; import com.enonic.cms.framework.util.JDOMUtil; import com.enonic.cms.core.AbstractEqualsTest; import com.enonic.cms.core.content.ContentKey; import com.enonic.cms.core.content.contentdata.custom.contentkeybased.ImageDataEntry; import com.enonic.cms.core.content.contentdata.custom.relationdataentrylistbased.ImagesDataEntry; import com.enonic.cms.core.content.contentdata.custom.stringbased.TextDataEntry; import com.enonic.cms.core.content.contenttype.ContentHandlerName; import com.enonic.cms.core.content.contenttype.ContentTypeConfig; import com.enonic.cms.core.content.contenttype.ContentTypeConfigParser; import com.enonic.cms.core.content.contenttype.dataentryconfig.DateDataEntryConfig; import com.enonic.cms.core.content.contenttype.dataentryconfig.ImageDataEntryConfig; import com.enonic.cms.core.content.contenttype.dataentryconfig.TextDataEntryConfig; public class CustomContentDataEqualsTest extends AbstractEqualsTest { private Element standardConfigEl; private ImageDataEntryConfig imagesConfig = new ImageDataEntryConfig( "myImages", false, "My images", "contentdata/myimages" ); private TextDataEntryConfig titleConfig = new TextDataEntryConfig( "myTitle", true, "My title", "contentdata/mytitle" ); private DateDataEntryConfig dateConfig = new DateDataEntryConfig( "myDate", false, "My date", "contentdata/mydate" ); private ContentTypeConfig config; @Before public void before() throws IOException, JDOMException { StringBuffer standardConfigXml = new StringBuffer(); standardConfigXml.append( "<config name=\"MyContentType\" version=\"1.0\">" ); standardConfigXml.append( " <form>" ); standardConfigXml.append( " <title name=\"myTitle\"/>" ); standardConfigXml.append( " <block name=\"TestBlock1\">" ); standardConfigXml.append( " <input name=\"myTitle\" required=\"true\" type=\"text\">" ); standardConfigXml.append( " <display>My title</display>" ); standardConfigXml.append( " <xpath>contentdata/mytitle</xpath>" ); standardConfigXml.append( " </input>" ); standardConfigXml.append( " <input name=\"myDate\" type=\"date\">" ); standardConfigXml.append( " <display>My date</display>" ); standardConfigXml.append( " <xpath>contentdata/mydate</xpath>" ); standardConfigXml.append( " </input>" ); standardConfigXml.append( " <input name=\"myBinaryfile\" type=\"uploadfile\">" ); standardConfigXml.append( " <display>My binaryfile</display>" ); standardConfigXml.append( " <xpath>contentdata/mybinaryfile</xpath>" ); standardConfigXml.append( " </input>" ); standardConfigXml.append( " <input name=\"myImages\" type=\"images\">" ); standardConfigXml.append( " <display>My images</display>" ); standardConfigXml.append( " <xpath>contentdata/myimages</xpath>" ); standardConfigXml.append( " </input>" ); standardConfigXml.append( " </block>" ); standardConfigXml.append( " </form>" ); standardConfigXml.append( "</config>" ); standardConfigEl = JDOMUtil.parseDocument( standardConfigXml.toString() ).getRootElement(); config = ContentTypeConfigParser.parse( ContentHandlerName.CUSTOM, standardConfigEl ); } @Test public void testEquals() { assertEqualsContract(); } public Object getObjectX() { CustomContentData instance1 = new CustomContentData( config ); instance1.add( new TextDataEntry( titleConfig, "Hallo" ) ); instance1.add( new DateDataEntry( dateConfig, new DateTime( 2009, 1, 1, 1, 1, 1, 1 ).toDate() ) ); instance1.add( new ImagesDataEntry( imagesConfig ).add( new ImageDataEntry( imagesConfig, new ContentKey( 1 ) ) ) ); return instance1; } public Object[] getObjectsThatNotEqualsX() { CustomContentData instance1 = new CustomContentData( config ); instance1.add( new TextDataEntry( titleConfig, "Hallo 2" ) ); instance1.add( new DateDataEntry( dateConfig, new DateTime( 2005, 1, 1, 1, 1, 1, 1 ).toDate() ) ); instance1.add( new ImagesDataEntry( imagesConfig ).add( new ImageDataEntry( imagesConfig, new ContentKey( 1 ), "imagetext" ) ) ); CustomContentData instance2 = new CustomContentData( config ); instance2.add( new TextDataEntry( titleConfig, "Hallo 3" ) ); instance2.add( new DateDataEntry( dateConfig, new DateTime( 2006, 1, 1, 1, 1, 1, 1 ).toDate() ) ); instance2.add( new ImagesDataEntry( imagesConfig ).add( new ImageDataEntry( imagesConfig, new ContentKey( 2 ) ) ) ); return new Object[]{instance1, instance2}; } public Object getObjectThatEqualsXButNotTheSame() { CustomContentData instance1 = new CustomContentData( config ); instance1.add( new TextDataEntry( titleConfig, "Hallo" ) ); instance1.add( new DateDataEntry( dateConfig, new DateTime( 2009, 1, 1, 1, 1, 1, 1 ).toDate() ) ); instance1.add( new ImagesDataEntry( imagesConfig ).add( new ImageDataEntry( imagesConfig, new ContentKey( 1 ) ) ) ); return instance1; } public Object getObjectThatEqualsXButNotTheSame2() { CustomContentData instance1 = new CustomContentData( config ); instance1.add( new TextDataEntry( titleConfig, "Hallo" ) ); instance1.add( new DateDataEntry( dateConfig, new DateTime( 2009, 1, 1, 1, 1, 1, 1 ).toDate() ) ); instance1.add( new ImagesDataEntry( imagesConfig ).add( new ImageDataEntry( imagesConfig, new ContentKey( 1 ) ) ) ); return instance1; } }