package pt.ist.fenixframework.test.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.Serializable;
import java.util.Arrays;
import org.joda.time.DateTime;
import org.joda.time.DateTimeFieldType;
import org.joda.time.LocalDate;
import org.joda.time.LocalTime;
import org.joda.time.Partial;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import pt.ist.fenixframework.util.JsonConverter;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
@RunWith(JUnit4.class)
public class JsonConverterTest {
@Test
public void testBoolean() {
Boolean original = new Boolean(true);
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("Boolean: " + element.toString());
Boolean other = JsonConverter.getBooleanFromJson(element);
assertEquals(original, other);
}
@Test
public void testByte() {
Byte original = new Byte("12");
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("Byte: " + element.toString());
Byte other = JsonConverter.getByteFromJson(element);
assertEquals(original, other);
}
@Test
public void testCharacter() {
Character original = new Character('c');
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("Character: " + element.toString());
Character other = JsonConverter.getCharacterFromJson(element);
assertEquals(original, other);
}
@Test
public void testShort() {
Short original = new Short("42");
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("Short: " + element.toString());
Short other = JsonConverter.getShortFromJson(element);
assertEquals(original, other);
}
@Test
public void testInteger() {
Integer original = new Integer(42);
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("Integer: " + element.toString());
Integer other = JsonConverter.getIntegerFromJson(element);
assertEquals(original, other);
}
@Test
public void testFloat() {
Float original = new Float(42.0);
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("Float: " + element.toString());
Float other = JsonConverter.getFloatFromJson(element);
assertEquals(original, other);
}
@Test
public void testLong() {
Long original = new Long(424242424242l);
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("Long: " + element.toString());
Long other = JsonConverter.getLongFromJson(element);
assertEquals(original, other);
}
@Test
public void testDouble() {
Double original = new Double(42.0d);
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("Double: " + element.toString());
Double other = JsonConverter.getDoubleFromJson(element);
assertEquals(original, other);
}
@Test
public void testString() {
String original = new String("Hello World");
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("String: " + element.toString());
String other = JsonConverter.getStringFromJson(element);
assertEquals(original, other);
}
@Test
public void testbytearray() {
byte[] original = new byte[2];
original[0] = 4;
original[1] = 2;
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("bytearray: " + element.toString());
byte[] other = JsonConverter.getBytearrayFromJson(element);
assertTrue(Arrays.equals(original, other));
}
@Test
public void testDateTime() {
DateTime original = new DateTime();
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("DateTime: " + element.toString());
DateTime other = JsonConverter.getDateTimeFromJson(element);
assertEquals(original, other);
}
@Test
public void testLocalDate() {
LocalDate original = new LocalDate();
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("LocalDate: " + element.toString());
LocalDate other = JsonConverter.getLocalDateFromJson(element);
assertEquals(original, other);
}
@Test
public void testLocalTime() {
LocalTime original = new LocalTime();
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("LocalTime: " + element.toString());
LocalTime other = JsonConverter.getLocalTimeFromJson(element);
assertEquals(original, other);
}
@Test
public void testPartial() {
Partial original = new Partial(DateTimeFieldType.hourOfDay(), 10).with(DateTimeFieldType.era(), 0);
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("Partial: " + element.toString());
Partial other = JsonConverter.getPartialFromJson(element);
assertEquals(original, other);
}
@Test
public void testSerializable() {
Serializable original = new DateTime();
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("Serializable: " + element.toString());
Serializable other = JsonConverter.getSerializableFromJson(element);
assertEquals(original, other);
}
@Test
public void testJsonElement() {
JsonObject original = new JsonObject();
original.addProperty("it's sad but it's", true);
JsonElement element = JsonConverter.getJsonFor(original);
System.out.println("JsonElement: " + element.toString());
JsonElement other = JsonConverter.getJsonElementFromJson(element);
assertEquals(original, other);
}
}