package component; import encoding.*; import org.junit.Test; import java.util.Arrays; /* * @Author: Wang Feng * @Description: * @Version: 1.0.0 * @Date: 15:41 2021/3/25 * @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室 */ public class ReadOnlyFieldTest { @Test public void TestReadOnlyField_AddBlock() throws EncoderException, ComponentException, BlockException { ReadOnlyField readOnlyField=new ReadOnlyField(); byte[] buf={(byte) 1, (byte)2,(byte) 3,(byte) 4,(byte) 5,(byte) 6,(byte) 7,(byte) 8}; SignatureValue got=new SignatureValue(buf); SignatureValue got1=new SignatureValue(buf); SignatureAlgorithm value=new SignatureAlgorithm(0); SignatureInfo info=new SignatureInfo(value); Signature signature=new Signature(info,got); Signature signature1=new Signature(info,got1); SignatureContainer container=new SignatureContainer(); container.addElement(signature); SignatureField field=new SignatureField(container); field.addSignature(signature1); Encoder encoder=new Encoder(); encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0)); field.wireEncode(encoder); byte[] buffer=encoder.getBuffer(); System.out.println("encoder buf: "+ Arrays.toString(buffer)); Block block=Block.createBlockByBuffer(buffer,false); System.out.println("readOnlyField's block: "+block.getType()+", " +block.getLength()+", "+Arrays.toString(block.getValue())); readOnlyField.addBlock(block); Block block1=readOnlyField.getBlock(0); System.out.println("readOnlyField's block: "+block1.getType()+", " +block1.getLength()+", "+Arrays.toString(block1.getValue())); } @Test public void TestReadOnlyField_GetBlock() throws BlockException, EncoderException, ComponentException { ReadOnlyField readOnlyField=new ReadOnlyField(); byte[] buf={(byte) 1, (byte)2,(byte) 3,(byte) 4,(byte) 5,(byte) 6,(byte) 7,(byte) 8}; SignatureValue got=new SignatureValue(buf); SignatureValue got1=new SignatureValue(buf); SignatureAlgorithm value=new SignatureAlgorithm(0); SignatureInfo info=new SignatureInfo(value); Signature signature=new Signature(info,got); Signature signature1=new Signature(info,got1); SignatureContainer container=new SignatureContainer(); container.addElement(signature); SignatureField field=new SignatureField(container); field.addSignature(signature1); Encoder encoder=new Encoder(); encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0)); field.wireEncode(encoder); byte[] buffer=encoder.getBuffer(); System.out.println("encoder buf: "+ Arrays.toString(buffer)); Block block=Block.createBlockByBuffer(buffer,false); System.out.println("readOnlyField's block: "+block.getType()+", " +block.getLength()+", "+Arrays.toString(block.getValue())); readOnlyField.addBlock(block); readOnlyField.addBlock(block); Block blockError=readOnlyField.getBlock(2); System.out.println("readOnlyField's block: "+blockError.getType()+", " +blockError.getLength()+", "+Arrays.toString(blockError.getValue())); } @Test public void TestReadOnlyField_ClearBlocks() throws BlockException, EncoderException, ComponentException{ ReadOnlyField readOnlyField=new ReadOnlyField(); byte[] buf={(byte) 1, (byte)2,(byte) 3,(byte) 4,(byte) 5,(byte) 6,(byte) 7,(byte) 8}; SignatureValue got=new SignatureValue(buf); SignatureValue got1=new SignatureValue(buf); SignatureAlgorithm value=new SignatureAlgorithm(0); SignatureInfo info=new SignatureInfo(value); Signature signature=new Signature(info,got); Signature signature1=new Signature(info,got1); SignatureContainer container=new SignatureContainer(); container.addElement(signature); SignatureField field=new SignatureField(container); field.addSignature(signature1); Encoder encoder=new Encoder(); encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0)); field.wireEncode(encoder); byte[] buffer=encoder.getBuffer(); System.out.println("encoder buf: "+ Arrays.toString(buffer)); Block block=Block.createBlockByBuffer(buffer,false); System.out.println("readOnlyField's block: "+block.getType()+", " +block.getLength()+", "+Arrays.toString(block.getValue())); readOnlyField.addBlock(block); readOnlyField.addBlock(block); readOnlyField.clearBlocks(); System.out.println(readOnlyField.getBlocks().length()); System.out.println(Arrays.toString(readOnlyField.getBlockByType(new VlInt(202)).getValue())); System.out.println(Arrays.toString(readOnlyField.getBlockByType(new VlInt(51)).getValue())); } @Test public void TestReadOnlyField_WireEncode() throws BlockException, EncoderException, ComponentException{ ReadOnlyField readOnlyField=new ReadOnlyField(); byte[] buf={(byte) 1, (byte)2,(byte) 3,(byte) 4,(byte) 5,(byte) 6,(byte) 7,(byte) 8}; SignatureValue got=new SignatureValue(buf); SignatureValue got1=new SignatureValue(buf); SignatureAlgorithm value=new SignatureAlgorithm(0); SignatureInfo info=new SignatureInfo(value); Signature signature=new Signature(info,got); Signature signature1=new Signature(info,got1); SignatureContainer container=new SignatureContainer(); container.addElement(signature); SignatureField field=new SignatureField(container); field.addSignature(signature1); Encoder encoder=new Encoder(); encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0)); field.wireEncode(encoder); byte[] buffer=encoder.getBuffer(); System.out.println("encoder buf: "+ Arrays.toString(buffer)); Block block=Block.createBlockByBuffer(buffer,false); System.out.println("readOnlyField's block: "+block.getType()+", " +block.getLength()+", "+Arrays.toString(block.getValue())); readOnlyField.addBlock(block); readOnlyField.addBlock(block); encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0)); readOnlyField.wireEncode(encoder); byte[] buffer1=encoder.getBuffer(); System.out.println("readOnlyField buf: "+Arrays.toString(buffer1)); } @Test public void TestReadOnlyField_WireDecode()throws BlockException, EncoderException, ComponentException{ ReadOnlyField readOnlyField=new ReadOnlyField(); byte[] buf={(byte) 1, (byte)2,(byte) 3,(byte) 4,(byte) 5,(byte) 6,(byte) 7,(byte) 8}; SignatureValue got=new SignatureValue(buf); SignatureValue got1=new SignatureValue(buf); SignatureAlgorithm value=new SignatureAlgorithm(0); SignatureInfo info=new SignatureInfo(value); Signature signature=new Signature(info,got); Signature signature1=new Signature(info,got1); SignatureContainer container=new SignatureContainer(); container.addElement(signature); SignatureField field=new SignatureField(container); field.addSignature(signature1); Encoder encoder=new Encoder(); encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0)); field.wireEncode(encoder); byte[] buffer=encoder.getBuffer(); System.out.println("encoder buf: "+ Arrays.toString(buffer)); Block block=Block.createBlockByBuffer(buffer,false); System.out.println("readOnlyField's block: "+block.getType()+", " +block.getLength()+", "+Arrays.toString(block.getValue())); readOnlyField.addBlock(block); readOnlyField.addBlock(block); encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0)); readOnlyField.wireEncode(encoder); byte[] buffer1=encoder.getBuffer(); System.out.println("readOnlyField buf: "+Arrays.toString(buffer1)); Block realBlock=Block.createBlockByBuffer(buffer1,false); ReadOnlyField readOnlyField1=new ReadOnlyField(); readOnlyField1.wireDecode(realBlock); System.out.println(readOnlyField.getBlocks().length()); } }