001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041:
042: package org.netbeans.modules.db.sql.execute.ui.util;
043:
044: import java.io.BufferedReader;
045: import java.io.File;
046: import java.io.FileInputStream;
047: import java.io.InputStreamReader;
048: import java.util.ArrayList;
049: import java.util.HashMap;
050: import java.util.List;
051: import java.util.Map;
052: import java.util.Properties;
053:
054: /**
055: *
056: * @author luke
057: */
058: public class TestCaseContext {
059: private Properties prop = new Properties();
060: private String sql_create;
061: private String sql_select;
062: private String sql_del;
063: private Properties data = new Properties();
064: private File[] jars;
065: private String name;
066:
067: public TestCaseContext(HashMap map, String name) throws Exception {
068: this .name = name;
069: setProperties((File) map.get(TestCaseDataFactory.DB_PROP));
070: setJars((File[]) map.get(TestCaseDataFactory.DB_JARS));
071: setSqlCreate((File) map.get(TestCaseDataFactory.DB_SQLCREATE));
072: setSqlDel((File) map.get(TestCaseDataFactory.DB_SQLDEL));
073: setSqlSelect((File) map.get(TestCaseDataFactory.DB_SQLSELECT));
074: setData((File) map.get(TestCaseDataFactory.DB_TEXT));
075:
076: }
077:
078: public Properties getProperties() {
079: return prop;
080: }
081:
082: private void setProperties(File f) throws Exception {
083: prop.load(new FileInputStream(f.getAbsolutePath()));
084: }
085:
086: public String getSqlCreate() {
087: return sql_create;
088: }
089:
090: private void setSqlCreate(File f) throws Exception {
091: sql_create = getContent(f);
092: }
093:
094: public String getSqlSelect() {
095: return sql_select;
096: }
097:
098: private void setSqlSelect(File f) throws Exception {
099: sql_select = getContent(f);
100: }
101:
102: public String getSqlDel() {
103: return sql_del;
104: }
105:
106: private void setSqlDel(File f) throws Exception {
107: sql_del = getContent(f);
108: }
109:
110: public Map getData() {
111: return data;
112: }
113:
114: private void setData(File f) throws Exception {
115: data.load(new FileInputStream(f.getAbsolutePath()));
116: }
117:
118: public File[] getJars() {
119: return jars;
120: }
121:
122: private void setJars(File[] f) {
123: jars = f;
124: }
125:
126: private String[] parseContent(File f) throws Exception {
127: BufferedReader br = new BufferedReader(new InputStreamReader(
128: new FileInputStream(f.getAbsolutePath())));
129: List array = new ArrayList();
130: String s = null;
131: while ((s = br.readLine()) != null) {
132: array.add(s);
133: }
134: if (array.size() == 0)
135: throw new RuntimeException(name + ": File " + f.getName()
136: + " doesn't containt the data !");
137: return (String[]) array.toArray(new String[0]);
138: }
139:
140: private String getContent(File f) throws Exception {
141: BufferedReader br = new BufferedReader(new InputStreamReader(
142: new FileInputStream(f.getAbsolutePath())));
143: StringBuffer sb = new StringBuffer();
144: String s = null;
145: while ((s = br.readLine()) != null) {
146: sb.append(s);
147: }
148: if (sb.length() == 0)
149: throw new RuntimeException(name + ": File called "
150: + f.getName() + " doesn't contain the data.");
151: return sb.toString();
152: }
153:
154: public String toString() {
155: return name;
156: }
157:
158: }
|