/*******************************************************************************
* Copyright (c) 2013 EclipseSource.
* 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:
* Ralf Sternberg - initial implementation and API
******************************************************************************/
package org.eclipse.rap.json;
import static org.eclipse.rap.json.TestUtil.serializeAndDeserialize;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.io.StringWriter;
import org.junit.Before;
import org.junit.Test;
public class JsonLiteral_Test {
private StringWriter stringWriter;
private JsonWriter jsonWriter;
@Before
public void setUp() {
stringWriter = new StringWriter();
jsonWriter = new JsonWriter( stringWriter );
}
@Test
public void write_NULL() throws IOException {
JsonValue.NULL.write( jsonWriter );
assertEquals( "null", stringWriter.toString() );
}
@Test
public void write_TRUE() throws IOException {
JsonValue.TRUE.write( jsonWriter );
assertEquals( "true", stringWriter.toString() );
}
@Test
public void write_FALSE() throws IOException {
JsonValue.FALSE.write( jsonWriter );
assertEquals( "false", stringWriter.toString() );
}
@Test
public void toString_NULL() {
assertEquals( "null", JsonValue.NULL.toString() );
}
@Test
public void toString_TRUE() {
assertEquals( "true", JsonValue.TRUE.toString() );
}
@Test
public void toString_FALSE() {
assertEquals( "false", JsonValue.FALSE.toString() );
}
@Test
public void asBoolean() {
assertTrue( JsonValue.TRUE.asBoolean() );
assertFalse( JsonValue.FALSE.asBoolean() );
}
@Test( expected = UnsupportedOperationException.class )
public void asBoolean_failsIfNotBoolean() {
new JsonLiteral( "foo" ).asBoolean();
}
@Test
public void isNull() {
assertTrue( JsonValue.NULL.isNull() );
assertFalse( JsonValue.TRUE.isNull() );
assertFalse( JsonValue.FALSE.isNull() );
}
@Test
public void isBoolean() {
assertFalse( JsonValue.NULL.isBoolean() );
assertTrue( JsonValue.TRUE.isBoolean() );
assertTrue( JsonValue.FALSE.isBoolean() );
}
@Test
public void isTrue() {
assertFalse( JsonValue.NULL.isTrue() );
assertTrue( JsonValue.TRUE.isTrue() );
assertFalse( JsonValue.FALSE.isTrue() );
}
@Test
public void isFalse() {
assertFalse( JsonValue.NULL.isFalse() );
assertFalse( JsonValue.TRUE.isFalse() );
assertTrue( JsonValue.FALSE.isFalse() );
}
@Test
public void equals_trueForSameInstance() {
JsonLiteral literal = new JsonLiteral( "foo" );
assertTrue( literal.equals( literal ) );
}
@Test
public void equals_trueForEqualObjects() {
assertTrue( new JsonLiteral( "foo" ).equals( new JsonLiteral( "foo" ) ) );
}
@Test
public void equals_falseForDifferentArrays() {
assertFalse( new JsonLiteral( "foo" ).equals( new JsonLiteral( "bar" ) ) );
}
@Test
public void equals_falseForNull() {
assertFalse( new JsonLiteral( "foo" ).equals( null ) );
}
@Test
public void equals_falseForSubclass() {
assertFalse( new JsonLiteral( "foo" ).equals( new JsonLiteral( "foo" ) {} ) );
}
@Test
public void hashCode_equalsForEqualObjects() {
assertTrue( new JsonLiteral( "foo" ).hashCode() == new JsonLiteral( "foo" ).hashCode() );
}
@Test
public void hashCode_differsForDifferingObjects() {
assertFalse( new JsonLiteral( "foo" ).hashCode() == new JsonLiteral( "bar" ).hashCode() );
}
@Test
public void canBeSerializedAndDeserialized() throws Exception {
assertEquals( JsonValue.NULL, serializeAndDeserialize( JsonValue.NULL ) );
assertEquals( JsonValue.TRUE, serializeAndDeserialize( JsonValue.TRUE ) );
assertEquals( JsonValue.FALSE, serializeAndDeserialize( JsonValue.FALSE ) );
}
}