package net.kennux.cubicworld.test;
import junit.framework.TestCase;
import net.kennux.cubicworld.plugins.baseplugin.BasePlugin;
import net.kennux.cubicworld.serialization.BitReader;
import net.kennux.cubicworld.serialization.BitWriter;
import net.kennux.cubicworld.serialization.SerializationTypes;
import net.kennux.cubicworld.serialization.Serializer;
import net.kennux.cubicworld.serialization.annotations.SerializerField;
import net.kennux.cubicworld.test.serializer.SerializerTestClass;
import net.kennux.cubicworld.voxel.VoxelData;
import net.kennux.cubicworld.voxel.VoxelEngine;
import org.junit.Test;
import com.badlogic.gdx.math.Vector3;
public class SerializerTest extends TestCase
{
/**
* Tests reading / writing all data types
*/
@Test
public void testSerializer()
{
SerializerTestClass testClass = new SerializerTestClass();
testClass.b = (byte)123;
testClass.bA = new byte[] { 12, 32, 45 };
testClass.bool = true;
testClass.c = 'a';
testClass.f = 2.5776f;
testClass.i = 1337;
testClass.l = 13371l;
testClass.s = (short) 133;
testClass.str = "LEET";
testClass.v3 = new Vector3(10, 13, 37);
// Serialize
BitWriter writer = new BitWriter();
Serializer.serialize(writer, testClass);
// Deserialize
BitReader reader = new BitReader(writer.getPacket());
SerializerTestClass testClass2 = Serializer.deserialize(reader, testClass.getClass());
// Perform assertions
assertEquals(testClass.b, testClass2.b);
for (int i = 0; i < testClass2.bA.length; i++)
assertEquals(testClass.bA[i], testClass2.bA[i]);
assertEquals(testClass.bool, testClass2.bool);
assertEquals(testClass.c, testClass2.c);
assertEquals(testClass.f, testClass2.f);
assertEquals(testClass.i, testClass2.i);
assertEquals(testClass.l, testClass2.l);
assertEquals(testClass.s, testClass2.s);
assertEquals(testClass.str, testClass2.str);
assertEquals(testClass.v3.x, testClass2.v3.x);
assertEquals(testClass.v3.y, testClass2.v3.y);
assertEquals(testClass.v3.z, testClass2.v3.z);
}
}