package com.tandbergtv.config;

import junit.framework.TestCase;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.tandbergtv.metadatamanager.model.Asset;
import com.tandbergtv.metadatamanager.util.DBNameFinder;

public class DBNameFinderTest extends TestCase {

	private ApplicationContext context;

	@Override
	public void setUp() throws Exception {
		super.setUp();

		try {
			this.context = new ClassPathXmlApplicationContext(new String[] {
					"MetadataBeansContext.xml",
					"file:tests/MetadataManager_JTA_DBContext_UnitTest.xml",
					"file:tests/DataSource_UnitTest.xml" });
		} catch (Exception e) {
			System.out.print(e);
		}
	}

	@Override
	public void tearDown() throws Exception {
		super.tearDown();
	}

	public void testTableName() {
		DBNameFinder finder = (DBNameFinder) context.getBean("dbNameFinder");
		System.out.println("Asset table name: "
				+ finder.getTableName(Asset.class));
	}

	public void testSinglePropertyColumnName() {
		DBNameFinder finder = (DBNameFinder) context.getBean("dbNameFinder");
		try {
			System.out.println("Root column name: "
					+ finder.getColumnName(Asset.class, "root"));
		} catch (Exception e) {
			System.out.println(e);
		}
	}

	public void testCollectionPropertyColumnName() {
		DBNameFinder finder = (DBNameFinder) context.getBean("dbNameFinder");
		try {
			System.out.println("Fields column name: "
					+ finder.getColumnName(Asset.class, "fields"));
		} catch (Exception e) {
			System.out.println(e);
		}
	}
}
