FileLinkedListTest.java

package eu.javaexperience.io.test;

import java.io.File;
import java.util.ArrayList;

import eu.javaexperience.io.FileLinkedList;
import eu.javaexperience.io.FileLinkedList.Link;
import eu.javaexperience.io.file.FileTools;

public class FileLinkedListTest
{
	public static void main(String[] args)
	{
		//create new dir in the CWD.
		File dir = new File("./FileLinkedListTest");
		
		if(dir.exists() || dir.isDirectory())
		{
			throw new RuntimeException("Assert Failed directry FileLinkedListTest exists before starting the test. Aborting test.");
		}
		
		dir.mkdirs();
		
		if(!dir.exists() || !dir.isDirectory())
		{
			throw new RuntimeException("Assert Failed directry FileLinkedListTest doesn't exists.");
		}
		
		try
		{
			FileLinkedList<String> ll = new FileLinkedList<>(dir);
			Link<String> root = ll.newLink(null);
			
			root.setContent("Helló");
			
			Link<String> l2 = ll.newLink(root);
			l2.setContent("World");
			
			Link<String> l3 = ll.newLink(root);
			l3.setContent("Tail");
			
			dbg(ll);
			
			dbg(new FileLinkedList<String>(dir));
		}
		finally
		{
			//delete directory with every entry
			FileTools.deleteDirectory(dir, false);
		}
	}
	
	public static void dbg(FileLinkedList<String> fll)
	{
		ArrayList<Link<String>> ends = new ArrayList<>(); 
		
		fll.fillTailLinks(ends);
		for(Link<String> t:ends)
		{
			printStringBackwardToRoot(t);
			System.out.println("");
		}
		System.out.println("------------");
	}
	
	public static void printStringBackwardToRoot(Link<String> l)
	{
		while(null != l)
		{
			System.out.println(l.getContent());
			l = l.getParent();
		}
	}
}