You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2012/04/23 09:45:38 UTC

svn commit: r1329106 [5/6] - in /maven/scm/trunk: ./ maven-scm-client/ maven-scm-client/src/main/resources/META-INF/plexus/ maven-scm-providers/ maven-scm-providers/maven-scm-provider-accurev/src/test/java/org/apache/maven/scm/provider/accurev/command/...

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/changelog/JazzChangeLogCommandTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/changelog/JazzChangeLogCommandTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/changelog/JazzChangeLogCommandTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/changelog/JazzChangeLogCommandTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,371 @@
+package org.apache.maven.scm.provider.jazz.command.changelog;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+
+import org.apache.maven.scm.ChangeFile;
+import org.apache.maven.scm.ChangeSet;
+import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.log.DefaultLog;
+import org.apache.maven.scm.provider.jazz.JazzScmTestCase;
+import org.apache.maven.scm.provider.jazz.repository.JazzScmProviderRepository;
+import org.codehaus.plexus.util.cli.Commandline;
+
+/*
+ * 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.
+ */
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzChangeLogCommandTest
+    extends JazzScmTestCase
+{
+    private JazzScmProviderRepository repo;
+
+    List<ChangeSet> changeSets;
+    
+    private JazzHistoryConsumer historyConsumer;
+
+    private JazzListChangesetConsumer listChangesetConsumer;
+
+    private static final String userDateFormat = "";
+
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+        repo = getScmProviderRepository();
+        changeSets = new ArrayList<ChangeSet>();
+        historyConsumer = new JazzHistoryConsumer( repo, new DefaultLog(), changeSets );
+        listChangesetConsumer = new JazzListChangesetConsumer( repo, new DefaultLog(), changeSets, userDateFormat );
+
+        // Simulate the output of the parsing of the "scm status" command.
+        // IE, fill in the workspace details
+        // Needed for the workspace for the list changesets command.
+        repo.setWorkspace( "Dave's Repository Workspace" );
+    }
+
+    public void testCreateHistoryCommand()
+        throws Exception
+    {
+        Commandline cmd = new JazzChangeLogCommand().createHistoryCommand( repo, getScmFileSet() ).getCommandline();
+        String expected = "scm history --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword --maximum 10000000";
+        assertCommandLine( expected, getWorkingDirectory(), cmd );
+    }
+
+    public void testCreateListChangesetCommand()
+        throws Exception
+    {
+        // Dummy up two change sets.
+        ChangeSet changeSet = new ChangeSet();
+        changeSet.setRevision( "1010" );
+        changeSets.add( changeSet );
+        changeSet = new ChangeSet();
+        changeSet.setRevision( "1012" );
+        changeSets.add( changeSet );
+        
+        // Now test them
+        Commandline cmd = new JazzChangeLogCommand().createListChangesetCommand( repo, getScmFileSet(), changeSets ).getCommandline();
+        String expected = "scm list changesets --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword --workspace \"Dave's Repository Workspace\" 1010 1012";
+        assertCommandLine( expected, getWorkingDirectory(), cmd );
+    }
+    
+    public void testHistoryConsumer()
+        throws Exception
+    {
+            historyConsumer.consumeLine( "Change sets:" );
+            historyConsumer.consumeLine( "  (1589)  ---$ Deb \"[maven-release-plugin] prepare for next development itera...\"" );
+            historyConsumer.consumeLine( "  (1585)  ---$ Deb \"[maven-release-plugin] prepare release GPDB-1.0.21\"" );
+            historyConsumer.consumeLine( "  (1584)  ---$ Deb \"This is my first changeset (2)\"" );
+            historyConsumer.consumeLine( "  (1583)  ---$ Deb \"This is my first changeset (1)\"" );
+            historyConsumer.consumeLine( "  (1323)  ---$ Deb <No comment>" );
+            historyConsumer.consumeLine( "  (1319)  ---$ Deb <No comment>" );
+
+            assertEquals( "Wrong number of change sets parsed!", 6, changeSets.size() );
+            // The order needs to be preserved.
+            assertEquals( "Parsing sequence error (1)", "1589", changeSets.get( 0 ).getRevision() );
+            assertEquals( "Parsing sequence error (2)", "1585", changeSets.get( 1 ).getRevision() );
+            assertEquals( "Parsing sequence error (3)", "1584", changeSets.get( 2 ).getRevision() );
+            assertEquals( "Parsing sequence error (4)", "1583", changeSets.get( 3 ).getRevision() );
+            assertEquals( "Parsing sequence error (5)", "1323", changeSets.get( 4 ).getRevision() );
+            assertEquals( "Parsing sequence error (6)", "1319", changeSets.get( 5 ).getRevision() );
+    }
+    
+    public void testListChangesetConsumer()
+        throws Exception
+    {
+        // Dummy up our changeset list, as parsed from the previous "scm history" command
+        ChangeSet changeSet = new ChangeSet();
+        changeSet.setRevision( "1589" );
+        changeSets.add( changeSet );
+        changeSet = new ChangeSet();
+        changeSet.setRevision( "1585" );
+        changeSets.add( changeSet );
+        changeSet = new ChangeSet();
+        changeSet.setRevision( "1584" );
+        changeSets.add( changeSet );
+        changeSet = new ChangeSet();
+        changeSet.setRevision( "1583" );
+        changeSets.add( changeSet );
+        changeSet = new ChangeSet();
+        changeSet.setRevision( "1323" );
+        changeSets.add( changeSet );
+        changeSet = new ChangeSet();
+        changeSet.setRevision( "1319" );
+        changeSets.add( changeSet );
+        
+        listChangesetConsumer.consumeLine("Change sets:" );
+        listChangesetConsumer.consumeLine("  (1589)  ---$ Deb \"[maven-release-plugin] prepare for next development iteration\"" );
+        listChangesetConsumer.consumeLine("    Component: (1158) \"GPDB\"" );
+        listChangesetConsumer.consumeLine("    Modified: Feb 25, 2012 10:15 PM (Yesterday)" );
+        listChangesetConsumer.consumeLine("    Changes:" );
+        listChangesetConsumer.consumeLine("      ---c- (1170) \\GPDB\\GPDBEAR\\pom.xml" );
+        listChangesetConsumer.consumeLine("      ---c- (1171) \\GPDB\\GPDBResources\\pom.xml" );
+        listChangesetConsumer.consumeLine("      ---c- (1167) \\GPDB\\GPDBWeb\\pom.xml" );
+        listChangesetConsumer.consumeLine("      ---c- (1165) \\GPDB\\pom.xml" );
+        listChangesetConsumer.consumeLine("  (1585)  ---$ Deb \"[maven-release-plugin] prepare release GPDB-1.0.21\"" );
+        listChangesetConsumer.consumeLine("    Component: (1158) \"GPDB\"" );
+        listChangesetConsumer.consumeLine("    Modified: Feb 25, 2012 10:13 PM (Yesterday)" );
+        listChangesetConsumer.consumeLine("    Changes:" );
+        listChangesetConsumer.consumeLine("      ---c- (1170) \\GPDB\\GPDBEAR\\pom.xml" );
+        listChangesetConsumer.consumeLine("      ---c- (1171) \\GPDB\\GPDBResources\\pom.xml" );
+        listChangesetConsumer.consumeLine("      ---c- (1167) \\GPDB\\GPDBWeb\\pom.xml" );
+        listChangesetConsumer.consumeLine("      ---c- (1165) \\GPDB\\pom.xml" );
+        listChangesetConsumer.consumeLine("  (1584)  ---$ Deb \"This is my first changeset (2)\"" );
+        listChangesetConsumer.consumeLine("    Component: (1158) \"GPDB\"" );
+        listChangesetConsumer.consumeLine("    Modified: Feb 25, 2012 10:13 PM (Yesterday)" );
+        listChangesetConsumer.consumeLine("  (1583)  ---$ Deb \"This is my first changeset (1)\"" );
+        listChangesetConsumer.consumeLine("    Component: (1158) \"GPDB\"" );
+        listChangesetConsumer.consumeLine("    Modified: Feb 25, 2012 10:13 PM (Yesterday)" );
+        listChangesetConsumer.consumeLine("  (1323)  ---$ Deb <No comment>" );
+        listChangesetConsumer.consumeLine("    Component: (1158) \"GPDB\"" );
+        listChangesetConsumer.consumeLine("    Modified: Feb 24, 2012 11:04 PM (Last Week)" );
+        listChangesetConsumer.consumeLine("    Changes:" );
+        listChangesetConsumer.consumeLine("      ---c- (1170) \\GPDB\\GPDBEAR\\pom.xml" );
+        listChangesetConsumer.consumeLine("      ---c- (1171) \\GPDB\\GPDBResources\\pom.xml" );
+        listChangesetConsumer.consumeLine("      ---c- (1167) \\GPDB\\GPDBWeb\\pom.xml" );
+        listChangesetConsumer.consumeLine("      ---c- (1165) \\GPDB\\pom.xml" );
+        listChangesetConsumer.consumeLine("  (1319)  ---$ Deb <No comment>" );
+        listChangesetConsumer.consumeLine("    Component: (1158) \"GPDB\"" );
+        listChangesetConsumer.consumeLine("    Modified: Feb 24, 2012 11:03 PM (Last Week)" );
+        listChangesetConsumer.consumeLine("    Changes:" );
+        listChangesetConsumer.consumeLine("      ---c- (1170) \\GPDB\\GPDBEAR\\pom.xml" );
+        listChangesetConsumer.consumeLine("      ---c- (1171) \\GPDB\\GPDBResources\\pom.xml" );
+        listChangesetConsumer.consumeLine("      ---c- (1167) \\GPDB\\GPDBWeb\\pom.xml" );
+        listChangesetConsumer.consumeLine("      ---c- (1165) \\GPDB\\pom.xml" );
+
+        assertEquals( "Wrong number of change sets parsed!", 6, changeSets.size() );
+        // The order needs to be preserved.
+        // Check revisions
+        assertEquals( "Parsing sequence error (1)", "1589", changeSets.get( 0 ).getRevision() );
+        assertEquals( "Parsing sequence error (2)", "1585", changeSets.get( 1 ).getRevision() );
+        assertEquals( "Parsing sequence error (3)", "1584", changeSets.get( 2 ).getRevision() );
+        assertEquals( "Parsing sequence error (4)", "1583", changeSets.get( 3 ).getRevision() );
+        assertEquals( "Parsing sequence error (5)", "1323", changeSets.get( 4 ).getRevision() );
+        assertEquals( "Parsing sequence error (6)", "1319", changeSets.get( 5 ).getRevision() );
+        // Check Author
+        assertEquals( "Parsing error - Author (1)", "Deb", changeSets.get( 0 ).getAuthor() );
+        assertEquals( "Parsing error - Author (2)", "Deb", changeSets.get( 1 ).getAuthor() );
+        assertEquals( "Parsing error - Author (3)", "Deb", changeSets.get( 2 ).getAuthor() );
+        assertEquals( "Parsing error - Author (4)", "Deb", changeSets.get( 3 ).getAuthor() );
+        assertEquals( "Parsing error - Author (5)", "Deb", changeSets.get( 4 ).getAuthor() );
+        assertEquals( "Parsing error - Author (6)", "Deb", changeSets.get( 5 ).getAuthor() );
+        // Check Comments
+        assertEquals( "Parsing error - Comment (1)", "[maven-release-plugin] prepare for next development iteration", changeSets.get( 0 ).getComment() );
+        assertEquals( "Parsing error - Comment (2)", "[maven-release-plugin] prepare release GPDB-1.0.21",            changeSets.get( 1 ).getComment() );
+        assertEquals( "Parsing error - Comment (3)", "This is my first changeset (2)",                                changeSets.get( 2 ).getComment() );
+        assertEquals( "Parsing error - Comment (4)", "This is my first changeset (1)",                                changeSets.get( 3 ).getComment() );
+        assertEquals( "Parsing error - Comment (5)", "No comment",                                                    changeSets.get( 4 ).getComment() );
+        assertEquals( "Parsing error - Comment (6)", "No comment",                                                    changeSets.get( 5 ).getComment() );
+        // Check Dates
+        assertEquals( "Parsing error - Date (1)", getDate( 2012, 01, 25, 22, 15, 0, null ), changeSets.get( 0 ).getDate() );
+        assertEquals( "Parsing error - Date (2)", getDate( 2012, 01, 25, 22, 13, 0, null ), changeSets.get( 1 ).getDate() );
+        assertEquals( "Parsing error - Date (3)", getDate( 2012, 01, 25, 22, 13, 0, null ), changeSets.get( 2 ).getDate() );
+        assertEquals( "Parsing error - Date (4)", getDate( 2012, 01, 25, 22, 13, 0, null ), changeSets.get( 3 ).getDate() );
+        assertEquals( "Parsing error - Date (5)", getDate( 2012, 01, 24, 23, 04, 0, null ), changeSets.get( 4 ).getDate() );
+        assertEquals( "Parsing error - Date (6)", getDate( 2012, 01, 24, 23, 03, 0, null ), changeSets.get( 5 ).getDate() );
+        // Check files
+        List<ChangeFile> files;
+        files = changeSets.get( 0 ).getFiles();
+        assertEquals( "Parsing error - Files (1)", 4, files.size() );
+        assertEquals( "Parsing error - Files (1) (1)", "\\GPDB\\GPDBEAR\\pom.xml",       files.get( 0 ).getName() );
+        assertEquals( "Parsing error - Files (1) (2)", "\\GPDB\\GPDBResources\\pom.xml", files.get( 1 ).getName() );
+        assertEquals( "Parsing error - Files (1) (3)", "\\GPDB\\GPDBWeb\\pom.xml",       files.get( 2 ).getName() );
+        assertEquals( "Parsing error - Files (1) (4)", "\\GPDB\\pom.xml",                files.get( 3 ).getName() );
+        files = changeSets.get( 1 ).getFiles();
+        assertEquals( "Parsing error - Files (2)", 4, files.size() );
+        assertEquals( "Parsing error - Files (2) (1)", "\\GPDB\\GPDBEAR\\pom.xml",       files.get( 0 ).getName() );
+        assertEquals( "Parsing error - Files (2) (2)", "\\GPDB\\GPDBResources\\pom.xml", files.get( 1 ).getName() );
+        assertEquals( "Parsing error - Files (2) (3)", "\\GPDB\\GPDBWeb\\pom.xml",       files.get( 2 ).getName() );
+        assertEquals( "Parsing error - Files (2) (4)", "\\GPDB\\pom.xml",                files.get( 3 ).getName() );
+        files = changeSets.get( 2 ).getFiles();
+        assertEquals( "Parsing error - Files (3)", 0, files.size() );   // Yes Virginia, an empty ChangeSet is valid
+        files = changeSets.get( 3 ).getFiles();
+        assertEquals( "Parsing error - Files (4)", 0, files.size() );   // Yes Virginia, an empty ChangeSet is valid
+        files = changeSets.get( 4 ).getFiles();
+        assertEquals( "Parsing error - Files (5)", 4, files.size() );
+        assertEquals( "Parsing error - Files (5) (1)", "\\GPDB\\GPDBEAR\\pom.xml",       files.get( 0 ).getName() );
+        assertEquals( "Parsing error - Files (5) (2)", "\\GPDB\\GPDBResources\\pom.xml", files.get( 1 ).getName() );
+        assertEquals( "Parsing error - Files (5) (3)", "\\GPDB\\GPDBWeb\\pom.xml",       files.get( 2 ).getName() );
+        assertEquals( "Parsing error - Files (5) (4)", "\\GPDB\\pom.xml",                files.get( 3 ).getName() );
+        files = changeSets.get( 5 ).getFiles();
+        assertEquals( "Parsing error - Files (6)", 4, files.size() );
+        assertEquals( "Parsing error - Files (6) (1)", "\\GPDB\\GPDBEAR\\pom.xml",       files.get( 0 ).getName() );
+        assertEquals( "Parsing error - Files (6) (2)", "\\GPDB\\GPDBResources\\pom.xml", files.get( 1 ).getName() );
+        assertEquals( "Parsing error - Files (6) (3)", "\\GPDB\\GPDBWeb\\pom.xml",       files.get( 2 ).getName() );
+        assertEquals( "Parsing error - Files (6) (4)", "\\GPDB\\pom.xml",                files.get( 3 ).getName() );
+        // Check file actions = ScmFileStatus
+        files = changeSets.get( 0 ).getFiles();
+        assertEquals( "Parsing error - File Status (1) (1)", ScmFileStatus.MODIFIED, files.get( 0 ).getAction() );
+        assertEquals( "Parsing error - File Status (1) (2)", ScmFileStatus.MODIFIED, files.get( 1 ).getAction() );
+        assertEquals( "Parsing error - File Status (1) (3)", ScmFileStatus.MODIFIED, files.get( 2 ).getAction() );
+        assertEquals( "Parsing error - File Status (1) (4)", ScmFileStatus.MODIFIED, files.get( 3 ).getAction() );
+        files = changeSets.get( 1 ).getFiles();
+        assertEquals( "Parsing error - File Status (2) (1)", ScmFileStatus.MODIFIED, files.get( 0 ).getAction() );
+        assertEquals( "Parsing error - File Status (2) (2)", ScmFileStatus.MODIFIED, files.get( 1 ).getAction() );
+        assertEquals( "Parsing error - File Status (2) (3)", ScmFileStatus.MODIFIED, files.get( 2 ).getAction() );
+        assertEquals( "Parsing error - File Status (2) (4)", ScmFileStatus.MODIFIED, files.get( 3 ).getAction() );
+        files = changeSets.get( 4 ).getFiles();
+        assertEquals( "Parsing error - File Status (5) (1)", ScmFileStatus.MODIFIED, files.get( 0 ).getAction() );
+        assertEquals( "Parsing error - File Status (5) (2)", ScmFileStatus.MODIFIED, files.get( 1 ).getAction() );
+        assertEquals( "Parsing error - File Status (5) (3)", ScmFileStatus.MODIFIED, files.get( 2 ).getAction() );
+        assertEquals( "Parsing error - File Status (5) (4)", ScmFileStatus.MODIFIED, files.get( 3 ).getAction() );
+        files = changeSets.get( 5 ).getFiles();
+        assertEquals( "Parsing error - File Status (6) (1)", ScmFileStatus.MODIFIED, files.get( 0 ).getAction() );
+        assertEquals( "Parsing error - File Status (6) (2)", ScmFileStatus.MODIFIED, files.get( 1 ).getAction() );
+        assertEquals( "Parsing error - File Status (6) (3)", ScmFileStatus.MODIFIED, files.get( 2 ).getAction() );
+        assertEquals( "Parsing error - File Status (6) (4)", ScmFileStatus.MODIFIED, files.get( 3 ).getAction() );
+    }
+    
+    public void testListChangesetConsumerWithTimeOnly()
+        throws Exception
+    {
+        // Dummy up our changeset list, as parsed from the previous "scm history" command
+        ChangeSet changeSet = new ChangeSet();
+        changeSet.setRevision( "1809" );
+        changeSets.add( changeSet );
+        changeSet = new ChangeSet();
+        changeSet.setRevision( "1801" );
+        changeSets.add( changeSet );
+        changeSet = new ChangeSet();
+        changeSet.setRevision( "1799" );
+        changeSets.add( changeSet );
+        changeSet = new ChangeSet();
+        changeSet.setRevision( "1764" );
+        changeSets.add( changeSet );
+
+        listChangesetConsumer.consumeLine( "Change sets:" );
+        listChangesetConsumer.consumeLine( "  (1809)  ---$ Deb \"[maven-release-plugin] prepare for next development iteration\"" );
+        listChangesetConsumer.consumeLine( "    Component: (1158) \"GPDB\"" );
+        listChangesetConsumer.consumeLine( "    Modified: 6:20 PM (5 minutes ago)" );
+        listChangesetConsumer.consumeLine( "    Changes:" );
+        listChangesetConsumer.consumeLine( "      ---c- (1170) \\GPDB\\GPDBEAR\\pom.xml" );
+        listChangesetConsumer.consumeLine( "      ---c- (1171) \\GPDB\\GPDBResources\\pom.xml" );
+        listChangesetConsumer.consumeLine( "      ---c- (1167) \\GPDB\\GPDBWeb\\pom.xml" );
+        listChangesetConsumer.consumeLine( "      ---c- (1165) \\GPDB\\pom.xml" );
+        listChangesetConsumer.consumeLine( "  (1801)  ---$ Deb \"[maven-release-plugin] prepare release GPDB-1.0.26\"" );
+        listChangesetConsumer.consumeLine( "    Component: (1158) \"GPDB\"" );
+        listChangesetConsumer.consumeLine( "    Modified: 6:18 PM (10 minutes ago)" );
+        listChangesetConsumer.consumeLine( "    Changes:" );
+        listChangesetConsumer.consumeLine( "      ---c- (1170) \\GPDB\\GPDBEAR\\pom.xml" );
+        listChangesetConsumer.consumeLine( "      ---c- (1171) \\GPDB\\GPDBResources\\pom.xml" );
+        listChangesetConsumer.consumeLine( "      ---c- (1167) \\GPDB\\GPDBWeb\\pom.xml" );
+        listChangesetConsumer.consumeLine( "  (1799)  ---$ Deb <No comment>" );
+        listChangesetConsumer.consumeLine( "    Component: (1158) \"GPDB\"" );
+        listChangesetConsumer.consumeLine( "    Modified: 6:18 PM (10 minutes ago)" );
+        listChangesetConsumer.consumeLine( "    Changes:" );
+        listChangesetConsumer.consumeLine( "      ---c- (1165) \\GPDB\\pom.xml" );
+        listChangesetConsumer.consumeLine( "  (1764)  ---$ Deb <No comment>" );
+        listChangesetConsumer.consumeLine( "    Component: (1158) \"GPDB\"" );
+        listChangesetConsumer.consumeLine( "    Modified: Mar 1, 2012 2:34 PM" );
+        listChangesetConsumer.consumeLine( "    Changes:" );
+        listChangesetConsumer.consumeLine( "      ---c- (1165) \\GPDB\\pom.xml" );
+
+        assertEquals( "Wrong number of change sets parsed!", 4, changeSets.size() );
+        // The order needs to be preserved.
+        // Check revisions
+        assertEquals( "Parsing sequence error (1)", "1809", changeSets.get( 0 ).getRevision() );
+        assertEquals( "Parsing sequence error (2)", "1801", changeSets.get( 1 ).getRevision() );
+        assertEquals( "Parsing sequence error (3)", "1799", changeSets.get( 2 ).getRevision() );
+        assertEquals( "Parsing sequence error (4)", "1764", changeSets.get( 3 ).getRevision() );
+        // Check Author
+        assertEquals( "Parsing error - Author (1)", "Deb", changeSets.get( 0 ).getAuthor() );
+        assertEquals( "Parsing error - Author (2)", "Deb", changeSets.get( 1 ).getAuthor() );
+        assertEquals( "Parsing error - Author (3)", "Deb", changeSets.get( 2 ).getAuthor() );
+        assertEquals( "Parsing error - Author (4)", "Deb", changeSets.get( 3 ).getAuthor() );
+        // Check Comments
+        assertEquals( "Parsing error - Comment (1)", "[maven-release-plugin] prepare for next development iteration", changeSets.get( 0 ).getComment() );
+        assertEquals( "Parsing error - Comment (2)", "[maven-release-plugin] prepare release GPDB-1.0.26",            changeSets.get( 1 ).getComment() );
+        assertEquals( "Parsing error - Comment (3)", "No comment",                                                    changeSets.get( 2 ).getComment() );
+        assertEquals( "Parsing error - Comment (4)", "No comment",                                                    changeSets.get( 3 ).getComment() );
+        // Check Dates
+        Calendar today = Calendar.getInstance();
+        assertEquals( "Parsing error - Date (1)", getDate( today.get( Calendar.YEAR ), today.get( Calendar.MONTH ), today.get( Calendar.DAY_OF_MONTH ), 18, 20, 0, null ), changeSets.get( 0 ).getDate() );
+        assertEquals( "Parsing error - Date (2)", getDate( today.get( Calendar.YEAR ), today.get( Calendar.MONTH ), today.get( Calendar.DAY_OF_MONTH ), 18, 18, 0, null ), changeSets.get( 1 ).getDate() );
+        assertEquals( "Parsing error - Date (3)", getDate( today.get( Calendar.YEAR ), today.get( Calendar.MONTH ), today.get( Calendar.DAY_OF_MONTH ), 18, 18, 0, null ), changeSets.get( 2 ).getDate() );
+        assertEquals( "Parsing error - Date (4)", getDate( 2012, 02, 01, 14, 34, 0, null ), changeSets.get( 3 ).getDate() );
+        // Check files
+        List<ChangeFile> files;
+        files = changeSets.get( 0 ).getFiles();
+        assertEquals( "Parsing error - Files (1)", 4, files.size() );
+        assertEquals( "Parsing error - Files (1) (1)", "\\GPDB\\GPDBEAR\\pom.xml", files.get( 0 ).getName() );
+        assertEquals( "Parsing error - Files (1) (2)", "\\GPDB\\GPDBResources\\pom.xml", files.get( 1 ).getName() );
+        assertEquals( "Parsing error - Files (1) (3)", "\\GPDB\\GPDBWeb\\pom.xml", files.get( 2 ).getName() );
+        assertEquals( "Parsing error - Files (1) (4)", "\\GPDB\\pom.xml", files.get( 3 ).getName() );
+        files = changeSets.get( 1 ).getFiles();
+        assertEquals( "Parsing error - Files (2)", 3, files.size() );
+        assertEquals( "Parsing error - Files (2) (1)", "\\GPDB\\GPDBEAR\\pom.xml", files.get( 0 ).getName() );
+        assertEquals( "Parsing error - Files (2) (2)", "\\GPDB\\GPDBResources\\pom.xml", files.get( 1 ).getName() );
+        assertEquals( "Parsing error - Files (2) (3)", "\\GPDB\\GPDBWeb\\pom.xml", files.get( 2 ).getName() );
+        files = changeSets.get( 2 ).getFiles();
+        assertEquals( "Parsing error - Files (3)", 1, files.size() );
+        assertEquals( "Parsing error - Files (3) (1)", "\\GPDB\\pom.xml", files.get( 0 ).getName() );
+        files = changeSets.get( 3 ).getFiles();
+        assertEquals( "Parsing error - Files (4)", 1, files.size() );
+        assertEquals( "Parsing error - Files (4) (1)", "\\GPDB\\pom.xml", files.get( 0 ).getName() );
+        // Check file actions = ScmFileStatus
+        files = changeSets.get( 0 ).getFiles();
+        assertEquals( "Parsing error - File Status (1) (1)", ScmFileStatus.MODIFIED, files.get( 0 ).getAction() );
+        assertEquals( "Parsing error - File Status (1) (2)", ScmFileStatus.MODIFIED, files.get( 1 ).getAction() );
+        assertEquals( "Parsing error - File Status (1) (3)", ScmFileStatus.MODIFIED, files.get( 2 ).getAction() );
+        assertEquals( "Parsing error - File Status (1) (4)", ScmFileStatus.MODIFIED, files.get( 3 ).getAction() );
+        files = changeSets.get( 1 ).getFiles();
+        assertEquals( "Parsing error - File Status (2) (1)", ScmFileStatus.MODIFIED, files.get( 0 ).getAction() );
+        assertEquals( "Parsing error - File Status (2) (2)", ScmFileStatus.MODIFIED, files.get( 1 ).getAction() );
+        assertEquals( "Parsing error - File Status (2) (3)", ScmFileStatus.MODIFIED, files.get( 2 ).getAction() );
+        files = changeSets.get( 2 ).getFiles();
+        assertEquals( "Parsing error - File Status (3) (1)", ScmFileStatus.MODIFIED, files.get( 0 ).getAction() );
+        files = changeSets.get( 3 ).getFiles();
+        assertEquals( "Parsing error - File Status (4) (1)", ScmFileStatus.MODIFIED, files.get( 0 ).getAction() );
+    }
+
+    public void testStripDelimiters()
+        throws Exception
+    {
+        assertEquals("stripDelimiters() is broken! (1)", "Plain Text", listChangesetConsumer.stripDelimiters( "Plain Text" ));
+        assertEquals("stripDelimiters() is broken! (2)", "Plain Text", listChangesetConsumer.stripDelimiters( "\"Plain Text" ));
+        assertEquals("stripDelimiters() is broken! (3)", "Plain Text", listChangesetConsumer.stripDelimiters( "Plain Text\"" ));
+        assertEquals("stripDelimiters() is broken! (4)", "Plain Text", listChangesetConsumer.stripDelimiters( "\"Plain Text\"" ));
+        assertEquals("stripDelimiters() is broken! (5)", "Plain Text", listChangesetConsumer.stripDelimiters( "<Plain Text" ));
+        assertEquals("stripDelimiters() is broken! (6)", "Plain Text", listChangesetConsumer.stripDelimiters( "Plain Text>" ));
+        assertEquals("stripDelimiters() is broken! (7)", "Plain Text", listChangesetConsumer.stripDelimiters( "<Plain Text>" ));
+    }
+    
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/changelog/JazzChangeLogCommandTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/changelog/JazzChangeLogCommandTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTckTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTckTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTckTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTckTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,93 @@
+package org.apache.maven.scm.provider.jazz.command.checkin;
+
+import java.io.File;
+
+import org.apache.maven.scm.provider.jazz.command.JazzTckUtil;
+import org.apache.maven.scm.tck.command.checkin.CheckInCommandTckTest;
+
+/*
+ * 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.
+ */
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzCheckInCommandTckTest
+    extends CheckInCommandTckTest
+{
+    // Easy access to our Tck Test Helper class.
+    private JazzTckUtil jazzTckUtil = new JazzTckUtil();
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTckTestCase#initRepo()
+     */
+    @Override
+    public void initRepo()
+        throws Exception
+    {
+        // Needed when there is more than one test case (in the parent).
+        // Needed for a new system time for uniqueness.
+        jazzTckUtil.generateNewSystemTime();
+        // Create a unique repository workspace for this test.
+        jazzTckUtil.initRepo( getScmRepository() );
+    }
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTckTestCase#removeRepo()
+     */
+    @Override
+    public void removeRepo()
+        throws Exception
+    {
+        super.removeRepo();
+        jazzTckUtil.removeRepo();
+    }
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTckTestCase#getScmUrl()
+     */
+    @Override
+    public String getScmUrl()
+        throws Exception
+    {
+        return jazzTckUtil.getScmUrl();
+    }
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTestCase#getWorkingCopy()
+     */
+    @Override
+    protected File getWorkingCopy()
+    {
+        return jazzTckUtil.getWorkingCopy();
+    }
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTestCase#getAssertionCopy()
+     */
+    @Override
+    protected File getAssertionCopy()
+    {
+        return jazzTckUtil.getAssertionCopy();
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTckTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTckTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,107 @@
+package org.apache.maven.scm.provider.jazz.command.checkin;
+
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.log.DefaultLog;
+import org.apache.maven.scm.provider.jazz.JazzScmTestCase;
+import org.apache.maven.scm.provider.jazz.repository.JazzScmProviderRepository;
+import org.codehaus.plexus.util.cli.Commandline;
+
+/*
+ * 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.
+ */
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzCheckInCommandTest
+    extends JazzScmTestCase
+{
+    private JazzScmProviderRepository repo;
+
+    private JazzCheckInConsumer checkinConsumer;
+
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+
+        repo = getScmProviderRepository();
+        
+        checkinConsumer = new JazzCheckInConsumer( repo, new DefaultLog() );
+    }
+
+    public void testCreateCreateChangesetCommand()
+        throws Exception
+    {
+        JazzScmProviderRepository repo = getScmProviderRepository();
+        Commandline cmd = new JazzCheckInCommand().createCreateChangesetCommand( repo, getScmFileSet(), "This is my comment." ).getCommandline();
+        String expected = "scm create changeset --username myUserName --password myPassword \"This is my comment.\"";
+        assertCommandLine( expected, getWorkingDirectory(), cmd );
+    }
+    
+    public void testCreateCheckInCommandCheckingInSpecificFiles()
+        throws Exception
+    {
+        JazzScmProviderRepository repo = getScmProviderRepository();
+        Commandline cmd = new JazzCheckInCommand().createCheckInCommand( repo, getScmFileSet() ).getCommandline();
+        String expected = "scm checkin --username myUserName --password myPassword " + getFiles();
+        assertCommandLine( expected, getWorkingDirectory(), cmd );
+    }
+
+    public void testCreateCheckInCommandCheckingInLocalChanges()
+        throws Exception
+    {
+        JazzScmProviderRepository repo = getScmProviderRepository();
+        Commandline cmd = new JazzCheckInCommand().createCheckInCommand( repo, new ScmFileSet( getWorkingDirectory() ) ).getCommandline();
+        String expected = "scm checkin --username myUserName --password myPassword .";
+        assertCommandLine( expected, getWorkingDirectory(), cmd );
+    }
+    
+    public void testCheckInConsumerWithFiles()
+        throws Exception
+    {
+        checkinConsumer.consumeLine( "Committing..." );
+        checkinConsumer.consumeLine( "Workspace: (1903) \"MavenSCMTestWorkspace_1332908068770\" <-> (1903) \"MavenSCMTestWorkspace_1332908068770\"" );
+        checkinConsumer.consumeLine( "  Component: (1768) \"MavenSCMTestComponent\"" );
+        checkinConsumer.consumeLine( "    Outgoing:" );
+        checkinConsumer.consumeLine( "      Change sets:" );
+        checkinConsumer.consumeLine( "        (1907)  *--@  \"Commit message\"" );
+        checkinConsumer.consumeLine( "          Changes:" );
+        checkinConsumer.consumeLine( "            --a-- \\src\\main\\java\\Me.java" );
+        checkinConsumer.consumeLine( "            --a-- \\src\\main\\java\\Me1.java" );
+        checkinConsumer.consumeLine( "            --a-- \\src\\main\\java\\Me2.java" );
+        
+        assertEquals( "Wrong number of files parsed!", 3, checkinConsumer.getFiles().size() );
+        assertEquals( "Parsing error for file1!", "src\\main\\java\\Me.java", checkinConsumer.getFiles().get( 0 ).getPath() );
+        assertEquals( "Parsing error for file2!", "src\\main\\java\\Me1.java", checkinConsumer.getFiles().get( 1 ).getPath() );
+        assertEquals( "Parsing error for file3!", "src\\main\\java\\Me2.java", checkinConsumer.getFiles().get( 2 ).getPath() );
+    }
+
+    public void testCheckInConsumerWithOutFiles()
+        throws Exception
+    {
+        checkinConsumer.consumeLine( "Committing..." );
+        checkinConsumer.consumeLine( "Workspace: (1004) \"Release Repository Workspace\" <-> (1005) \"Maven Release Plugin Stream\"" );
+        checkinConsumer.consumeLine( "  Component: (1006) \"Release Component\"" );
+        checkinConsumer.consumeLine( "    Outgoing:" );
+        checkinConsumer.consumeLine( "      Change sets:" );
+        checkinConsumer.consumeLine( "        (1008) --@ <No comment>" );
+    
+        assertEquals( "Wrong number of files parsed!", 0, checkinConsumer.getFiles().size() );
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkout/JazzCheckOutCommandTckTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkout/JazzCheckOutCommandTckTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkout/JazzCheckOutCommandTckTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkout/JazzCheckOutCommandTckTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,80 @@
+package org.apache.maven.scm.provider.jazz.command.checkout;
+
+import java.io.File;
+
+import org.apache.maven.scm.provider.jazz.command.JazzTckUtil;
+import org.apache.maven.scm.tck.command.checkout.CheckOutCommandTckTest;
+
+/*
+ * 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.
+ */
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzCheckOutCommandTckTest
+    extends CheckOutCommandTckTest
+{
+    // Easy access to our Tck Test Helper class.
+    private JazzTckUtil jazzTckUtil = new JazzTckUtil();
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTckTestCase#initRepo()
+     */
+    @Override
+    public void initRepo()
+        throws Exception
+    {
+        // Create a unique repository workspace for this test.
+        jazzTckUtil.initRepo( getScmRepository() );
+    }
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTckTestCase#removeRepo()
+     */
+    @Override
+    public void removeRepo()
+        throws Exception
+    {
+        super.removeRepo();
+        jazzTckUtil.removeRepo();
+    }
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTckTestCase#getScmUrl()
+     */
+    @Override
+    public String getScmUrl()
+        throws Exception
+    {
+        return jazzTckUtil.getScmUrl();
+    }
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTestCase#getWorkingCopy()
+     */
+    @Override
+    protected File getWorkingCopy()
+    {
+        return jazzTckUtil.getWorkingCopy();
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkout/JazzCheckOutCommandTckTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkout/JazzCheckOutCommandTckTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkout/JazzCheckOutCommandTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkout/JazzCheckOutCommandTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkout/JazzCheckOutCommandTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkout/JazzCheckOutCommandTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,86 @@
+package org.apache.maven.scm.provider.jazz.command.checkout;
+
+/*
+ * 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.
+ */
+
+import java.util.List;
+
+import org.apache.maven.scm.ScmFile;
+import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.ScmRevision;
+import org.apache.maven.scm.log.DefaultLog;
+import org.apache.maven.scm.provider.jazz.JazzScmTestCase;
+import org.apache.maven.scm.provider.jazz.repository.JazzScmProviderRepository;
+import org.codehaus.plexus.util.cli.Commandline;
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzCheckOutCommandTest
+    extends JazzScmTestCase
+{
+    private JazzScmProviderRepository repo;
+
+    private JazzCheckOutConsumer checkOutConsumer;
+
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+        repo = getScmProviderRepository();
+        checkOutConsumer = new JazzCheckOutConsumer( getScmProviderRepository(), new DefaultLog() );
+    }
+
+    public void testCreateJazzLoadCommand()
+        throws Exception
+    {
+        ScmRevision rev = new ScmRevision( "revision" );
+        // TODO figure out what Jazz SCM does in terms of branch/tag/revision
+        // TODO figure out how/when to load specific files
+        Commandline cmd = new JazzCheckOutCommand().createJazzLoadCommand( repo, getScmFileSet(), rev ).getCommandline();
+        String expected = "scm load --force --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword --dir "
+                + getScmFileSet().getBasedir().getAbsolutePath() + " \"Dave's Repository Workspace\"";
+        assertCommandLine( expected, getWorkingDirectory(), cmd );
+    }
+
+    public void testConsumer()
+    {
+        checkOutConsumer.consumeLine( "Downloading /maven-checkout-test/src/main/java/org/apache/maven/scm/provider/jazz/EmptyFile.txt  (0 B)" );
+        checkOutConsumer.consumeLine( "Downloading /maven-checkout-test/src/main/java/org/apache/maven/scm/provider/jazz/folder with spaces/test.java  (123 KB)" );
+        checkOutConsumer.consumeLine( "Downloading /maven-checkout-test/src/main/java/org/apache/maven/scm/provider/jazz/file with spaces.java  (12.34 KB)" );
+        checkOutConsumer.consumeLine( "Downloading /maven-checkout-test/src/main/java/org/apache/maven/scm/provider/jazz/folder with spaces/file with spaces.txt  (12.3 B)" );
+        checkOutConsumer.consumeLine( "" );
+
+        List<ScmFile> checkedOutFiles = checkOutConsumer.getCheckedOutFiles();
+        assertNotNull( checkedOutFiles );
+        assertEquals( 4, checkedOutFiles.size() );
+        assertTrue( checkedOutFiles.contains( new ScmFile(
+                                                           "/maven-checkout-test/src/main/java/org/apache/maven/scm/provider/jazz/EmptyFile.txt",
+                                                           ScmFileStatus.CHECKED_OUT ) ) );
+        assertTrue( checkedOutFiles.contains( new ScmFile(
+                                                           "/maven-checkout-test/src/main/java/org/apache/maven/scm/provider/jazz/folder with spaces/test.java",
+                                                           ScmFileStatus.CHECKED_OUT ) ) );
+        assertTrue( checkedOutFiles.contains( new ScmFile(
+                                                           "/maven-checkout-test/src/main/java/org/apache/maven/scm/provider/jazz/file with spaces.java",
+                                                           ScmFileStatus.CHECKED_OUT ) ) );
+        assertTrue( checkedOutFiles.contains( new ScmFile(
+                                                           "/maven-checkout-test/src/main/java/org/apache/maven/scm/provider/jazz/folder with spaces/file with spaces.txt",
+                                                           ScmFileStatus.CHECKED_OUT ) ) );
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkout/JazzCheckOutCommandTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkout/JazzCheckOutCommandTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/consumer/DebugLoggerConsumerTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/consumer/DebugLoggerConsumerTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/consumer/DebugLoggerConsumerTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/consumer/DebugLoggerConsumerTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,49 @@
+package org.apache.maven.scm.provider.jazz.command.consumer;
+
+import junit.framework.TestCase;
+
+import org.apache.maven.scm.log.DefaultLog;
+
+/*
+ * 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.
+ */
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class DebugLoggerConsumerTest
+     extends TestCase
+{
+    private DebugLoggerConsumer debugConsumer;
+    
+    public void setUp()
+        throws Exception
+    {
+        debugConsumer = new DebugLoggerConsumer(new DefaultLog());
+    }
+
+    public void testErrorConsumer()
+    {
+        assertFalse( debugConsumer.isFed() );
+        debugConsumer.consumeLine( "Some line to consume" );
+        assertTrue( debugConsumer.isFed() );
+        debugConsumer.consumeLine( "Another line to consume" );
+        String ls = System.getProperty( "line.separator" );
+        assertEquals("Contents were different!", "Some line to consume" + ls + "Another line to consume" + ls, debugConsumer.getOutput());
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/consumer/DebugLoggerConsumerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/consumer/DebugLoggerConsumerTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/consumer/ErrorConsumerTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/consumer/ErrorConsumerTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/consumer/ErrorConsumerTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/consumer/ErrorConsumerTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,46 @@
+package org.apache.maven.scm.provider.jazz.command.consumer;
+
+import junit.framework.TestCase;
+
+import org.apache.maven.scm.log.DefaultLog;
+
+/*
+ * 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.
+ */
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class ErrorConsumerTest
+     extends TestCase
+{
+    private ErrorConsumer errConsumer;
+    
+    public void setUp()
+        throws Exception
+    {
+        errConsumer = new ErrorConsumer( new DefaultLog() );
+    }
+
+    public void testErrorConsumer()
+    {
+        assertFalse( errConsumer.hasBeenFed() );
+        errConsumer.consumeLine( "Some line to consume" );
+        assertTrue( errConsumer.hasBeenFed() );
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/consumer/ErrorConsumerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/consumer/ErrorConsumerTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/diff/JazzDiffCommandTckTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/diff/JazzDiffCommandTckTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/diff/JazzDiffCommandTckTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/diff/JazzDiffCommandTckTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,80 @@
+package org.apache.maven.scm.provider.jazz.command.diff;
+
+import java.io.File;
+
+import org.apache.maven.scm.provider.jazz.command.JazzTckUtil;
+import org.apache.maven.scm.tck.command.diff.DiffCommandTckTest;
+
+/*
+ * 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.
+ */
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzDiffCommandTckTest
+    extends DiffCommandTckTest
+{
+    // Easy access to our Tck Test Helper class.
+    private JazzTckUtil jazzTckUtil = new JazzTckUtil();
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTckTestCase#initRepo()
+     */
+    @Override
+    public void initRepo()
+        throws Exception
+    {
+        // Create a unique repository workspace for this test.
+        jazzTckUtil.initRepo( getScmRepository() );
+    }
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTckTestCase#removeRepo()
+     */
+    @Override
+    public void removeRepo()
+        throws Exception
+    {
+        super.removeRepo();
+        jazzTckUtil.removeRepo();
+    }
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTckTestCase#getScmUrl()
+     */
+    @Override
+    public String getScmUrl()
+        throws Exception
+    {
+        return jazzTckUtil.getScmUrl();
+    }
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTestCase#getWorkingCopy()
+     */
+    @Override
+    protected File getWorkingCopy()
+    {
+        return jazzTckUtil.getWorkingCopy();
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/diff/JazzDiffCommandTckTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/diff/JazzDiffCommandTckTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/diff/JazzDiffCommandTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/diff/JazzDiffCommandTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/diff/JazzDiffCommandTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/diff/JazzDiffCommandTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,48 @@
+package org.apache.maven.scm.provider.jazz.command.diff;
+
+/*
+ * 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.
+ */
+
+import org.apache.maven.scm.provider.jazz.JazzScmTestCase;
+import org.apache.maven.scm.provider.jazz.repository.JazzScmProviderRepository;
+import org.codehaus.plexus.util.cli.Commandline;
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzDiffCommandTest
+    extends JazzScmTestCase
+{
+    private JazzScmProviderRepository repo;
+    
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+        repo = getScmProviderRepository();
+    }
+
+    public void testCreateDiffCommand()
+        throws Exception
+    {
+        Commandline cmd = new JazzDiffCommand().createDiffCommand( repo, getScmFileSet(), "src/main/resources/AFile.txt" ).getCommandline();
+        String expected = "scm diff --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword file src/main/resources/AFile.txt";
+        assertCommandLine( expected, getWorkingDirectory(), cmd );
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/diff/JazzDiffCommandTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/diff/JazzDiffCommandTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/edit/JazzEditCommandTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/edit/JazzEditCommandTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/edit/JazzEditCommandTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/edit/JazzEditCommandTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,60 @@
+package org.apache.maven.scm.provider.jazz.command.edit;
+
+/*
+ * 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.
+ */
+
+import java.io.File;
+
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.provider.jazz.JazzScmTestCase;
+import org.apache.maven.scm.provider.jazz.repository.JazzScmProviderRepository;
+import org.codehaus.plexus.util.cli.Commandline;
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzEditCommandTest
+    extends JazzScmTestCase
+{
+    private JazzScmProviderRepository repo;
+    
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+        repo = getScmProviderRepository();
+    }
+
+    public void testCreateEditCommandWithSpecificFiles()
+        throws Exception
+    {
+        Commandline cmd = new JazzEditCommand().createEditCommand( repo, getScmFileSet() ).getCommandline();
+        String expected = "scm lock acquire --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword file1 file2";
+        assertCommandLine( expected, getWorkingDirectory(), cmd );
+    }
+
+    public void testCreateEditCommandWithEmptyFileSet()
+        throws Exception
+    {
+        // An empty file set will be all files, which jazz will take as a "."
+        Commandline cmd = new JazzEditCommand().createEditCommand( repo, new ScmFileSet( new File(".") ) ).getCommandline();
+        String expected = "scm lock acquire --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword .";
+        assertCommandLine( expected, getWorkingDirectory(), cmd );
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/edit/JazzEditCommandTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/edit/JazzEditCommandTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommandTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommandTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommandTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommandTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,117 @@
+package org.apache.maven.scm.provider.jazz.command.list;
+
+/*
+ * 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.
+ */
+
+import java.util.List;
+
+import org.apache.maven.scm.ScmFile;
+import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.log.DefaultLog;
+import org.apache.maven.scm.provider.jazz.JazzScmTestCase;
+import org.apache.maven.scm.provider.jazz.repository.JazzScmProviderRepository;
+import org.codehaus.plexus.util.cli.Commandline;
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzListCommandTest
+    extends JazzScmTestCase
+{
+    private JazzListConsumer listConsumer;
+
+    private JazzScmProviderRepository repo;
+
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+        repo = getScmProviderRepository();
+
+        listConsumer = new JazzListConsumer( getScmProviderRepository(), new DefaultLog() );
+        
+        // Simulate the output of the parsing of the "scm status" command.
+        // IE, fill in the workspace and component details
+        // Needed for the remote workspace and component name for the list remotefiles
+        repo.setWorkspace( "Dave's Repository Workspace" );
+        repo.setComponent( "Dave's Component" );
+    }
+
+    public void testCreateListCommand()
+        throws Exception
+    {
+        Commandline cmd = new JazzListCommand().createListCommand( repo, getScmFileSet(), true, null ).getCommandline();
+        String expected = "scm list remotefiles --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword \"Dave's Repository Workspace\" \"Dave's Component\"";
+        assertCommandLine( expected, getWorkingDirectory(), cmd );
+    }
+
+    public void testConsumer()
+    {
+        listConsumer.consumeLine( "/" );
+        listConsumer.consumeLine( "/BogusTestJazz/" );
+        listConsumer.consumeLine( "/BogusTestJazz/.jazzignore" );
+        listConsumer.consumeLine( "/BogusTestJazz/pom.xml" );
+        listConsumer.consumeLine( "/BogusTestJazz/Readme.txt" );
+        listConsumer.consumeLine( "/BogusTestJazz/src/" );
+        listConsumer.consumeLine( "/BogusTestJazz/src/main/" );
+        listConsumer.consumeLine( "/BogusTestJazz/src/main/resources/" );
+        listConsumer.consumeLine( "/BogusTestJazz/src/main/resources/AFile.txt" );
+        listConsumer.consumeLine( "/BogusTestJazz/src/main/java/" );
+        listConsumer.consumeLine( "/BogusTestJazz/src/main/java/BogusTest.java" );    
+
+        // Test the ScmFile and ScmFileStatus bits.
+        List<ScmFile> changedFiles = listConsumer.getFiles();
+        assertNotNull( changedFiles );
+        assertEquals( 11, changedFiles.size() );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                        "/",
+                                                        ScmFileStatus.CHECKED_IN ) ) );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                       "/BogusTestJazz/",
+                                                       ScmFileStatus.CHECKED_IN ) ) );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                       "/BogusTestJazz/.jazzignore",
+                                                       ScmFileStatus.CHECKED_IN ) ) );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                       "/BogusTestJazz/pom.xml",
+                                                       ScmFileStatus.CHECKED_IN ) ) );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                       "/BogusTestJazz/Readme.txt",
+                                                       ScmFileStatus.CHECKED_IN ) ) );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                       "/BogusTestJazz/src/",
+                                                       ScmFileStatus.CHECKED_IN ) ) );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                       "/BogusTestJazz/src/main/",
+                                                       ScmFileStatus.CHECKED_IN ) ) );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                       "/BogusTestJazz/src/main/resources/",
+                                                       ScmFileStatus.CHECKED_IN ) ) );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                       "/BogusTestJazz/src/main/resources/AFile.txt",
+                                                       ScmFileStatus.CHECKED_IN ) ) );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                       "/BogusTestJazz/src/main/java/",
+                                                       ScmFileStatus.CHECKED_IN ) ) );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                       "/BogusTestJazz/src/main/java/BogusTest.java",
+                                                       ScmFileStatus.CHECKED_IN ) ) );
+    }
+
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommandTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommandTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTckTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTckTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTckTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTckTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,90 @@
+package org.apache.maven.scm.provider.jazz.command.status;
+
+import java.io.File;
+
+import org.apache.maven.scm.provider.jazz.command.JazzTckUtil;
+import org.apache.maven.scm.tck.command.status.StatusCommandTckTest;
+
+/*
+ * 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.
+ */
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzStatusCommandTckTest
+    extends StatusCommandTckTest
+{
+    // Easy access to our Tck Test Helper class.
+    private JazzTckUtil jazzTckUtil = new JazzTckUtil();
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTckTestCase#initRepo()
+     */
+    @Override
+    public void initRepo()
+        throws Exception
+    {
+        // Create a unique repository workspace for this test.
+        jazzTckUtil.initRepo( getScmRepository() );
+    }
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTckTestCase#removeRepo()
+     */
+    @Override
+    public void removeRepo()
+        throws Exception
+    {
+        super.removeRepo();
+        jazzTckUtil.removeRepo();
+    }
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTckTestCase#getScmUrl()
+     */
+    @Override
+    public String getScmUrl()
+        throws Exception
+    {
+        return jazzTckUtil.getScmUrl();
+    }
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTestCase#getWorkingCopy()
+     */
+    @Override
+    protected File getWorkingCopy()
+    {
+        return jazzTckUtil.getWorkingCopy();
+    }
+
+    /**
+     * {@inheritDoc}
+     * @see org.apache.maven.scm.ScmTestCase#getUpdatingCopy()
+     */
+    @Override
+    protected File getUpdatingCopy()
+    {
+        return jazzTckUtil.getUpdatingCopy();
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTckTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTckTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTest.java?rev=1329106&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTest.java Mon Apr 23 07:45:33 2012
@@ -0,0 +1,165 @@
+package org.apache.maven.scm.provider.jazz.command.status;
+
+/*
+ * 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.
+ */
+
+import java.util.List;
+
+import org.apache.maven.scm.ScmFile;
+import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.log.DefaultLog;
+import org.apache.maven.scm.provider.jazz.JazzScmTestCase;
+import org.apache.maven.scm.provider.jazz.repository.JazzScmProviderRepository;
+import org.codehaus.plexus.util.cli.Commandline;
+
+/**
+ * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a>
+ */
+public class JazzStatusCommandTest
+    extends JazzScmTestCase
+{
+    private JazzScmProviderRepository repo;
+    
+    private JazzStatusConsumer statusConsumer;
+
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+        repo = getScmProviderRepository();
+        statusConsumer = new JazzStatusConsumer( repo, new DefaultLog() );
+    }
+
+    public void testCreateStatusCommand()
+        throws Exception
+    {
+        Commandline cmd = new JazzStatusCommand().createStatusCommand( repo, getScmFileSet() ).getCommandline();
+        String expected = "scm status --username myUserName --password myPassword --wide";
+        assertCommandLine( expected, getWorkingDirectory(), cmd );
+    }
+
+    public void testConsumer()
+    {
+        statusConsumer.consumeLine( "Workspace: (1000) \"Dave's Repository Workspace\" <-> (1001) \"SCM Plugin Stream\"" );
+        statusConsumer.consumeLine( "  Component: (1002) \"SCM Plugins\"" );
+        statusConsumer.consumeLine( "    Baseline: (1003) 1 \"Initial Baseline\"" );
+        statusConsumer.consumeLine( "    Unresolved:" );
+        statusConsumer.consumeLine( "      d- /status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/JazzScmProvider.java" );
+        statusConsumer.consumeLine( "      a- /status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/JazzScmProviderRenamed.java" );
+        statusConsumer.consumeLine( "      d- /status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/DeletedFile.java" );
+        statusConsumer.consumeLine( "      a- /status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/AddedFile.java" );
+        statusConsumer.consumeLine( "      -c /status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/ModifiedFile.java" );
+        statusConsumer.consumeLine( "    Outgoing:" );
+        statusConsumer.consumeLine( "      Change sets:" );
+        statusConsumer.consumeLine( "        (1008) --@ <No comment>" );
+        statusConsumer.consumeLine( "" );
+
+        // Test the additional collected data, Workspace, Component, Baseline.
+        assertEquals( "Workspace is incorrect!", "Dave's Repository Workspace", repo.getWorkspace() );
+        assertEquals( "Workspace Alias is incorrect!", 1000, repo.getWorkspaceAlias() );
+        assertEquals( "Flow Target is incorrect!", "SCM Plugin Stream", repo.getFlowTarget() );
+        assertEquals( "Flow Target Alias is incorrect!", 1001, repo.getFlowTargetAlias() );
+        assertEquals( "Component is incorrect!", "SCM Plugins", repo.getComponent() );
+        assertEquals( "Baseline is incorrect!", "Initial Baseline", repo.getBaseline() );
+        
+        // Test the stream parsing and isPushChanges bits.
+        assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() );
+
+        // Test the ScmFile and ScmFileStatus bits.
+        List<ScmFile> changedFiles = statusConsumer.getChangedFiles();
+        assertNotNull( changedFiles );
+        assertEquals( 5, changedFiles.size() );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                        "/status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/JazzScmProvider.java",
+                                                        ScmFileStatus.DELETED ) ) );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                        "/status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/JazzScmProviderRenamed.java",
+                                                        ScmFileStatus.ADDED ) ) );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                        "/status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/DeletedFile.java",
+                                                        ScmFileStatus.DELETED ) ) );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                        "/status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/AddedFile.java",
+                                                        ScmFileStatus.ADDED ) ) );
+        assertTrue( changedFiles.contains( new ScmFile(
+                                                        "/status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/ModifiedFile.java",
+                                                        ScmFileStatus.MODIFIED ) ) );
+    }
+    
+    public void testConsumerWithStream()
+    {
+        statusConsumer.consumeLine( "Workspace: (1156) \"GPDBWorkspace\" <-> (1157) \"GPDBStream\"");
+        statusConsumer.consumeLine( "  Component: (1158) \"GPDB\" <-> (1157) \"GPDBStream\"");
+        statusConsumer.consumeLine( "    Baseline: (1159) 1 \"Initial Baseline\"");        
+
+        // Test the additional collected data, Workspace, Component, Baseline.
+        assertEquals( "Workspace is incorrect!", "GPDBWorkspace", repo.getWorkspace() );
+        assertEquals( "Workspace Alias is incorrect!", 1156, repo.getWorkspaceAlias() );
+        assertEquals( "Flow Target is incorrect!", "GPDBStream", repo.getFlowTarget() );
+        assertEquals( "Flow Target Alias is incorrect!", 1157, repo.getFlowTargetAlias() );
+        assertEquals( "Component is incorrect!", "GPDB", repo.getComponent() );
+        assertEquals( "Baseline is incorrect!", "Initial Baseline", repo.getBaseline() );
+
+        // Test the stream parsing and isPushChanges bits.
+        assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() );
+        repo.setPushChanges( false );
+        assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() );
+        repo.setPushChanges( true );
+        assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() );
+    }
+
+    public void testConsumerWithOutStream()
+    {
+        statusConsumer.consumeLine( "Workspace: (1156) \"GPDBWorkspace\" <-> (1156) \"GPDBWorkspace\"");
+        statusConsumer.consumeLine( "  Component: (1158) \"GPDB\"");
+        statusConsumer.consumeLine( "    Baseline: (1159) 1 \"Initial Baseline\"");        
+
+        // Test the additional collected data, Workspace, Component, Baseline.
+        assertEquals( "Workspace is incorrect!", "GPDBWorkspace", repo.getWorkspace() );
+        assertEquals( "Workspace Alias is incorrect!", 1156, repo.getWorkspaceAlias() );
+        assertEquals( "Flow Target is incorrect!", "GPDBWorkspace", repo.getFlowTarget() );
+        assertEquals( "Flow Target Alias is incorrect!", 1156, repo.getFlowTargetAlias() );
+        assertEquals( "Component is incorrect!", "GPDB", repo.getComponent() );
+        assertEquals( "Baseline is incorrect!", "Initial Baseline", repo.getBaseline() );
+
+        // Test the stream parsing and isPushChanges bits.
+        assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() );
+        repo.setPushChanges( false );
+        assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() );
+        repo.setPushChanges( true );
+        assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() );
+    }
+    
+    public void testConsumerWithAdditionalInfo()
+    {
+        statusConsumer.consumeLine( "Workspace: (1000) \"MavenStream Workspace\" <-> (1005) \"MavenStream Workspace\"");
+        statusConsumer.consumeLine( "  Component: (1002) \"FireDragon\" <-> (1005) \"MavenR3Stream Workspace\" (outgoing addition)");
+        statusConsumer.consumeLine( "    Baseline: (1003) 1 \"Initial Baseline\"");
+        statusConsumer.consumeLine( "    Unresolved:");
+        statusConsumer.consumeLine( "      a-- /FireDragon/.project");
+
+        // Test the additional collected data, Workspace, Component, Baseline.
+        assertEquals( "Workspace is incorrect!", "MavenStream Workspace", repo.getWorkspace() );
+        assertEquals( "Workspace Alias is incorrect!", 1000, repo.getWorkspaceAlias() );
+        assertEquals( "Flow Target is incorrect!", "MavenStream Workspace", repo.getFlowTarget() );
+        assertEquals( "Flow Target Alias is incorrect!", 1005, repo.getFlowTargetAlias() );
+        assertEquals( "Component is incorrect!", "FireDragon", repo.getComponent() );
+        assertEquals( "Baseline is incorrect!", "Initial Baseline", repo.getBaseline() );
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision