// package Cases;


// CSC 468. Project Stage 1. 
// Test File for the ContentIndex structure.
// Alex Dekhtyar

// Note: the organization of your project may require somewhat different import statements.
//       Please, edit this test file accordingly.

import java.io.*;
import java.io.File;

import neustore.base.DBIndex;//because we create a object of index.java
import neustore.base.LRUBuffer;//because we create an object of it
import XMLContent.*;
import neustore.base.DiskAddress;



public class ContentIndexTest {

	
	public static void main(String[] args)throws IOException {
		
                

                int pageSize = 4096;  // Size of a single buffer/disk page. Insert your size HERE!

		//all the pages will be stored under this file name
		String filename1="TESTFILE3";
		File file= new File(filename1);
		if(file.delete())
		{
			 System.out.println("File already exists: deleted");
			 
		}
		else
		{
			System.out.println("File not found");
		}
		
		//create a buffer with 5 slots. 
		LRUBuffer buf= new LRUBuffer (5, pageSize);

               XMLContent content = new XMLContent(buf, filename1, 1);

               DiskAddress addy = content.insertContent("The quick brown fox jumps over a lazy dog.");
               System.out.println("Inserted @ address:" + addy.toString());
               
               DiskAddress addy1 = content.insertContent("The quick brown dog jumps over a lazy fox.");
               System.out.println("Inserted @ address:" + addy1.toString());
               
               DiskAddress addy2 = content.insertContent("Knowledge is a deadly friend when noone sets the rules...");
               System.out.println("Inserted @ address:" + addy.toString());
               
               DiskAddress addy3 = content.insertContent("Boo!");
               System.out.println("Inserted @ address:" + addy3.toString());
               
               String res = content.getContent(addy);
               int size = content.getSize(addy);
               System.out.print("Retrieved: "+ res + " ; Size:");
               System.out.println(size);
               
               res = content.getContent(addy1);
               size = content.getSize(addy1);
               System.out.print("Retrieved: "+ res + " ; Size:");
               System.out.println(size);
               
               res = content.getContent(addy2);
               size = content.getSize(addy2);
               System.out.print("Retrieved: "+ res + " ; Size:");
               System.out.println(size);
               
               res = content.getContent(addy3);
               size = content.getSize(addy3);
               System.out.print("Retrieved: "+ res + " ; Size:");
               System.out.println(size);
               
              
               System.out.println("Deleting " + content.getContent(addy3));
               flag = content.deleteContent(addy3);
               System.out.print("Deletion Status:");
               System.out.println(flag);
                   
             
               
               res = content.getContent(addy3);
               size = content.getSize(addy3);
               System.out.print("Retrieved: "+ res + " ; Size:");
               System.out.println(size);
              
	
	}         	
	

}//end of ContentIndexTest