/******************************************************************************* * Copyright (c) 2011, 2014 EclipseSource and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * EclipseSource - initial API and implementation ******************************************************************************/ package org.eclipse.rap.rwt.internal.textsize; import static org.eclipse.rap.rwt.testfixture.internal.SerializationTestUtil.serializeAndDeserialize; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.FontData; import org.junit.Test; public class MeasurementItem_Test { private static final FontData FONT_DATA = new FontData( "arial", 12, SWT.BOLD ); private static final int MODE = TextSizeUtil.STRING_EXTENT; @Test public void testMeasurementItemCreation() { MeasurementItem item = createItem( "text", FONT_DATA, 13, MODE ); assertSame( FONT_DATA, item.getFontData() ); assertSame( "text", item.getTextToMeasure() ); assertEquals( 13, item.getWrapWidth() ); assertEquals( MODE, item.getMode() ); } @Test public void testEquals() { int otherMode = TextSizeUtil.TEXT_EXTENT; FontData otherFontData = new FontData( "helvetia", 12, SWT.BOLD ); MeasurementItem item1 = createItem( "text", FONT_DATA, 13, MODE ); assertTrue( item1.equals( item1 ) ); assertFalse( item1.equals( null ) ); assertFalse( item1.equals( new Object() ) ); assertFalse( item1.equals( createItem( "otherText", FONT_DATA, 13, MODE ) ) ); assertFalse( item1.equals( createItem( "text", otherFontData, 13, MODE ) ) ); assertFalse( item1.equals( createItem( "text", FONT_DATA, 155, MODE ) ) ); assertFalse( item1.equals( createItem( "text", FONT_DATA, 13, otherMode ) ) ); assertTrue( item1.equals( createItem( "text", FONT_DATA, 13, MODE ) ) ); } @Test public void testHashCode() { MeasurementItem item = createItem( "text", FONT_DATA, 13, MODE ); int hashCode = item.hashCode(); assertEquals( 1959330623, hashCode ); } @Test public void testParamTextToMeasureMustNotBeNull() { try { new MeasurementItem( null, FONT_DATA, SWT.DEFAULT, MODE ); fail(); } catch( NullPointerException expected ) { } } @Test public void testParamFontDataMustNotBeNull() { try { new MeasurementItem( "text", null, SWT.DEFAULT, MODE ); fail(); } catch( NullPointerException expected ) { } } @Test public void testIsSerializable() throws Exception { MeasurementItem measurementItem = createItem( "text", FONT_DATA, 155, MODE ); MeasurementItem deserialized = serializeAndDeserialize( measurementItem ); assertEquals( measurementItem.getTextToMeasure(), deserialized.getTextToMeasure() ); assertEquals( measurementItem.getFontData(), deserialized.getFontData() ); assertEquals( measurementItem.getWrapWidth(), deserialized.getWrapWidth() ); } private MeasurementItem createItem( String textToMeasure, FontData fontData, int wrapWidth, int mode ) { return new MeasurementItem( textToMeasure, fontData, wrapWidth, mode ); } }