| /* |
| * 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 |
| * |
| * http://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. |
| */ |
| package org.apache.arrow.compression; |
| |
| import static org.junit.jupiter.api.Assertions.assertNotNull; |
| import static org.junit.jupiter.api.Assertions.assertThrows; |
| |
| import org.apache.arrow.vector.compression.CompressionCodec; |
| import org.apache.arrow.vector.compression.CompressionUtil; |
| import org.apache.arrow.vector.compression.NoCompressionCodec; |
| import org.junit.jupiter.api.Test; |
| |
| public class TestCompressionCodecServiceProvider { |
| |
| /** |
| * When arrow-compression is in the classpath/module-path, {@link |
| * CompressionCodec.Factory#INSTANCE} should be able to handle all codec types. |
| */ |
| @Test |
| public void testSupportedCompressionTypes() { |
| assertThrows( // no-compression doesn't support any actual compression types |
| IllegalArgumentException.class, |
| () -> checkAllCodecTypes(NoCompressionCodec.Factory.INSTANCE)); |
| assertThrows( // commons-compression doesn't support the uncompressed type |
| IllegalArgumentException.class, |
| () -> checkAllCodecTypes(CommonsCompressionFactory.INSTANCE)); |
| checkAllCodecTypes( // and the winner is... |
| CompressionCodec.Factory.INSTANCE); // combines the two above to support all types |
| } |
| |
| private void checkAllCodecTypes(CompressionCodec.Factory factory) { |
| for (CompressionUtil.CodecType codecType : CompressionUtil.CodecType.values()) { |
| assertNotNull(factory.createCodec(codecType)); |
| } |
| } |
| } |