package protobuf.codec.xml;
import static junit.framework.Assert.assertEquals;
import java.io.StringReader;
import java.io.StringWriter;
import org.junit.Before;
import org.junit.Test;
import protobuf.codec.Codec;
import protobuf.codec.xml.TypesProtoBuf.Unknown;
import protobuf.codec.xml.TypesProtoBuf.Version;
import com.google.protobuf.ExtensionRegistry;
public class TestUnkownFields {
private Unknown typesUnknown;
private protobuf.codec.xml.UnknownProtoBuf.Unknown unknownUnknown;
@Before
public void setUp() {
typesUnknown = Unknown
.newBuilder()
.setId(1)
.setName("HelloWorld")
.addAlias("superman")
.addAlias("spiderman")
.addVerions(
Version.newBuilder().setName("ver1").setVernum(1)
.build())
.addVerions(
Version.newBuilder().setName("ver2").setVernum(2)
.build())
.setLiveversion(
Version.newBuilder().setName("liveversion")
.setVernum(100).build())
.setExtension(TypesProtoBuf.othername, "other extn").build();
unknownUnknown = protobuf.codec.xml.UnknownProtoBuf.Unknown
.newBuilder().setName("Hello Unknown").build();
}
@Test
public void serializeUnknownBasic() throws Exception {
protobuf.codec.xml.UnknownProtoBuf.Unknown unknown1 = protobuf.codec.xml.UnknownProtoBuf.Unknown
.newBuilder().mergeFrom(typesUnknown.toByteArray()).build();
byte[] unknowns = unknown1.getUnknownFields().toByteArray();
Codec codec = new XmlCodec();
StringWriter writer = new StringWriter();
codec.fromMessage(unknown1, writer);
String xml = writer.toString();
ExtensionRegistry extnReg = ExtensionRegistry.newInstance();
extnReg.add(TypesProtoBuf.othername);
assertEquals(typesUnknown,
codec.toMessage(Unknown.class, new StringReader(xml), extnReg));
}
}