use of org.ballerinalang.nativeimpl.io.channels.base.CharacterChannel in project ballerina by ballerina-lang.
the class MimeUtilityFunctionTest method testLargePayload.
@Test(description = "When the payload exceeds 2MB check whether the response received back matches " + "the original content length")
public void testLargePayload() {
String path = "/test/largepayload";
try {
ByteChannel byteChannel = TestUtil.openForReading("datafiles/io/text/fileThatExceeds2MB.txt");
Channel channel = new MockByteChannel(byteChannel, 10);
CharacterChannel characterChannel = new CharacterChannel(channel, StandardCharsets.UTF_8.name());
String responseValue = characterChannel.readAll();
characterChannel.close();
HTTPTestRequest cMsg = MessageUtils.generateHTTPMessage(path, "POST", responseValue);
HTTPCarbonMessage response = Services.invokeNew(serviceResult, "mockEP", cMsg);
Assert.assertNotNull(response, "Response message not found");
InputStream inputStream = new HttpMessageDataStreamer(response).getInputStream();
Assert.assertNotNull(inputStream, "Inputstream is null");
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
MimeUtil.writeInputToOutputStream(inputStream, outputStream);
Assert.assertEquals(outputStream.size(), 2323779);
} catch (IOException | URISyntaxException e) {
log.error("Error occurred in testLargePayload", e.getMessage());
}
}
use of org.ballerinalang.nativeimpl.io.channels.base.CharacterChannel in project ballerina by ballerina-lang.
the class CharacterInputOutputBufferTest method readCorruptedCharacters.
@Test(description = "Read corrupted characters from text")
public void readCorruptedCharacters() throws IOException, URISyntaxException {
int numberOfCharactersToRead;
// Number of characters in this file would be 6
ByteChannel byteChannel = TestUtil.openForReading("datafiles/io/text/corruptedText");
Channel channel = new MockByteChannel(byteChannel);
CharacterChannel characterChannel = new CharacterChannel(channel, StandardCharsets.UTF_8.name());
numberOfCharactersToRead = 2;
String readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals("�T", readCharacters);
numberOfCharactersToRead = 11;
readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals("est Curr ß", readCharacters);
numberOfCharactersToRead = 4;
readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals(" �", readCharacters);
readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals(readCharacters, "");
characterChannel.close();
}
use of org.ballerinalang.nativeimpl.io.channels.base.CharacterChannel in project ballerina by ballerina-lang.
the class CharacterInputOutputBufferTest method readCorruptedCharactersIntoMultipleChannelReads.
@Test(description = "Read from file which has all corrupted chars")
public void readCorruptedCharactersIntoMultipleChannelReads() throws IOException, URISyntaxException {
int numberOfCharactersToRead;
// Number of characters in this file would be 6
ByteChannel byteChannel = TestUtil.openForReading("datafiles/io/text/corruptedText2");
Channel channel = new MockByteChannel(byteChannel);
CharacterChannel characterChannel = new CharacterChannel(channel, StandardCharsets.UTF_8.name());
numberOfCharactersToRead = 3;
String readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals("���", readCharacters);
numberOfCharactersToRead = 3;
readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals("��a", readCharacters);
readCharacters = characterChannel.read(numberOfCharactersToRead);
Assert.assertEquals(readCharacters, "");
characterChannel.close();
}
use of org.ballerinalang.nativeimpl.io.channels.base.CharacterChannel in project ballerina by ballerina-lang.
the class RecordInputOutputTest method writeRecords.
@Test(description = "Writes records to channel")
public void writeRecords() throws IOException {
// Number of characters in this file would be 6
ByteChannel byteChannel = TestUtil.openForWriting(currentDirectoryPath + "records.csv");
Channel channel = new MockByteChannel(byteChannel);
CharacterChannel characterChannel = new CharacterChannel(channel, StandardCharsets.UTF_8.name());
DelimitedRecordChannel recordChannel = new DelimitedRecordChannel(characterChannel, "\n", ",");
String[] recordOne = { "Foo", "Bar", "911" };
BStringArray recordOneArr = new BStringArray(recordOne);
recordChannel.write(recordOneArr);
String[] recordTwo = { "Jim", "Com", "119" };
BStringArray recordTwoArr = new BStringArray(recordTwo);
recordChannel.write(recordTwoArr);
recordChannel.close();
}
use of org.ballerinalang.nativeimpl.io.channels.base.CharacterChannel in project ballerina by ballerina-lang.
the class RecordInputOutputTest method readNonIndentedRecords.
@Test(description = "Read records which are not indented properly")
public void readNonIndentedRecords() throws IOException, URISyntaxException {
// Number of characters in this file would be 6
ByteChannel byteChannel = TestUtil.openForReading("datafiles/io/records/sample2.csv");
Channel channel = new MockByteChannel(byteChannel);
CharacterChannel characterChannel = new CharacterChannel(channel, StandardCharsets.UTF_8.name());
DelimitedRecordChannel recordChannel = new DelimitedRecordChannel(characterChannel, "\n", ",");
String[] readRecord = recordChannel.read();
Assert.assertEquals(readRecord.length, 9);
Assert.assertTrue(recordChannel.hasNext(), "Expecting more records but received as EOL.");
// This will be a blank record
readRecord = recordChannel.read();
Assert.assertEquals(readRecord.length, 1);
Assert.assertTrue(recordChannel.hasNext(), "Expecting more records but received as EOL.");
readRecord = recordChannel.read();
Assert.assertEquals(readRecord.length, 9);
Assert.assertFalse(recordChannel.hasNext(), "Last record received, but indicate as more records available.");
recordChannel.close();
}
Aggregations