package org.jerlang.stdlib.beam_lib;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.nio.file.Files;
import org.junit.Test;
public class AtomChunkReaderTest {
@Test
public void testAtomChunkReader() throws Throwable {
File file = new File("src/test/resources/pid.beam");
byte[] bytes = Files.readAllBytes(file.toPath());
DataInputStream dis = new DataInputStream(new ByteArrayInputStream(bytes));
Chunk chunk = new Chunk(ChunkId.ATOM, 20, 75);
dis.skipBytes(chunk.offset());
AtomChunkReader atomChunkReader = new AtomChunkReader(chunk, dis);
AtomChunk atomChunk = atomChunkReader.read();
assertNotNull(atomChunk);
assertNotNull(atomChunk.atoms());
assertEquals(9, atomChunk.atoms().length);
assertEquals("pid", atomChunk.atoms()[0].toString());
assertEquals("loop", atomChunk.atoms()[1].toString());
assertEquals("who_are_you", atomChunk.atoms()[2].toString());
assertEquals("erlang", atomChunk.atoms()[3].toString());
assertEquals("self", atomChunk.atoms()[4].toString());
assertEquals("io", atomChunk.atoms()[5].toString());
assertEquals("format", atomChunk.atoms()[6].toString());
assertEquals("module_info", atomChunk.atoms()[7].toString());
assertEquals("get_module_info", atomChunk.atoms()[8].toString());
}
}