use of org.ballerinalang.nativeimpl.io.channels.base.CharacterChannel in project ballerina by ballerina-lang.
the class CharacterInputOutputBufferTest method readLongCharacters.
@Test(description = "Reads characters which are represented with long bytes")
public void readLongCharacters() throws IOException, URISyntaxException {
int numberOfCharactersToRead = 2;
// Number of characters in this file would be 6
ByteChannel byteChannel = TestUtil.openForReading("datafiles/io/text/longChars.txt");
Channel channel = new MockByteChannel(byteChannel);
CharacterChannel characterChannel = new CharacterChannel(channel, StandardCharsets.UTF_8.name());
String readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals("NJa", readCharacters);
numberOfCharactersToRead = 3;
readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals("bcNJ", readCharacters);
numberOfCharactersToRead = 4;
readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals("ff", readCharacters);
characterChannel.close();
}
use of org.ballerinalang.nativeimpl.io.channels.base.CharacterChannel in project ballerina by ballerina-lang.
the class CharacterInputOutputBufferTest method readFussyCharacters.
@Test(description = "Read characters which does not fit to the fixed buffer limit")
public void readFussyCharacters() throws IOException, URISyntaxException {
int numberOfCharactersToRead = 2;
// Number of characters in this file would be 6
ByteChannel byteChannel = TestUtil.openForReading("datafiles/io/text/utf8file.txt");
Channel channel = new MockByteChannel(byteChannel);
CharacterChannel characterChannel = new CharacterChannel(channel, StandardCharsets.UTF_8.name());
String readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals(readCharacters, "aa");
numberOfCharactersToRead = 4;
readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals(readCharacters, "abbNJ");
readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals(readCharacters.length(), 0);
characterChannel.close();
}
use of org.ballerinalang.nativeimpl.io.channels.base.CharacterChannel in project ballerina by ballerina-lang.
the class CharacterInputOutputBufferTest method writeCharacters.
@Test(description = "Write characters to file")
public void writeCharacters() throws IOException {
// Number of characters in this file would be 6
ByteChannel byteChannel = TestUtil.openForWriting(currentDirectoryPath + "write.txt");
Channel channel = new MockByteChannel(byteChannel);
CharacterChannel characterChannel = new CharacterChannel(channel, StandardCharsets.UTF_8.name());
String text = "HelloNJ";
int numberOfBytes = text.getBytes().length;
int numberOfBytesWritten = characterChannel.write(text, 0);
Assert.assertEquals(numberOfBytesWritten, numberOfBytes);
characterChannel.close();
}
use of org.ballerinalang.nativeimpl.io.channels.base.CharacterChannel in project ballerina by ballerina-lang.
the class CharacterInputOutputBufferTest method readCharacters.
@Test(description = "Read characters into multiple iterations")
public void readCharacters() throws IOException, URISyntaxException {
int numberOfCharactersToRead = 2;
// Number of characters in this file would be 6
ByteChannel byteChannel = TestUtil.openForReading("datafiles/io/text/6charfile.txt");
Channel channel = new MockByteChannel(byteChannel);
CharacterChannel characterChannel = new CharacterChannel(channel, StandardCharsets.UTF_8.name());
String readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals(readCharacters.length(), numberOfCharactersToRead);
numberOfCharactersToRead = 1;
readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals(readCharacters.length(), numberOfCharactersToRead);
numberOfCharactersToRead = 4;
readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals(readCharacters.length(), 3);
characterChannel.close();
}
use of org.ballerinalang.nativeimpl.io.channels.base.CharacterChannel in project ballerina by ballerina-lang.
the class AsyncReadWriteTest method readTextRecords.
@Test(description = "Test which will read text records from a given channel using async io framework")
public void readTextRecords() throws IOException, URISyntaxException, ExecutionException, InterruptedException {
int expectedFieldCount = 3;
// Number of characters in this file would be 6
ByteChannel byteChannel = TestUtil.openForReading("datafiles/io/records/sample.csv");
Channel channel = new MockByteChannel(byteChannel);
CharacterChannel characterChannel = new CharacterChannel(channel, StandardCharsets.UTF_8.name());
DelimitedRecordChannel recordChannel = new DelimitedRecordChannel(characterChannel, "\n", ",");
DelimitedRecordReadEvent event = new DelimitedRecordReadEvent(recordChannel);
Future<EventResult> future = eventManager.publish(event);
EventResult eventResult = future.get();
String[] readRecord = (String[]) eventResult.getResponse();
Assert.assertEquals(readRecord.length, expectedFieldCount);
event = new DelimitedRecordReadEvent(recordChannel);
future = eventManager.publish(event);
eventResult = future.get();
readRecord = (String[]) eventResult.getResponse();
Assert.assertEquals(readRecord.length, expectedFieldCount);
event = new DelimitedRecordReadEvent(recordChannel);
future = eventManager.publish(event);
eventResult = future.get();
readRecord = (String[]) eventResult.getResponse();
Assert.assertEquals(readRecord.length, expectedFieldCount);
event = new DelimitedRecordReadEvent(recordChannel);
future = eventManager.publish(event);
eventResult = future.get();
readRecord = (String[]) eventResult.getResponse();
Assert.assertEquals(readRecord.length, 0);
recordChannel.close();
}
Aggregations