/* * This file is part of Skript. * * Skript is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Skript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Skript. If not, see <http://www.gnu.org/licenses/>. * * * Copyright 2011-2014 Peter Güttinger * */ package ch.njol.skript.variables; import static org.junit.Assert.*; import java.util.Arrays; import org.junit.Test; /** * @author Peter Güttinger */ public class FlatFileStorageTest { @Test public void testHexCoding() { final byte[] bytes = {-0x80, -0x50, -0x01, 0x00, 0x01, 0x44, 0x7F}; final String string = "80B0FF0001447F"; assertEquals(string, FlatFileStorage.encode(bytes)); assert Arrays.equals(bytes, FlatFileStorage.decode(string)) : Arrays.toString(bytes) + " != " + Arrays.toString(FlatFileStorage.decode(string)); } @SuppressWarnings("null") @Test public void testCSV() { final String[][] vs = { {"", ""}, {",", "", ""}, {",,", "", "", ""}, {"a", "a"}, {"a,", "a", ""}, {",a", "", "a"}, {",a,", "", "a", ""}, {" , a , ", "", "a", ""}, {"a,b,c", "a", "b", "c"}, {" a , b , c ", "a", "b", "c"}, {"\"\"", ""}, {"\",\"", ","}, {"\"\"\"\"", "\""}, {"\" \"", " "}, {"a, \"\"\"\", b, \", c\", d", "a", "\"", "b", ", c", "d"}, {"a, \"\"\", b, \", c", "a", "\", b, ", "c"}, {"\"\t\0\"", "\t\0"}, }; for (final String[] v : vs) { assert Arrays.equals(Arrays.copyOfRange(v, 1, v.length), FlatFileStorage.splitCSV(v[0])) : v[0] + ": " + Arrays.toString(Arrays.copyOfRange(v, 1, v.length)) + " != " + Arrays.toString(FlatFileStorage.splitCSV(v[0])); } } }