testdev/ite/test/com.nokia.testfw.codegen.test/src/com/nokia/testfw/codegen/CodegenEngineTest.java
author Johnson Ma <johnson.ma@nokia.com>
Tue, 30 Mar 2010 14:39:29 +0800
changeset 1 96906a986c3b
permissions -rw-r--r--
contribute ITE to symbian foundation

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: 
*
*/
package com.nokia.testfw.codegen;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;

import com.nokia.testfw.codegen.model.ClassNodeImpl;
import com.nokia.testfw.codegen.model.MethodNodeImpl;
import com.nokia.testfw.codegen.model.ProjectNodeImpl;
import com.nokia.testfw.codegen.templates.CMDTemplateBuilder;
import com.nokia.testfw.codegen.templates.TemplateBuilderFactory;

import junit.framework.TestCase;

public class CodegenEngineTest extends TestCase {

	CodegenEngine ce;
	CodegenEngine ge;
	
	@SuppressWarnings("unchecked")
	protected void setUp() throws Exception {
		System.setProperty(TemplateBuilderFactory.TEMPLATEBUILDERCLASS,
				CMDTemplateBuilder.class.getName());

		Map<String, Comparable> data = new HashMap<String, Comparable>();
		ProjectNodeImpl lProjectNode = new ProjectNodeImpl("TestModule");  //test_project
		data.put("project_name", "TestModule");  //test_project
		data.put("project_object", lProjectNode);
		data.put("suite_name", "TestSuite");
		data.put("location", "test");
		data.put("target_type", "EXE");
		data.put("UID3", "0x10000001");
		data.put("auther_name", "kevin");
		data.put("copyright", "");

		ClassNodeImpl lClassNode = new ClassNodeImpl("testClass", lProjectNode);
		lClassNode.setDeclLocation("C:\\testHeader.h");
		Set<String> set = new TreeSet<String>();
		set.add("C:\\testCpp.cpp");
		lClassNode.setImplLocation(set);
		MethodNodeImpl lMethodNode = new MethodNodeImpl("testMethod",
				lClassNode);
		lMethodNode.addParameters("String", "param1");
		lMethodNode.addParameters("String", "param2");
		lClassNode.addChild(lMethodNode);
		lProjectNode.addChild(lClassNode);

		ce = new CodegenEngine("C:\\Temp\\STF_hardcode", data);
		
		Map<String, Comparable> data1 = new HashMap<String, Comparable>();
		ProjectNodeImpl lProjectNode1 = new ProjectNodeImpl("TestModule");  //test_project
		data1.put("project_name", "TestModule");  //test_project
		data1.put("project_object", lProjectNode1);
		data1.put("suite_name", "TestSuite");
		data1.put("location", "test");
		data1.put("target_type", "EXE");
		data1.put("UID3", "0x10000001");
		data1.put("auther_name", "kevin");
		data1.put("copyright", "");

		ClassNodeImpl lClassNode1 = new ClassNodeImpl("testClass", lProjectNode1);
		lClassNode1.setDeclLocation("C:\\testHeader.h");
		Set<String> set1 = new TreeSet<String>();
		set1.add("C:\\testCpp.cpp");
		lClassNode1.setImplLocation(set1);
		MethodNodeImpl lMethodNode1 = new MethodNodeImpl("testMethod",
				lClassNode1);
		lMethodNode1.addParameters("String", "param1");
		lMethodNode1.addParameters("String", "param2");
		lClassNode1.addChild(lMethodNode1);
		lProjectNode1.addChild(lClassNode1);

		ge = new CodegenEngine("C:\\Temp\\STF_Script", data1);
	}

	public void testGenerate() {
		try {
			ce.init();
			ge.init();
			assertTrue(ce.isInit);
		} catch (Exception e) {
			fail("CodegenEngine init failed.");
		}
		try {
			ce.generate("STF_hardcode");
			ge.generate("STF_Script");
		} catch (Exception e) {
			e.printStackTrace();
			fail("CodegenEngine generation failed.");
		}
//		try {
//			ce.generate("SymbianUnitTest");
//		} catch (Exception e) {
//			e.printStackTrace();
//			fail("CodegenEngine generation failed.");
//		}
	}

}