package ser.serializers; import org.junit.Assert; import org.junit.Test; import org.nustaq.serialization.FSTConfiguration; import java.io.Serializable; import java.util.EnumSet; import java.util.Set; /** * User: Evgeniy Devyatyh */ public class FSTEnumSetSerializerTest { private enum SomeEnum { override { @Override public boolean getSomeBool() { return true; } }, plain; public boolean getSomeBool() { return false; } } static class Clazz implements Serializable { Set<SomeEnum> enumSet = EnumSet.of(SomeEnum.override, SomeEnum.plain); } @Test public void shouldSerializeEnumSet() throws Exception { FSTConfiguration conf = FSTConfiguration.createDefaultConfiguration(); byte[] bytes = conf.asByteArray(new Clazz()); Clazz o = (Clazz) conf.asObject(bytes); Assert.assertEquals(o.enumSet, EnumSet.of(SomeEnum.override, SomeEnum.plain)); } @Test public void shouldCompatibleSerializeEnumSet() throws Exception { FSTConfiguration conf = FSTConfiguration.createMinBinConfiguration(); byte[] bytes = conf.asByteArray(new Clazz()); Clazz o = (Clazz) conf.asObject(bytes); Assert.assertEquals(o.enumSet, EnumSet.of(SomeEnum.override, SomeEnum.plain)); } @Test public void shouldCompatibleSerializeEmptyEnumSet() throws Exception { FSTConfiguration conf = FSTConfiguration.createMinBinConfiguration(); Clazz object = new Clazz(); object.enumSet = EnumSet.noneOf(SomeEnum.class); byte[] bytes = conf.asByteArray(object); Clazz o = (Clazz) conf.asObject(bytes); Assert.assertEquals(o.enumSet, EnumSet.noneOf(SomeEnum.class)); } }