blob: 4f66a7e44598dc5e1558cd28fc1267e9ccc251ea [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System;
using System.IO;
using NUnit.Framework;
using Avro.File;
using Avro.Generic;
namespace Avro.Test.Interop
{
[TestFixture]
[Category("Interop")]
public class InteropDataTests
{
[TestCase("../../../../../../../../build/interop/data")]
public void TestInterop(string inputDir)
{
// Resolve inputDir relative to the TestDirectory
inputDir = Path.Combine(TestContext.CurrentContext.TestDirectory, inputDir);
Assert.True(Directory.Exists(inputDir),
"Input directory does not exist. Run `build.sh interop-data-generate` first.");
foreach (var avroFile in Directory.EnumerateFiles(inputDir, "*.avro"))
{
var codec = Path.GetFileNameWithoutExtension(avroFile).Split('_');
if (1 < codec.Length && !InteropDataConstants.SupportedCodecNames.Contains(codec[1]))
{
Console.WriteLine($"Skipped: {avroFile}");
continue;
}
using(var reader = DataFileReader<GenericRecord>.OpenReader(avroFile))
{
int i = 0;
string userMetadata = reader.GetMetaString("user_metadata");
if (userMetadata != null)
{
Assert.AreEqual("someByteArray", userMetadata);
}
foreach (var record in reader.NextEntries)
{
i++;
Assert.IsNotNull(record);
}
Assert.AreNotEqual(0, i);
}
Console.WriteLine($"Succeeded: {avroFile}");
}
}
}
}