// Path: src/main/java/com/urbanairship/datacube/serializables/BooleanSerializable.java
// public class BooleanSerializable implements CSerializable {
//     private final boolean bool;
//     private static final byte[] FALSE_SERIAL = new byte[]{0};
//     private static final byte[] TRUE_SERIAL = new byte[]{1};
// 
//     public BooleanSerializable(boolean bool) {
//         this.bool = bool;
//     }
// 
//     @Override
//     public byte[] serialize() {
//         return staticSerialize(bool);
//     }
// 
//     public static byte[] staticSerialize(boolean b) {
//         if (b) {
//             return TRUE_SERIAL;
//         } else {
//             return FALSE_SERIAL;
//         }
//     }
// }
// 
// Path: src/main/java/com/urbanairship/datacube/serializables/EnumSerializable.java
// public class EnumSerializable implements CSerializable {
//     private final int ordinal;
//     private final int numFieldBytes;
// 
//     /**
//      * @param numFieldBytes the number of bytes to produce for serialized version of this
//      *                      enum
//      */
//     public EnumSerializable(Enum<?> enumInstance, int numFieldBytes) {
//         this.ordinal = enumInstance.ordinal();
//         this.numFieldBytes = numFieldBytes;
// 
//         if (numFieldBytes < 1 || numFieldBytes > 4) {
//             throw new IllegalArgumentException("numFieldBytes must be in [1..4]");
//         }
//     }
// 
//     @Override
//     public byte[] serialize() {
//         return staticSerialize(ordinal, numFieldBytes);
//     }
// 
//     public static byte[] staticSerialize(Enum<?> enumInstance, int numFieldBytes) {
//         return staticSerialize(enumInstance.ordinal(), numFieldBytes);
//     }
// 
//     public static byte[] staticSerialize(int ordinal, int numFieldBytes) {
//         return Util.intToBytesWithLen(ordinal, numFieldBytes);
//     }
// }
// 
// Path: src/main/java/com/urbanairship/datacube/serializables/StringSerializable.java
// public class StringSerializable implements CSerializable {
//     private final String s;
// 
//     public StringSerializable(String s) {
//         this.s = s;
//     }
// 
//     @Override
//     public byte[] serialize() {
//         return staticSerialize(s);
//     }
// 
//     public static byte[] staticSerialize(String s) {
//         try {
//             return s.getBytes("UTF8");
//         } catch (UnsupportedEncodingException e) {
//             // No reasonable JVM will lack UTF8
//             throw new RuntimeException(e);
//         }
//     }
// }


import com.urbanairship.datacube.serializables.BooleanSerializable;
import com.urbanairship.datacube.serializables.BytesSerializable;
import com.urbanairship.datacube.serializables.EnumSerializable;
import com.urbanairship.datacube.serializables.IntSerializable;
import com.urbanairship.datacube.serializables.LongSerializable;
import com.urbanairship.datacube.serializables.StringSerializable;
import org.junit.Assert;
import org.junit.Test;
import java.nio.ByteBuffer;
/*
Copyright 2012 Urban Airship and Contributors
*/

package com.urbanairship.datacube;



/**
 * Test to make sure the serializers do what we expect them to do.
 */
public class SerializerTests {
    public static final byte[] FALSE_CASE = new byte[]{0};
    public static final byte[] TRUE_CASE = new byte[]{1};
    public static final long TEST_LONG = 5L;
    public static final String TEST_STRING = "test";

    @Test
    public void testBooleanSerializable() throws Exception {
        Assert.assertArrayEquals(new BooleanSerializable(true).serialize(), TRUE_CASE);
        Assert.assertArrayEquals(new BooleanSerializable(false).serialize(), FALSE_CASE);
    }

    @Test
    public void testBytesSerializable() throws Exception {
        Assert.assertArrayEquals(
// Path: src/main/java/com/urbanairship/datacube/serializables/BooleanSerializable.java
// public class BooleanSerializable implements CSerializable {
//     private final boolean bool;
//     private static final byte[] FALSE_SERIAL = new byte[]{0};
//     private static final byte[] TRUE_SERIAL = new byte[]{1};
// 
//     public BooleanSerializable(boolean bool) {
//         this.bool = bool;
//     }
// 
//     @Override
//     public byte[] serialize() {
//         return staticSerialize(bool);
//     }
// 
//     public static byte[] staticSerialize(boolean b) {
//         if (b) {
//             return TRUE_SERIAL;
//         } else {
//             return FALSE_SERIAL;
//         }
//     }
// }
// 
// Path: src/main/java/com/urbanairship/datacube/serializables/EnumSerializable.java
// public class EnumSerializable implements CSerializable {
//     private final int ordinal;
//     private final int numFieldBytes;
// 
//     /**
//      * @param numFieldBytes the number of bytes to produce for serialized version of this
//      *                      enum
//      */
//     public EnumSerializable(Enum<?> enumInstance, int numFieldBytes) {
//         this.ordinal = enumInstance.ordinal();
//         this.numFieldBytes = numFieldBytes;
// 
//         if (numFieldBytes < 1 || numFieldBytes > 4) {
//             throw new IllegalArgumentException("numFieldBytes must be in [1..4]");
//         }
//     }
// 
//     @Override
//     public byte[] serialize() {
//         return staticSerialize(ordinal, numFieldBytes);
//     }
// 
//     public static byte[] staticSerialize(Enum<?> enumInstance, int numFieldBytes) {
//         return staticSerialize(enumInstance.ordinal(), numFieldBytes);
//     }
// 
//     public static byte[] staticSerialize(int ordinal, int numFieldBytes) {
//         return Util.intToBytesWithLen(ordinal, numFieldBytes);
//     }
// }
// 
// Path: src/main/java/com/urbanairship/datacube/serializables/StringSerializable.java
// public class StringSerializable implements CSerializable {
//     private final String s;
// 
//     public StringSerializable(String s) {
//         this.s = s;
//     }
// 
//     @Override
//     public byte[] serialize() {
//         return staticSerialize(s);
//     }
// 
//     public static byte[] staticSerialize(String s) {
//         try {
//             return s.getBytes("UTF8");
//         } catch (UnsupportedEncodingException e) {
//             // No reasonable JVM will lack UTF8
//             throw new RuntimeException(e);
//         }
//     }
// }


// Path: src/test/java/com/urbanairship/datacube/SerializerTests.java
import com.urbanairship.datacube.serializables.BooleanSerializable;
import com.urbanairship.datacube.serializables.BytesSerializable;
import com.urbanairship.datacube.serializables.EnumSerializable;
import com.urbanairship.datacube.serializables.IntSerializable;
import com.urbanairship.datacube.serializables.LongSerializable;
import com.urbanairship.datacube.serializables.StringSerializable;
import org.junit.Assert;
import org.junit.Test;
import java.nio.ByteBuffer;

/*
Copyright 2012 Urban Airship and Contributors
*/

package com.urbanairship.datacube;



/**
 * Test to make sure the serializers do what we expect them to do.
 */
public class SerializerTests {
    public static final byte[] FALSE_CASE = new byte[]{0};
    public static final byte[] TRUE_CASE = new byte[]{1};
    public static final long TEST_LONG = 5L;
    public static final String TEST_STRING = "test";

    @Test
    public void testBooleanSerializable() throws Exception {
        Assert.assertArrayEquals(new BooleanSerializable(true).serialize(), TRUE_CASE);
        Assert.assertArrayEquals(new BooleanSerializable(false).serialize(), FALSE_CASE);
    }

    @Test
    public void testBytesSerializable() throws Exception {
        Assert.assertArrayEquals(
                new BytesSerializable(new byte[]{1}).serialize(), TRUE_CASE);