summaryrefslogtreecommitdiff
path: root/opendc-format/src/test/kotlin/org/opendc/format
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-08-31 15:14:46 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-09-02 09:26:42 +0200
commite8cdfbcec3f75b3f303ce52bac5f5595a94555e4 (patch)
treec15b491a10ef4215ac8640c873ed56651971a486 /opendc-format/src/test/kotlin/org/opendc/format
parent23c1502c2668305fd5f4c38c6c794c985d2037e3 (diff)
refactor(trace): Extract Parquet helpers into separate module
This change extracts the Parquet helpers outside format module into a new module, in order to improve re-usability of these helpers.
Diffstat (limited to 'opendc-format/src/test/kotlin/org/opendc/format')
-rw-r--r--opendc-format/src/test/kotlin/org/opendc/format/util/ParquetTest.kt125
1 files changed, 0 insertions, 125 deletions
diff --git a/opendc-format/src/test/kotlin/org/opendc/format/util/ParquetTest.kt b/opendc-format/src/test/kotlin/org/opendc/format/util/ParquetTest.kt
deleted file mode 100644
index e496dd96..00000000
--- a/opendc-format/src/test/kotlin/org/opendc/format/util/ParquetTest.kt
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 2021 AtLarge Research
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-package org.opendc.format.util
-
-import org.apache.avro.SchemaBuilder
-import org.apache.avro.generic.GenericData
-import org.apache.parquet.avro.AvroParquetReader
-import org.apache.parquet.avro.AvroParquetWriter
-import org.apache.parquet.hadoop.ParquetFileWriter
-import org.junit.jupiter.api.*
-import org.junit.jupiter.api.Assertions.assertEquals
-import java.io.File
-import java.nio.file.FileAlreadyExistsException
-import java.nio.file.NoSuchFileException
-
-/**
- * Test suite for the Parquet helper classes.
- */
-internal class ParquetTest {
- private val schema = SchemaBuilder
- .record("test")
- .namespace("org.opendc.format.util")
- .fields()
- .name("field").type().intType().noDefault()
- .endRecord()
-
- private lateinit var file: File
-
- /**
- * Setup the test
- */
- @BeforeEach
- fun setUp() {
- file = File.createTempFile("opendc", "parquet")
- }
-
- /**
- * Tear down the test.
- */
- @AfterEach
- fun tearDown() {
- file.delete()
- }
-
- /**
- * Initial test to verify whether the Parquet writer works.
- */
- @Test
- fun testSmoke() {
- val n = 4
- val writer = AvroParquetWriter.builder<GenericData.Record>(LocalOutputFile(file))
- .withSchema(schema)
- .withWriteMode(ParquetFileWriter.Mode.OVERWRITE)
- .build()
-
- try {
- repeat(n) { i ->
- val record = GenericData.Record(schema)
- record.put("field", i)
- writer.write(record)
- }
- } finally {
- writer.close()
- }
-
- val reader = AvroParquetReader.builder<GenericData.Record>(LocalInputFile(file))
- .build()
-
- var counter = 0
- try {
- while (true) {
- val record = reader.read() ?: break
- assertEquals(counter++, record.get("field"))
- }
- } finally {
- reader.close()
- }
-
- assertEquals(n, counter)
- }
-
- /**
- * Test if overwriting fails if not specified.
- */
- @Test
- fun testOverwrite() {
- assertThrows<FileAlreadyExistsException> {
- AvroParquetWriter.builder<GenericData.Record>(LocalOutputFile(file))
- .withSchema(schema)
- .build()
- }
- }
-
- /**
- * Test non-existent file.
- */
- @Test
- fun testNonExistent() {
- file.delete()
- assertThrows<NoSuchFileException> {
- AvroParquetReader.builder<GenericData.Record>(LocalInputFile(file))
- .build()
- }
- }
-}