diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/optional/vss/MSVSSTest.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/optional/vss/MSVSSTest.java | 475 |
1 files changed, 0 insertions, 475 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/optional/vss/MSVSSTest.java b/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/optional/vss/MSVSSTest.java deleted file mode 100644 index aa96d8d5..00000000 --- a/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/optional/vss/MSVSSTest.java +++ /dev/null @@ -1,475 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -package org.apache.tools.ant.taskdefs.optional.vss; - -import java.io.File; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.TimeZone; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.BuildFileRule; -import org.apache.tools.ant.Location; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.taskdefs.Tstamp; -import org.apache.tools.ant.types.Commandline; -import org.apache.tools.ant.types.Path; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; - -/** - * Testcase to ensure that command line generation and required attributes are correct. - * - */ -public class MSVSSTest implements MSVSSConstants { - - private Commandline commandline; - - private static final String VSS_PROJECT_PATH = "/SourceRoot/Project"; - private static final String DS_VSS_PROJECT_PATH = "$/SourceRoot/Project"; - private static final String VSS_USERNAME = "ant"; - private static final String VSS_PASSWORD = "rocks"; - private static final String LOCAL_PATH = "testdir"; - private static final String SRC_LABEL = "label1"; - private static final String LONG_LABEL = "123456789012345678901234567890"; - private static final String SRC_COMMENT = "I fixed a bug"; - private static final String VERSION = "007"; - private static final String DATE = "00-00-00"; - private static final String DATE2 = "01-01-01"; - private static final String OUTPUT = "output.log"; - private static final String SS_DIR = "c:/winnt".replace('/', File.separatorChar); - - @Rule - public BuildFileRule buildRule = new BuildFileRule(); - private Project project; - - @Before - public void setUp(){ - project = new Project(); - project.setBasedir("."); - project.init(); - } - - @After - public void tearDown() { - File file = new File(project.getBaseDir(), LOCAL_PATH); - if (file.exists()) { - file.delete(); - } - } - - @Test - public void testGetCommandLine() { - String[] sTestCmdLine = {MSVSS.SS_EXE, MSVSS.COMMAND_GET, DS_VSS_PROJECT_PATH, - MSVSS.FLAG_OVERRIDE_WORKING_DIR + project.getBaseDir() - .getAbsolutePath() - + File.separator + LOCAL_PATH, MSVSS.FLAG_AUTORESPONSE_DEF, - MSVSS.FLAG_RECURSION, MSVSS.FLAG_VERSION + VERSION, MSVSS.FLAG_LOGIN - + VSS_USERNAME + "," + VSS_PASSWORD, FLAG_FILETIME_UPDATED, FLAG_SKIP_WRITABLE}; - - // Set up a VSSGet task - MSVSSGET vssGet = new MSVSSGET(); - vssGet.setProject(project); - vssGet.setRecursive(true); - vssGet.setLocalpath(new Path(project, LOCAL_PATH)); - vssGet.setLogin(VSS_USERNAME + "," + VSS_PASSWORD); - vssGet.setVersion(VERSION); - vssGet.setQuiet(false); - vssGet.setDate(DATE); - vssGet.setLabel(SRC_LABEL); - vssGet.setVsspath(VSS_PROJECT_PATH); - MSVSS.CurrentModUpdated cmu = new MSVSS.CurrentModUpdated(); - cmu.setValue(TIME_UPDATED); - vssGet.setFileTimeStamp(cmu); - MSVSS.WritableFiles wf = new MSVSS.WritableFiles(); - wf.setValue(WRITABLE_SKIP); - vssGet.setWritableFiles(wf); - - commandline = vssGet.buildCmdLine(); - - checkCommandLines(sTestCmdLine, commandline.getCommandline()); - } - - /** Tests VSSGet required attributes. */ - @Test - public void testGetExceptions() { - buildRule.configureProject("src/etc/testcases/taskdefs/optional/vss/vss.xml"); - expectSpecificBuildException("vssget.1", "some cause", "vsspath attribute must be set!"); - } - - /** Tests Label commandline generation. */ - @Test - public void testLabelCommandLine1() { - String[] sTestCmdLine = {MSVSS.SS_EXE, MSVSS.COMMAND_LABEL, DS_VSS_PROJECT_PATH, - MSVSS.FLAG_COMMENT + SRC_COMMENT, MSVSS.FLAG_AUTORESPONSE_YES, - MSVSS.FLAG_LABEL + SRC_LABEL, MSVSS.FLAG_VERSION + VERSION, MSVSS.FLAG_LOGIN - + VSS_USERNAME + "," + VSS_PASSWORD}; - - // Set up a VSSLabel task - MSVSSLABEL vssLabel = new MSVSSLABEL(); - vssLabel.setProject(project); - vssLabel.setComment(SRC_COMMENT); - vssLabel.setLogin(VSS_USERNAME + "," + VSS_PASSWORD); - vssLabel.setVersion(VERSION); - vssLabel.setAutoresponse("Y"); - vssLabel.setLabel(SRC_LABEL); - vssLabel.setVsspath(VSS_PROJECT_PATH); - - commandline = vssLabel.buildCmdLine(); - - checkCommandLines(sTestCmdLine, commandline.getCommandline()); - } - - /** Tests Label commandline generation with a label of more than 31 chars. */ - @Test - public void testLabelCommandLine2() { - String[] sTestCmdLine = {MSVSS.SS_EXE, MSVSS.COMMAND_LABEL, DS_VSS_PROJECT_PATH, - MSVSS.FLAG_COMMENT + SRC_COMMENT, MSVSS.FLAG_AUTORESPONSE_DEF, - MSVSS.FLAG_LABEL + LONG_LABEL, - MSVSS.FLAG_LOGIN + VSS_USERNAME + "," + VSS_PASSWORD}; - - // Set up a VSSLabel task - MSVSSLABEL vssLabel = new MSVSSLABEL(); - vssLabel.setProject(project); - vssLabel.setComment(SRC_COMMENT); - vssLabel.setLogin(VSS_USERNAME + "," + VSS_PASSWORD); - vssLabel.setLabel(LONG_LABEL + "blahblah"); - vssLabel.setVsspath(VSS_PROJECT_PATH); - - commandline = vssLabel.buildCmdLine(); - - checkCommandLines(sTestCmdLine, commandline.getCommandline()); - } - - /** - * Test VSSLabel required attributes. - */ - @Test - public void testLabelExceptions() { - buildRule.configureProject("src/etc/testcases/taskdefs/optional/vss/vss.xml"); - expectSpecificBuildException("vsslabel.1", "some cause", "vsspath attribute must be set!"); - expectSpecificBuildException("vsslabel.2", "some cause", "label attribute must be set!"); - } - - /** Tests VSSHistory commandline generation with from label. */ - @Test - public void testHistoryCommandLine1() { - String[] sTestCmdLine = {MSVSS.SS_EXE, MSVSS.COMMAND_HISTORY, DS_VSS_PROJECT_PATH, - MSVSS.FLAG_AUTORESPONSE_DEF, MSVSS.FLAG_VERSION_LABEL + LONG_LABEL - + MSVSS.VALUE_FROMLABEL + SRC_LABEL, MSVSS.FLAG_LOGIN + VSS_USERNAME - + "," + VSS_PASSWORD, MSVSS.FLAG_OUTPUT + project.getBaseDir() - .getAbsolutePath() - + File.separator + OUTPUT}; - - // Set up a VSSHistory task - MSVSSHISTORY vssHistory = new MSVSSHISTORY(); - vssHistory.setProject(project); - - vssHistory.setLogin(VSS_USERNAME + "," + VSS_PASSWORD); - - vssHistory.setFromLabel(SRC_LABEL); - vssHistory.setToLabel(LONG_LABEL + "blahblah"); - vssHistory.setVsspath(VSS_PROJECT_PATH); - vssHistory.setRecursive(false); - vssHistory.setOutput(new File(project.getBaseDir().getAbsolutePath(), OUTPUT)); - - commandline = vssHistory.buildCmdLine(); - - checkCommandLines(sTestCmdLine, commandline.getCommandline()); - } - - /** Tests VSSHistory commandline generation with from date. */ - @Test - public void testHistoryCommandLine2() { - String[] sTestCmdLine = {MSVSS.SS_EXE, MSVSS.COMMAND_HISTORY, DS_VSS_PROJECT_PATH, - MSVSS.FLAG_AUTORESPONSE_DEF, MSVSS.FLAG_VERSION_DATE + DATE + MSVSS.VALUE_FROMDATE - + DATE2, MSVSS.FLAG_RECURSION, MSVSS.FLAG_LOGIN + VSS_USERNAME + "," + VSS_PASSWORD}; - - // Set up a VSSHistory task - MSVSSHISTORY vssHistory = new MSVSSHISTORY(); - vssHistory.setProject(project); - vssHistory.setLogin(VSS_USERNAME + "," + VSS_PASSWORD); - vssHistory.setFromDate(DATE2); - vssHistory.setToDate(DATE); - vssHistory.setVsspath(VSS_PROJECT_PATH); - vssHistory.setRecursive(true); - - commandline = vssHistory.buildCmdLine(); - - checkCommandLines(sTestCmdLine, commandline.getCommandline()); - } - - /** Tests VSSHistory commandline generation with date calculation. */ - @Test - public void testHistoryCommandLine3() { - // Set up a Timestamp - Tstamp tstamp = new Tstamp(); - Location location = new Location("src/etc/testcases/taskdefs/optional/vss/vss.xml"); - tstamp.setLocation(location); - tstamp.setProject(project); - Tstamp.CustomFormat format = tstamp.createFormat(); - format.setProperty("today"); - format.setPattern("HH:mm:ss z"); - format.setTimezone("GMT"); - Date date = Calendar.getInstance().getTime(); - format.execute(project, date, location); - String today = project.getProperty("today"); - - // Get today's date - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss z"); - sdf.setTimeZone( TimeZone.getTimeZone("GMT") ); - String expected = sdf.format(date); - - // Set up a VSSHistory task - MSVSSHISTORY vssHistory = new MSVSSHISTORY(); - vssHistory.setProject(project); - vssHistory.setLogin(VSS_USERNAME); - vssHistory.setToDate(today); - vssHistory.setVsspath(VSS_PROJECT_PATH); - - String[] sTestCmdLine = {MSVSS.SS_EXE, MSVSS.COMMAND_HISTORY, DS_VSS_PROJECT_PATH, - MSVSS.FLAG_AUTORESPONSE_DEF, MSVSS.FLAG_VERSION_DATE + expected, MSVSS.FLAG_LOGIN + VSS_USERNAME}; - - commandline = vssHistory.buildCmdLine(); - - checkCommandLines(sTestCmdLine, commandline.getCommandline()); - } - - /** - * Tests VSSHistory required attributes. - */ - @Test - public void testHistoryExceptions() { - buildRule.configureProject("src/etc/testcases/taskdefs/optional/vss/vss.xml"); - expectSpecificBuildException("vsshistory.1", "some cause", "vsspath attribute must be set!"); - } - - private void expectSpecificBuildException(String target, String failMessage, - String exceptionMessage) { - try { - buildRule.executeTarget(target); - fail(failMessage); - } catch(BuildException ex) { - assertEquals(exceptionMessage, ex.getMessage()); - } - } - - /** Tests CheckIn commandline generation. */ - @Test - public void testCheckinCommandLine() { - String[] sTestCmdLine = {MSVSS.SS_EXE, MSVSS.COMMAND_CHECKIN, DS_VSS_PROJECT_PATH, - MSVSS.FLAG_AUTORESPONSE_NO, MSVSS.FLAG_WRITABLE, MSVSS.FLAG_LOGIN + VSS_USERNAME, - MSVSS.FLAG_COMMENT + SRC_COMMENT}; - - // Set up a VSSCheckIn task - MSVSSCHECKIN vssCheckin = new MSVSSCHECKIN(); - vssCheckin.setProject(project); - vssCheckin.setComment(SRC_COMMENT); - vssCheckin.setLogin(VSS_USERNAME); - vssCheckin.setAutoresponse("N"); - vssCheckin.setVsspath(VSS_PROJECT_PATH); - vssCheckin.setWritable(true); - - commandline = vssCheckin.buildCmdLine(); - - checkCommandLines(sTestCmdLine, commandline.getCommandline()); - } - - /** - * Test VSSCheckIn required attributes. - */ - @Test - public void testCheckinExceptions() { - buildRule.configureProject("src/etc/testcases/taskdefs/optional/vss/vss.xml"); - expectSpecificBuildException("vsscheckin.1", "some cause", "vsspath attribute must be set!"); - } - - /** Tests CheckOut commandline generation. */ - @Test - public void testCheckoutCommandLine() { - String[] sTestCmdLine = {SS_DIR + File.separator + MSVSS.SS_EXE, MSVSS.COMMAND_CHECKOUT, - DS_VSS_PROJECT_PATH, MSVSS.FLAG_AUTORESPONSE_DEF, MSVSS.FLAG_RECURSION, - MSVSS.FLAG_VERSION_DATE + DATE, MSVSS.FLAG_LOGIN + VSS_USERNAME, - FLAG_FILETIME_MODIFIED, FLAG_NO_GET}; - - // Set up a VSSCheckOut task - MSVSSCHECKOUT vssCheckout = new MSVSSCHECKOUT(); - vssCheckout.setProject(project); - vssCheckout.setLogin(VSS_USERNAME); - vssCheckout.setVsspath(DS_VSS_PROJECT_PATH); - vssCheckout.setRecursive(true); - vssCheckout.setDate(DATE); - vssCheckout.setLabel(SRC_LABEL); - vssCheckout.setSsdir(SS_DIR); - MSVSS.CurrentModUpdated cmu = new MSVSS.CurrentModUpdated(); - cmu.setValue(TIME_MODIFIED); - vssCheckout.setFileTimeStamp(cmu); - vssCheckout.setGetLocalCopy(false); - - commandline = vssCheckout.buildCmdLine(); - - checkCommandLines(sTestCmdLine, commandline.getCommandline()); - } - - /** - * Test VSSCheckout required attributes. - */ - @Test - public void testCheckoutExceptions() { - buildRule.configureProject("src/etc/testcases/taskdefs/optional/vss/vss.xml"); - expectSpecificBuildException("vsscheckout.1", "some cause", "vsspath attribute must be set!"); - expectSpecificBuildException("vsscheckout.2", "some cause", "blah is not a legal value for this attribute"); - } - - /** Tests Add commandline generation. */ - @Test - public void testAddCommandLine() { - String[] sTestCmdLine = {SS_DIR + File.separator + MSVSS.SS_EXE, MSVSS.COMMAND_ADD, - project.getBaseDir().getAbsolutePath() + File.separator + LOCAL_PATH, - MSVSS.FLAG_AUTORESPONSE_DEF, MSVSS.FLAG_RECURSION, - MSVSS.FLAG_LOGIN + VSS_USERNAME + "," + VSS_PASSWORD, MSVSS.FLAG_COMMENT + "-"}; - - // Set up a VSSAdd task - MSVSSADD vssAdd = new MSVSSADD(); - vssAdd.setProject(project); - vssAdd.setLogin(VSS_USERNAME + "," + VSS_PASSWORD); - vssAdd.setVsspath(DS_VSS_PROJECT_PATH); - vssAdd.setRecursive(true); - vssAdd.setSsdir(SS_DIR); - vssAdd.setWritable(false); - vssAdd.setLocalpath(new Path(project, LOCAL_PATH)); - - commandline = vssAdd.buildCmdLine(); - - checkCommandLines(sTestCmdLine, commandline.getCommandline()); - } - - /** - * Test VSSAdd required attributes. - */ - @Test - public void testAddExceptions() { - buildRule.configureProject("src/etc/testcases/taskdefs/optional/vss/vss.xml"); - expectSpecificBuildException("vssadd.1", "some cause", "localPath attribute must be set!"); - } - - /** Tests CP commandline generation. */ - @Test - public void testCpCommandLine() { - String[] sTestCmdLine = {MSVSS.SS_EXE, MSVSS.COMMAND_CP, - DS_VSS_PROJECT_PATH, MSVSS.FLAG_AUTORESPONSE_DEF, MSVSS.FLAG_LOGIN + - VSS_USERNAME}; - - // Set up a VSSCp task - MSVSSCP vssCp = new MSVSSCP(); - vssCp.setProject(project); - vssCp.setLogin(VSS_USERNAME); - vssCp.setVsspath(DS_VSS_PROJECT_PATH); - - commandline = vssCp.buildCmdLine(); - - checkCommandLines(sTestCmdLine, commandline.getCommandline()); - } - - /** - * Test VSSCP required attributes. - */ - @Test - public void testCpExceptions() { - buildRule.configureProject("src/etc/testcases/taskdefs/optional/vss/vss.xml"); - expectSpecificBuildException("vsscp.1", "some cause", "vsspath attribute must be set!"); - } - - /** Tests Create commandline generation. */ - @Test - public void testCreateCommandLine() { - String[] sTestCmdLine = { MSVSS.SS_EXE, MSVSS.COMMAND_CREATE, - DS_VSS_PROJECT_PATH, MSVSS.FLAG_COMMENT + SRC_COMMENT, MSVSS.FLAG_AUTORESPONSE_NO, - MSVSS.FLAG_QUIET, MSVSS.FLAG_LOGIN + VSS_USERNAME}; - - // Set up a VSSCreate task - MSVSSCREATE vssCreate = new MSVSSCREATE(); - vssCreate.setProject(project); - vssCreate.setComment(SRC_COMMENT); - vssCreate.setLogin(VSS_USERNAME); - vssCreate.setVsspath(DS_VSS_PROJECT_PATH); - vssCreate.setFailOnError(true); - vssCreate.setAutoresponse("N"); - vssCreate.setQuiet(true); - - commandline = vssCreate.buildCmdLine(); - - checkCommandLines(sTestCmdLine, commandline.getCommandline()); - } - - /** - * Test VSSCreate required attributes. - */ - @Test - public void testCreateExceptions() { - buildRule.configureProject("src/etc/testcases/taskdefs/optional/vss/vss.xml"); - expectSpecificBuildException("vsscreate.1", "some cause", "vsspath attribute must be set!"); - } - - /** - * Iterate through the generated command line comparing it to reference one. - * @param sTestCmdLine The reference command line; - * @param sGeneratedCmdLine The generated command line; - */ - private void checkCommandLines(String[] sTestCmdLine, String[] sGeneratedCmdLine) { - int testLength = sTestCmdLine.length; - int genLength = sGeneratedCmdLine.length; - - int genIndex = 0; - int testIndex = 0; - - while (testIndex < testLength) { - try { - if (sGeneratedCmdLine[genIndex].equals("")) { - genIndex++; - continue; - } - assertEquals("arg # " + testIndex, - sTestCmdLine[testIndex], - sGeneratedCmdLine[genIndex]); - testIndex++; - genIndex++; - } catch (ArrayIndexOutOfBoundsException aioob) { - fail("missing arg " + sTestCmdLine[testIndex]); - } - } - - // Count the number of empty strings - int cnt = 0; - for (int i = 0; i < genLength; i++) { - if (sGeneratedCmdLine[i].equals("")) { - cnt++; - } - } - if (genLength - cnt > sTestCmdLine.length) { - // We have extra elements - fail("extra args"); - } - } -} |