/* * Copyright 2012-2017 CodeLibs Project and the Others. * * Licensed 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.codelibs.fess.dict.synonym; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.codelibs.fess.dict.DictionaryFile.PagingList; import org.codelibs.fess.unit.UnitFessTestCase; public class SynonymFileTest extends UnitFessTestCase { private SynonymFile synonymFile; // TODO /* private File file1; @Override public void setUp() throws Exception { super.setUp(); file1 = File.createTempFile("synonym", ".txt"); FileUtil.writeBytes(file1.getAbsolutePath(), "a1=>A1\nb1,b2 => B1\nc1 => C1, C2\nx1,X1\ny1, Y1, y2" .getBytes(Constants.UTF_8)); // TODO set up elasticsearch and dictionaryManager synonymFile = new SynonymFile("1", file1.getAbsolutePath(), new Date()); } @Override public void tearDown() throws Exception { file1.delete(); } */ @Override public void setUp() throws Exception { super.setUp(); synonymFile = new SynonymFile("1", "dummy", new Date()); List<SynonymItem> itemList = new ArrayList<>(); itemList.add(new SynonymItem(1, new String[] { "a1" }, new String[] { "A1" })); itemList.add(new SynonymItem(2, new String[] { "b1", "b2" }, new String[] { "B1" })); itemList.add(new SynonymItem(3, new String[] { "c1" }, new String[] { "C1", "C2" })); itemList.add(new SynonymItem(4, new String[] { "x1", "X1" }, new String[] { "x1", "X1" })); itemList.add(new SynonymItem(5, new String[] { "y1", "Y1", "y2" }, new String[] { "y1", "Y1", "y2" })); synonymFile.synonymItemList = itemList; } public void test_selectList() { final PagingList<SynonymItem> itemList1 = synonymFile.selectList(0, 20); // error occurs assertEquals(5, itemList1.size()); assertEquals(5, itemList1.getAllRecordCount()); assertEquals(1, itemList1.getCurrentPageNumber()); assertEquals(20, itemList1.getPageSize()); final PagingList<SynonymItem> itemList2 = synonymFile.selectList(4, 2); assertEquals(1, itemList2.size()); assertEquals(5, itemList2.getAllRecordCount()); assertEquals(3, itemList2.getCurrentPageNumber()); assertEquals(2, itemList2.getPageSize()); assertEquals(0, synonymFile.selectList(5, 5).size()); assertEquals(0, synonymFile.selectList(-1, 5).size()); } public void test_selectList2() { final PagingList<SynonymItem> itemList = synonymFile.selectList(0, 5); assertEquals(1, itemList.get(0).getInputs().length); assertEquals(1, itemList.get(0).getOutputs().length); assertEquals("a1", itemList.get(0).getInputs()[0]); assertEquals("A1", itemList.get(0).getOutputs()[0]); assertFalse(itemList.get(0).isUpdated()); assertEquals(2, itemList.get(1).getInputs().length); assertEquals(1, itemList.get(1).getOutputs().length); assertEquals("b1", itemList.get(1).getInputs()[0]); assertEquals("b2", itemList.get(1).getInputs()[1]); assertEquals("B1", itemList.get(1).getOutputs()[0]); assertFalse(itemList.get(1).isUpdated()); assertEquals(1, itemList.get(2).getInputs().length); assertEquals(2, itemList.get(2).getOutputs().length); assertEquals("c1", itemList.get(2).getInputs()[0]); assertEquals("C1", itemList.get(2).getOutputs()[0]); assertEquals("C2", itemList.get(2).getOutputs()[1]); assertFalse(itemList.get(2).isUpdated()); assertEquals(2, itemList.get(3).getInputs().length); assertEquals(2, itemList.get(3).getOutputs().length); assertEquals("X1", itemList.get(3).getInputs()[0]); assertEquals("x1", itemList.get(3).getInputs()[1]); assertEquals("X1", itemList.get(3).getOutputs()[0]); assertEquals("x1", itemList.get(3).getOutputs()[1]); assertFalse(itemList.get(3).isUpdated()); assertEquals(3, itemList.get(4).getInputs().length); assertEquals(3, itemList.get(4).getOutputs().length); assertEquals("Y1", itemList.get(4).getInputs()[0]); assertEquals("y1", itemList.get(4).getInputs()[1]); assertEquals("y2", itemList.get(4).getInputs()[2]); assertEquals("Y1", itemList.get(4).getOutputs()[0]); assertEquals("y1", itemList.get(4).getOutputs()[1]); assertEquals("y2", itemList.get(4).getOutputs()[2]); assertFalse(itemList.get(4).isUpdated()); } /* public void test_insert() { final PagingList<SynonymItem> itemList1 = synonymFile.selectList(0, 20); assertEquals(5, itemList1.size()); final SynonymItem synonymItem1 = new SynonymItem(0, new String[] { "z1", "z2" }, new String[] { "Z1", "Z2" }); synonymFile.insert(synonymItem1); final PagingList<SynonymItem> itemList2 = synonymFile.selectList(0, 20); assertEquals(6, itemList2.size()); assertEquals("z1", itemList2.get(5).getInputs()[0]); assertEquals("z2", itemList2.get(5).getInputs()[1]); assertEquals("Z1", itemList2.get(5).getOutputs()[0]); assertEquals("Z2", itemList2.get(5).getOutputs()[1]); final SynonymItem synonymItem2 = new SynonymItem(0, new String[] {"z1", "z2" }, new String[] { "z1", "z2" }); synonymFile.insert(synonymItem2); final PagingList<SynonymItem> itemList3 = synonymFile.selectList(0, 20); assertEquals(7, itemList3.size()); assertEquals("z1", itemList3.get(6).getInputs()[0]); assertEquals("z2", itemList3.get(6).getInputs()[1]); assertEquals("z1", itemList3.get(6).getOutputs()[0]); assertEquals("z2", itemList3.get(6).getOutputs()[1]); } public void test_update() { final SynonymFile synonymFile = new SynonymFile(file1); final PagingList<SynonymItem> itemList1 = synonymFile.selectList(0, 20); assertEquals(5, itemList1.size()); final SynonymItem synonymItem1 = itemList1.get(0); synonymItem1.setNewInputs(new String[] { "a1", "a2" }); synonymItem1.setNewOutputs(new String[] { "A1", "A2" }); synonymFile.update(synonymItem1); final PagingList<SynonymItem> itemList2 = synonymFile.selectList(0, 20); assertEquals(5, itemList2.size()); final SynonymItem synonymItem2 = itemList2.get(0); assertEquals(2, synonymItem2.getInputs().length); assertEquals(2, synonymItem2.getOutputs().length); assertEquals("a1", synonymItem2.getInputs()[0]); assertEquals("a2", synonymItem2.getInputs()[1]); assertEquals("A1", synonymItem2.getOutputs()[0]); assertEquals("A2", synonymItem2.getOutputs()[1]); assertFalse(synonymItem2.isUpdated()); final SynonymItem synonymItem3 = itemList2.get(2); synonymItem3.setNewInputs(new String[] { "c1", "c2" }); synonymItem3.setNewOutputs(new String[] { "c1", "c2" }); synonymFile.update(synonymItem3); final PagingList<SynonymItem> itemList3 = synonymFile.selectList(0, 20); assertEquals(5, itemList3.size()); final SynonymItem synonymItem4 = itemList3.get(2); assertEquals(2, synonymItem4.getInputs().length); assertEquals(2, synonymItem4.getOutputs().length); assertEquals("c1", synonymItem4.getInputs()[0]); assertEquals("c2", synonymItem4.getInputs()[1]); assertEquals("c1", synonymItem4.getOutputs()[0]); assertEquals("c2", synonymItem4.getOutputs()[1]); assertFalse(synonymItem2.isUpdated()); } public void test_delete() throws Exception { final SynonymFile synonymFile = new SynonymFile(file1); final PagingList<SynonymItem> itemList1 = synonymFile.selectList(0, 20); assertEquals(5, itemList1.size()); final SynonymItem synonymItem1 = itemList1.get(0); synonymFile.delete(synonymItem1); final PagingList<SynonymItem> itemList2 = synonymFile.selectList(0, 20); assertEquals(4, itemList2.size()); final SynonymItem synonymItem2 = itemList2.get(3); synonymFile.delete(synonymItem2); final PagingList<SynonymItem> itemList3 = synonymFile.selectList(0, 20); assertEquals(3, itemList3.size()); assertEquals( "b1,b2=>B1" + Constants.LINE_SEPARATOR + "c1=>C1,C2" + Constants.LINE_SEPARATOR + "X1,x1" + Constants.LINE_SEPARATOR, new String(FileUtil.getBytes(file1), Constants.UTF_8)); } */ }