Return-Path: Delivered-To: apmail-jakarta-ant-dev-archive@jakarta.apache.org Received: (qmail 33289 invoked by uid 500); 18 Oct 2001 08:50:39 -0000 Mailing-List: contact ant-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk Reply-To: ant-dev@jakarta.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list ant-dev@jakarta.apache.org Received: (qmail 33275 invoked by uid 500); 18 Oct 2001 08:50:39 -0000 Delivered-To: apmail-jakarta-ant-cvs@apache.org Date: 18 Oct 2001 08:44:29 -0000 Message-ID: <20011018084429.33393.qmail@icarus.apache.org> From: bodewig@apache.org To: jakarta-ant-cvs@apache.org Subject: cvs commit: jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs/optional PropertyFileTest.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N bodewig 01/10/18 01:44:29 Added: src/etc/testcases/taskdefs propertyfile.xml src/testcases/org/apache/tools/ant/taskdefs/optional PropertyFileTest.java Log: Add initial testcase for the optional propertyfile task. Submitted by: Levi Cook Revision Changes Path 1.1 jakarta-ant/src/etc/testcases/taskdefs/propertyfile.xml Index: propertyfile.xml =================================================================== This file is for testing purposes only... @see PropertyFileTest.java for more info. 1.1 jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs/optional/PropertyFileTest.java Index: PropertyFileTest.java =================================================================== /* * The Apache Software License, Version 1.1 * * Copyright (c) 2001 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The names "The Jakarta Project", "Ant", and "Apache Software * Foundation" must not be used to endorse or promote products derived * from this software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * . */ package org.apache.tools.ant.taskdefs.optional; import org.apache.tools.ant.taskdefs.TaskdefsTest; import java.util.Properties; import java.io.FileOutputStream; import java.io.FileInputStream; import java.io.InputStream; import java.io.File; /** * JUnit testcase that excercises the optional PropertyFile task in ant. * (this is really more of a functional test so far.., but it's enough to let * me start refactoring...) * *@author Levi Cook *@created October 2, 2001 */ public class PropertyFileTest extends TaskdefsTest { public PropertyFileTest(String name) { super(name); } /** * The JUnit setup method */ public void setUp() throws Exception { destroyTempFiles(); initTestPropFile(); initBuildPropFile(); configureProject(projectFilePath); } /** * The JUnit tearDown method */ public void tearDown() { destroyTempFiles(); } /** * A unit test for JUnit- Excercises the propertyfile tasks ability to * update properties that are already defined- */ public void testUpdatesExistingProperties() throws Exception { FileInputStream beforeUpdateFile = new FileInputStream(testPropsFilePath); Properties beforeUpdate = new Properties(); beforeUpdate.load(beforeUpdateFile); assertEquals(FNAME, beforeUpdate.getProperty(FNAME_KEY)); assertEquals(LNAME, beforeUpdate.getProperty(LNAME_KEY)); assertEquals(EMAIL, beforeUpdate.getProperty(EMAIL_KEY)); beforeUpdateFile.close(); // ask ant to update the properties... executeTarget("update-existing-properties"); FileInputStream afterUpdateFile = new FileInputStream(testPropsFilePath); Properties afterUpdate = new Properties(); afterUpdate.load(afterUpdateFile); assertEquals(NEW_FNAME, afterUpdate.getProperty(FNAME_KEY)); assertEquals(NEW_LNAME, afterUpdate.getProperty(LNAME_KEY)); assertEquals(NEW_EMAIL, afterUpdate.getProperty(EMAIL_KEY)); afterUpdateFile.close(); } private void initTestPropFile() throws Exception { Properties testProps = new Properties(); testProps.put(FNAME_KEY, FNAME); testProps.put(LNAME_KEY, LNAME); testProps.put(EMAIL_KEY, EMAIL); FileOutputStream fos = new FileOutputStream(testPropsFilePath); testProps.save(fos, "defaults"); fos.close(); } private void initBuildPropFile() throws Exception { Properties buildProps = new Properties(); buildProps.put(testPropertyFileKey, testPropertyFile); buildProps.put(FNAME_KEY, NEW_FNAME); buildProps.put(LNAME_KEY, NEW_LNAME); buildProps.put(EMAIL_KEY, NEW_EMAIL); FileOutputStream fos = new FileOutputStream(buildPropsFilePath); buildProps.save(fos, null); fos.close(); } private void destroyTempFiles() { File tempFile = new File(testPropsFilePath); tempFile.delete(); tempFile = null; tempFile = new File(buildPropsFilePath); tempFile.delete(); tempFile = null; } private static final String projectFilePath = "src/etc/testcases/taskdefs/propertyfile.xml", testPropertyFile = "propertyfile.test.properties", testPropertyFileKey = "test.propertyfile", testPropsFilePath = "src/etc/testcases/taskdefs/" + testPropertyFile, buildPropsFilePath = "src/etc/testcases/taskdefs/propertyfile.build.properties", FNAME = "Bruce", NEW_FNAME = "Clark", FNAME_KEY = "firstname", LNAME = "Banner", NEW_LNAME = "Kent", LNAME_KEY = "lastname", EMAIL = "incredible@hulk.com", NEW_EMAIL = "kc@superman.com", EMAIL_KEY = "email"; }