public static boolean test2() throws Exception {

		String[] expected = {
				"1000001:Introduction to Java Programming:10:28:BOOK",
				"1000002:Learning UML:10:28:BOOK",
				"1000003:Design Patterns - Elements of Reusable Object-Oriented Software:10:28:BOOK",
				"2000001:Java 1:4:7:VIDEO",
				"2000003:UML 1:6:7:VIDEO" };
		String collectionString = "LIB_IT:Information Technology:1000001,1000002,1000003,2000001,2000003";
		int numOfBooks = 3;
		int numOfVideos = 2;
		
		initialiseEngine();
		initialiseHoldings();

		try {
			System.out.println("Adding sample holdings ... ");
			// adding holdings
			System.out.print("Adding first book ...");
			model.addHolding(book1);
			System.out.print("Adding second book ...");
			model.addHolding(book2);
			System.out.print("Adding third book ...");
			model.addHolding(book3);
			System.out.print("Adding first video ...");
			model.addHolding(video1);
			System.out.println("Adding second video ...");
			model.addHolding(video3);

			// retrieving and checking holdings
			System.out.print("Finding first book with getHolding()...");
			if (failureCheck(model.getHolding(1000001).toString()
					.equalsIgnoreCase(expected[0]), true))
				return false;

			System.out.print("Finding second book ...");
			if (failureCheck(model.getHolding(1000002).toString()
					.equalsIgnoreCase(expected[1]), true))
				return false;

			System.out.print("Finding first video ...");
			if (failureCheck(model.getHolding(2000001).toString()
					.equalsIgnoreCase(expected[3]), true))
				return false; 

			System.out.print("Finding second video ...");
			if (failureCheck(model.getHolding(2000003).toString()
					.equalsIgnoreCase(expected[4]), true))
				return false;

			// find all holdings included in the collection
			System.out.print("Checking holdings with getAllHoldings()...");
			if (failureCheck(
					checkForHoldings(model.getAllHoldings(), expected), true))
				return false;
			
			// holding counting functions
			System.out.print("Checking the books counting function ...");
	        if (failureCheck
	        		 (model.countBooks() == numOfBooks, true))
	        	 return false;	        
	        System.out.print("Checking the videos counting function ...");
	        if (failureCheck
	        		 (model.countVideos() == numOfVideos, true))
	        	 return false;
	        
	       // check Library Collection string representation (with holding present)
			LibraryCollection collection = model.getCollection();
			System.out.print("Library Collection string is: " + collection.toString());	
			if (failureCheck(collection.toString()
					.equalsIgnoreCase(collectionString), true))
				return false;
			
		} catch (Exception e) {
			System.out.println(e.getMessage());
			return false;
		}
		return true;
	}