/**
 * ContextManagerTest.java
 * Created on May 20, 2008
 * (C) Copyright TANDBERG Television Ltd.
 */
package com.tandbergtv.watchpoint.pmm.util.unitTests;

import java.util.List;

import com.tandbergtv.watchpoint.pmm.dao.hibernate.HibernateContext;
import com.tandbergtv.watchpoint.pmm.entities.Context;
import com.tandbergtv.watchpoint.pmm.entities.Job;
import com.tandbergtv.watchpoint.pmm.entities.JobParameter;
import com.tandbergtv.watchpoint.pmm.util.ContextManager;
import com.tandbergtv.watchpoint.pmm.util.IContextManager;

import junit.framework.TestCase;

/**
 * @author spuranik
 *
 */
public class ContextManagerTest extends TestCase {

	/* (non-Javadoc)
	 * @see junit.framework.TestCase#setUp()
	 */
	@Override
	protected void setUp() throws Exception {
		try {
			HibernateContext.getContext().initializeContext();
		} catch (RuntimeException e) {
			System.out.println(e.getMessage());
		}
		super.setUp();
	}

	/* (non-Javadoc)
	 * @see junit.framework.TestCase#tearDown()
	 */
	@Override
	protected void tearDown() throws Exception {
		try {
			HibernateContext.getContext().closeContext();
		} catch (RuntimeException e) {
			System.out.println(e.getMessage());
		}
		super.tearDown();
	}
	
	public void testGettingContext()
	{
		IContextManager mgr = ContextManager.getInstance();
		long contextId = 1;
		Context c = mgr.getContext(contextId);
		System.out.println("Context Id: " + c.getId());
		System.out.println("Context containerType: " + c.getContainerType());
		
		System.out.println("Context Class: " + c.getClass());
		System.out.println("Context Container Class: " + c.getContainer().getClass());
		
		System.out.println("Context Container Name: " + c.getContainer().getContainerName());
		System.out.println("Context Container Id: " + c.getContainer().getContainerId());
		
		List<Job> jobs = c.getJobs();
		for(Job j : jobs)
		{
			System.out.println("Job name: " + j.getName());
			System.out.println("Job Template name: " + j.getTemplateName());
			List<JobParameter> params = j.getJobParams();
			for(JobParameter p : params)
			{
				System.out.println("Job param name: " + p.getName());
			}			
		}
		System.out.println("Done");
	}

}
