/** * 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.camel.dataformat.barcode; import java.util.Map; import com.google.zxing.BarcodeFormat; import com.google.zxing.DecodeHintType; import com.google.zxing.EncodeHintType; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; /** * This class tests all Camel independend test cases * for {@link BarcodeDataFormat}. */ public class BarcodeDataFormatTest { /** * Test default constructor. */ @Test public final void testDefaultConstructor() { BarcodeDataFormat barcodeDataFormat = new BarcodeDataFormat(); this.checkParams(BarcodeParameters.IMAGE_TYPE, BarcodeParameters.WIDTH, BarcodeParameters.HEIGHT, BarcodeParameters.FORMAT, barcodeDataFormat.getParams()); } /** * Test constructor with barcode format. */ @Test public final void testConstructorWithBarcodeFormat() { BarcodeDataFormat barcodeDataFormat = new BarcodeDataFormat(BarcodeFormat.AZTEC); this.checkParams(BarcodeParameters.IMAGE_TYPE, BarcodeParameters.WIDTH, BarcodeParameters.HEIGHT, BarcodeFormat.AZTEC, barcodeDataFormat.getParams()); } /** * Test constructor with size. */ @Test public final void testConstructorWithSize() { BarcodeDataFormat barcodeDataFormat = new BarcodeDataFormat(200, 250); this.checkParams(BarcodeParameters.IMAGE_TYPE, 200, 250, BarcodeParameters.FORMAT, barcodeDataFormat.getParams()); } /** * Test constructor with image type. */ @Test public final void testConstructorWithImageType() { BarcodeDataFormat barcodeDataFormat = new BarcodeDataFormat(BarcodeImageType.JPG); this.checkParams(BarcodeImageType.JPG, BarcodeParameters.WIDTH, BarcodeParameters.HEIGHT, BarcodeParameters.FORMAT, barcodeDataFormat.getParams()); } /** * Test constructor with all. */ @Test public final void testConstructorWithAll() { BarcodeDataFormat barcodeDataFormat = new BarcodeDataFormat(200, 250, BarcodeImageType.JPG, BarcodeFormat.AZTEC); this.checkParams(BarcodeImageType.JPG, 200, 250, BarcodeFormat.AZTEC, barcodeDataFormat.getParams()); } /** * Test of optimizeHints method, of class BarcodeDataFormat. */ @Test public final void testOptimizeHints() { BarcodeDataFormat instance = new BarcodeDataFormat(); assertTrue(instance.getWriterHintMap() .containsKey(EncodeHintType.ERROR_CORRECTION)); assertTrue(instance.getReaderHintMap() .containsKey(DecodeHintType.TRY_HARDER)); } /** * Test optimized hints for data matrix. */ @Test public final void testOptimizieHintsForDataMatrix() { BarcodeDataFormat instance = new BarcodeDataFormat(BarcodeFormat.DATA_MATRIX); assertTrue("data matrix shape hint incorrect.", instance.getWriterHintMap() .containsKey(EncodeHintType.DATA_MATRIX_SHAPE)); assertTrue("try harder hint incorrect.", instance.getReaderHintMap() .containsKey(DecodeHintType.TRY_HARDER)); } /** * Test re-optimize hints. */ @Test public final void testReOptimizeHints() { // DATA-MATRIX BarcodeDataFormat instance = new BarcodeDataFormat(BarcodeFormat.DATA_MATRIX); assertTrue(instance.getWriterHintMap() .containsKey(EncodeHintType.DATA_MATRIX_SHAPE)); assertTrue(instance.getReaderHintMap() .containsKey(DecodeHintType.TRY_HARDER)); // -> QR-CODE instance.setBarcodeFormat(BarcodeFormat.QR_CODE); assertFalse(instance.getWriterHintMap() .containsKey(EncodeHintType.DATA_MATRIX_SHAPE)); assertTrue(instance.getReaderHintMap() .containsKey(DecodeHintType.TRY_HARDER)); } /** * Test of addToHintMap method, of class BarcodeDataFormat. */ @Test public final void testAddToHintMapEncodeHintTypeObject() { EncodeHintType hintType = EncodeHintType.MARGIN; Object value = 10; BarcodeDataFormat instance = new BarcodeDataFormat(); instance.addToHintMap(hintType, value); assertTrue(instance.getWriterHintMap().containsKey(hintType)); assertEquals(instance.getWriterHintMap().get(hintType), value); } /** * Test of addToHintMap method, of class BarcodeDataFormat. */ @Test public final void testAddToHintMapDecodeHintTypeObject() { DecodeHintType hintType = DecodeHintType.CHARACTER_SET; Object value = "UTF-8"; BarcodeDataFormat instance = new BarcodeDataFormat(); instance.addToHintMap(hintType, value); assertTrue(instance.getReaderHintMap().containsKey(hintType)); assertEquals(instance.getReaderHintMap().get(hintType), value); } /** * Test of removeFromHintMap method, of class BarcodeDataFormat. */ @Test public final void testRemoveFromHintMapEncodeHintType() { EncodeHintType hintType = EncodeHintType.ERROR_CORRECTION; BarcodeDataFormat instance = new BarcodeDataFormat(); instance.removeFromHintMap(hintType); assertFalse(instance.getWriterHintMap().containsKey(hintType)); } /** * Test of removeFromHintMap method, of class BarcodeDataFormat. */ @Test public final void testRemoveFromHintMapDecodeHintType() { DecodeHintType hintType = DecodeHintType.TRY_HARDER; BarcodeDataFormat instance = new BarcodeDataFormat(); instance.removeFromHintMap(hintType); assertFalse(instance.getReaderHintMap().containsKey(hintType)); } /** * Test of getParams method, of class BarcodeDataFormat. */ @Test public final void testGetParams() { BarcodeDataFormat instance = new BarcodeDataFormat(); BarcodeParameters result = instance.getParams(); assertNotNull(result); } /** * Test of getWriterHintMap method, of class BarcodeDataFormat. */ @Test public final void testGetWriterHintMap() { BarcodeDataFormat instance = new BarcodeDataFormat(); Map<EncodeHintType, Object> result = instance.getWriterHintMap(); assertNotNull(result); } /** * Test of getReaderHintMap method, of class BarcodeDataFormat. */ @Test public final void testGetReaderHintMap() { BarcodeDataFormat instance = new BarcodeDataFormat(); Map<DecodeHintType, Object> result = instance.getReaderHintMap(); assertNotNull(result); } /** * Helper to check the saved parameters. */ private void checkParams(BarcodeImageType imageType, int width, int height, BarcodeFormat format, BarcodeParameters params) { assertEquals(params.getType(), imageType); assertTrue(params.getWidth() == width); assertTrue(params.getHeight() == height); assertEquals(params.getFormat(), format); } }