package com.eclipsesource.tabris.ui;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.junit.Test;
public class PageDataTest {
@Test
public void testIsSerializable() {
assertTrue( Serializable.class.isAssignableFrom( PageData.class ) );
}
@Test
public void testGetValue() {
PageData data = new PageData();
data.set( "foo", "bar" );
assertEquals( "bar", data.get( "foo", String.class ) );
}
@Test
public void testGetAllValues() {
PageData data = new PageData();
data.set( "foo", "bar" );
data.set( "foo1", "bar" );
Map<String, Object> values = data.getAll();
assertEquals( "bar", values.get( "foo" ) );
assertEquals( "bar", values.get( "foo1" ) );
assertEquals( 2, values.size() );
}
@Test( expected = IllegalArgumentException.class )
public void testGetValueWithWrongType() {
PageData data = new PageData();
data.set( "foo", "bar" );
data.get( "foo", Integer.class );
}
@Test
public void testGetWithNonExistingKeyReturnsNull() {
PageData data = new PageData();
assertNull( data.get( "foo", String.class ) );
}
@Test
public void testGetList() {
PageData data = new PageData();
ArrayList<Object> list = new ArrayList<Object>();
data.set( "foo", list );
List actualList = data.get( "foo", List.class );
assertSame( list, actualList );
}
@Test
public void testShouldHaveSameHashCode() {
PageData pageData1 = new PageData();
pageData1.set( "a", "1" );
PageData pageData2 = new PageData();
pageData2.set( "a", "1" );
int hashCode1 = pageData1.hashCode();
int hashCode2 = pageData2.hashCode();
assertEquals(hashCode1, hashCode2);
}
@Test
public void testShouldNotHaveSameHashCode() {
PageData pageData1 = new PageData();
pageData1.set( "a", "1" );
PageData pageData2 = new PageData();
pageData2.set( "2", "b" );
pageData2.set( "3", "c" );
int hashCode1 = pageData1.hashCode();
int hashCode2 = pageData2.hashCode();
assertNotEquals(hashCode1, hashCode2);
}
@Test
public void testShouldBeEqual() {
PageData pageData1 = new PageData();
pageData1.set( "a", "1" );
PageData pageData2 = new PageData();
pageData2.set( "a", "1" );
boolean equal = pageData1.equals( pageData2 );
assertTrue( equal );
}
@Test
public void testShouldNotBeEqual() {
PageData pageData1 = new PageData();
pageData1.set( "a", "1" );
PageData pageData2 = new PageData();
pageData2.set( "2", "b" );
boolean equal = pageData1.equals( pageData2 );
assertFalse( equal );
}
}