/*
* Copyright 2016 Igor Maznitsa.
*
* 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 com.igormaznitsa.mindmap.plugins.importers;
import static java.util.Arrays.asList;
import org.junit.Test;
import static org.junit.Assert.*;
import java.io.File;
import java.util.List;
import org.apache.commons.io.FileUtils;
import com.igormaznitsa.mindmap.model.MindMap;
import com.igormaznitsa.mindmap.model.Topic;
public class Text2MindMapImporterTest {
private static final Text2MindMapImporter INSTANCE = new Text2MindMapImporter();
@Test
public void testDoImport_Empty() throws Exception {
final MindMap result = INSTANCE.makeFromLines(asList(" "), null);
assertNull(result.getRoot());
}
@Test
public void testDoImport_OnlyRoot() throws Exception {
final MindMap result = INSTANCE.makeFromLines(asList("\tSolar system "), null);
assertEquals("Solar system",result.getRoot().getText());
}
@Test
public void testDoImport_Multilevel() throws Exception {
final MindMap result = INSTANCE.makeFromLines(asList("Solar system","\tMercury","\tVenus","\tEarth","\t\tMoon","\tMars","\t\tFobos","\t\tDemos","Jupiter"), null);
assertEquals("Solar system",result.getRoot().getText());
assertEquals(5,result.getRoot().getChildren().size());
final Topic mars = result.getRoot().getChildren().get(3);
final Topic jupiter = result.getRoot().getChildren().get(4);
assertEquals("Mars",mars.getText());
assertEquals(2,mars.getChildren().size());
assertEquals("Jupiter",jupiter.getText());
}
@Test
public void testDoImport_Multilevel2() throws Exception {
final MindMap result = INSTANCE.makeFromLines(asList("solar system","\tjupiter","\tmars"," \t\tfobos","\t\tdeimos","\tpluto","\tsaturn"), null);
assertEquals("solar system",result.getRoot().getText());
assertEquals(4,result.getRoot().getChildren().size());
final Topic root = result.getRoot();
assertEquals("jupiter",root.getChildren().get(0).getText());
assertEquals("mars",root.getChildren().get(1).getText());
assertEquals("pluto",root.getChildren().get(2).getText());
assertEquals("saturn",root.getChildren().get(3).getText());
final Topic mars = result.getRoot().getChildren().get(1);
assertEquals(2,mars.getChildren().size());
assertEquals("fobos", mars.getChildren().get(0).getText());
assertEquals("deimos", mars.getChildren().get(1).getText());
}
@Test
public void testImportFromFile() throws Exception {
final File file = new File(Text2MindMapImporter.class.getResource("tabbedtext.txt").getFile());
assertTrue(file.isFile());
final List<String> lines = FileUtils.readLines(file);
final MindMap result = INSTANCE.makeFromLines(lines, null);
assertEquals(5,result.getRoot().getChildren().size());
}
}