/* * This file is part of the GeoLatte project. This code is licenced 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. * * Copyright (C) 2010 - 2010 and Ownership of code is shared by: * Qmino bvba - Romeinsestraat 18 - 3001 Heverlee (http://www.Qmino.com) * Geovise bvba - Generaal Eisenhowerlei 9 - 2140 Antwerpen (http://www.geovise.com) */ package org.geolatte.common.dataformats.csv; import org.geolatte.common.reflection.EntityClassReader; import org.geolatte.common.transformer.TransformationException; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * No comment provided yet for this class. * <p/> * <p> * <i>Creation-Date</i>: 3-dec-2010<br> * <i>Creation-Time</i>: 14:45:03<br> * </p> * * @author Yves Vandewoude * @author <a href="http://www.qmino.com">Qmino bvba</a> */ public class CsvSerializationTransformationTest { private List<TestClass> testFeatures; private static EntityClassReader reader; @Before public void setUp() { TestClass testFeature = new TestClass(15,10,"Hehe", false); TestClass testFeature2 = new TestClass(8,0,null, true); testFeatures = new ArrayList<TestClass>(); testFeatures.add(testFeature); testFeatures.add(testFeature2); } @Test public void BaseSerializerTest() { CsvSerializationTransformation<Object> serializer = new CsvSerializationTransformation<Object>( TestClass.class, '|', null); Assert.assertEquals(7, serializer.getHeader().length()); Assert.assertEquals('|', serializer.getHeader().charAt(1)); Assert.assertEquals('|', serializer.getHeader().charAt(3)); Assert.assertEquals('|', serializer.getHeader().charAt(5)); Assert.assertTrue(serializer.getHeader().contains("A")); Assert.assertTrue(serializer.getHeader().contains("B")); Assert.assertTrue(serializer.getHeader().contains("C")); Assert.assertTrue(serializer.getHeader().contains("D")); try { String result = serializer.transform(testFeatures.get(0)); String[] splitResult = result.split("\\|", -2); Assert.assertEquals(4, splitResult.length); // chars are at 0,2,4,6 Assert.assertEquals("15", splitResult[serializer.getHeader().indexOf("A")/2]); Assert.assertEquals("10", splitResult[serializer.getHeader().indexOf("B")/2]); Assert.assertEquals("Hehe", splitResult[serializer.getHeader().indexOf("C")/2]); Assert.assertEquals("false", splitResult[serializer.getHeader().indexOf("D")/2]); String[] splitResult2 = serializer.transform(testFeatures.get(1)).split("\\|", -2); Assert.assertEquals(4, splitResult2.length); // chars are at 0,2,4,6 Assert.assertEquals("8", splitResult2[serializer.getHeader().indexOf("A")/2]); Assert.assertEquals("0", splitResult2[serializer.getHeader().indexOf("B")/2]); Assert.assertEquals("", splitResult2[serializer.getHeader().indexOf("C")/2]); Assert.assertEquals("true", splitResult2[serializer.getHeader().indexOf("D")/2]); } catch (TransformationException e) { Assert.fail("No exception expected"); } try { serializer.transform("SomeString"); Assert.fail("Exception should be given when transforming wrong class objects"); } catch (TransformationException e) { // } catch (Exception e) { Assert.fail("Only a transformationexception please!"); } } @Test public void VisibilitySerializerTest() { CsvSerializationTransformation<Object> serializer = new CsvSerializationTransformation<Object>( TestClass.class, '+', Arrays.asList("D", "B")); Assert.assertEquals("D+B", serializer.getHeader()); try { Assert.assertEquals("false+10", serializer.transform(testFeatures.get(0))); Assert.assertEquals("true+0", serializer.transform(testFeatures.get(1))); } catch (TransformationException e) { Assert.fail("No exception expected"); } try { serializer.transform("SomeString"); Assert.fail("Exception should be given when transforming wrong class objects"); } catch (TransformationException e) { // } catch (Exception e) { Assert.fail("Only a transformationexception please!"); } } public class TestClass { private int a; private int b; private String c; private boolean d; public TestClass(int a, int b, String c, boolean d) { setA(a); setB(b); setC(c); setD(d); } public int getA() { return a; } public void setA(int a) { this.a = a; } public int getB() { return b; } public void setB(int b) { this.b = b; } public String getC() { return c; } public void setC(String c) { this.c = c; } public boolean getD() { return d; } public void setD(boolean d) { this.d = d; } } }