001package org.apache.maven.scm.provider.jazz.command.status; 002 003/* 004 * Licensed to the Apache Software Foundation (ASF) under one 005 * or more contributor license agreements. See the NOTICE file 006 * distributed with this work for additional information 007 * regarding copyright ownership. The ASF licenses this file 008 * to you under the Apache License, Version 2.0 (the 009 * "License"); you may not use this file except in compliance 010 * with the License. You may obtain a copy of the License at 011 * 012 * http://www.apache.org/licenses/LICENSE-2.0 013 * 014 * Unless required by applicable law or agreed to in writing, 015 * software distributed under the License is distributed on an 016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 017 * KIND, either express or implied. See the License for the 018 * specific language governing permissions and limitations 019 * under the License. 020 */ 021 022import org.apache.maven.scm.ScmFile; 023import org.apache.maven.scm.ScmFileStatus; 024import org.apache.maven.scm.log.DefaultLog; 025import org.apache.maven.scm.provider.jazz.JazzScmTestCase; 026import org.apache.maven.scm.provider.jazz.repository.JazzScmProviderRepository; 027import org.codehaus.plexus.util.cli.Commandline; 028 029import java.util.List; 030 031/** 032 * @author <a href="mailto:ChrisGWarp@gmail.com">Chris Graham</a> 033 */ 034public class JazzStatusCommandTest 035 extends JazzScmTestCase 036{ 037 private JazzScmProviderRepository repo; 038 039 private JazzStatusConsumer statusConsumer; 040 041 protected void setUp() 042 throws Exception 043 { 044 super.setUp(); 045 repo = getScmProviderRepository(); 046 statusConsumer = new JazzStatusConsumer( repo, new DefaultLog() ); 047 } 048 049 public void testCreateStatusCommand() 050 throws Exception 051 { 052 Commandline cmd = new JazzStatusCommand().createStatusCommand( repo, getScmFileSet() ).getCommandline(); 053 String expected = "scm status --username myUserName --password myPassword --wide"; 054 assertCommandLine( expected, getWorkingDirectory(), cmd ); 055 } 056 057 public void testConsumer() 058 { 059 statusConsumer.consumeLine( 060 "Workspace: (1000) \"Dave's Repository Workspace\" <-> (1001) \"SCM Plugin Stream\"" ); 061 statusConsumer.consumeLine( " Component: (1002) \"SCM Plugins\"" ); 062 statusConsumer.consumeLine( " Baseline: (1003) 1 \"Initial Baseline\"" ); 063 statusConsumer.consumeLine( " Unresolved:" ); 064 statusConsumer.consumeLine( 065 " d- /status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/JazzScmProvider.java" ); 066 statusConsumer.consumeLine( 067 " a- /status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/JazzScmProviderRenamed.java" ); 068 statusConsumer.consumeLine( 069 " d- /status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/DeletedFile.java" ); 070 statusConsumer.consumeLine( 071 " a- /status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/AddedFile.java" ); 072 statusConsumer.consumeLine( 073 " -c /status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/ModifiedFile.java" ); 074 statusConsumer.consumeLine( " Outgoing:" ); 075 statusConsumer.consumeLine( " Change sets:" ); 076 statusConsumer.consumeLine( " (1008) --@ <No comment>" ); 077 statusConsumer.consumeLine( "" ); 078 079 // Test the additional collected data, Workspace, Component, Baseline. 080 assertEquals( "Workspace is incorrect!", "Dave's Repository Workspace", repo.getWorkspace() ); 081 assertEquals( "Workspace Alias is incorrect!", 1000, repo.getWorkspaceAlias() ); 082 assertEquals( "Flow Target is incorrect!", "SCM Plugin Stream", repo.getFlowTarget() ); 083 assertEquals( "Flow Target Alias is incorrect!", 1001, repo.getFlowTargetAlias() ); 084 assertEquals( "Component is incorrect!", "SCM Plugins", repo.getComponent() ); 085 assertEquals( "Baseline is incorrect!", "Initial Baseline", repo.getBaseline() ); 086 assertNotNull( repo.getOutgoingChangeSetAliases() ); 087 assertEquals( "Change Set Alias length is incorrect!", 1, repo.getOutgoingChangeSetAliases().size() ); 088 assertEquals( "Change Set Alias is incorrect!", new Integer(1008), repo.getOutgoingChangeSetAliases().get(0)); 089 090 // Test the stream parsing and isPushChanges bits. 091 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 092 093 // Test the ScmFile and ScmFileStatus bits. 094 List<ScmFile> changedFiles = statusConsumer.getChangedFiles(); 095 assertNotNull( changedFiles ); 096 assertEquals( 5, changedFiles.size() ); 097 assertTrue( changedFiles.contains( 098 new ScmFile( "/status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/JazzScmProvider.java", 099 ScmFileStatus.DELETED ) ) ); 100 assertTrue( changedFiles.contains( new ScmFile( 101 "/status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/JazzScmProviderRenamed.java", 102 ScmFileStatus.ADDED ) ) ); 103 assertTrue( changedFiles.contains( 104 new ScmFile( "/status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/DeletedFile.java", 105 ScmFileStatus.DELETED ) ) ); 106 assertTrue( changedFiles.contains( 107 new ScmFile( "/status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/AddedFile.java", 108 ScmFileStatus.ADDED ) ) ); 109 assertTrue( changedFiles.contains( 110 new ScmFile( "/status-test-project/src/main/java/org/apache/maven/scm/provider/jazz/ModifiedFile.java", 111 ScmFileStatus.MODIFIED ) ) ); 112 } 113 114 public void testConsumerWithStream() 115 { 116 statusConsumer.consumeLine( "Workspace: (1156) \"GPDBWorkspace\" <-> (1157) \"GPDBStream\"" ); 117 statusConsumer.consumeLine( " Component: (1158) \"GPDB\" <-> (1157) \"GPDBStream\"" ); 118 statusConsumer.consumeLine( " Baseline: (1159) 1 \"Initial Baseline\"" ); 119 120 // Test the additional collected data, Workspace, Component, Baseline. 121 assertEquals( "Workspace is incorrect!", "GPDBWorkspace", repo.getWorkspace() ); 122 assertEquals( "Workspace Alias is incorrect!", 1156, repo.getWorkspaceAlias() ); 123 assertEquals( "Flow Target is incorrect!", "GPDBStream", repo.getFlowTarget() ); 124 assertEquals( "Flow Target Alias is incorrect!", 1157, repo.getFlowTargetAlias() ); 125 assertEquals( "Component is incorrect!", "GPDB", repo.getComponent() ); 126 assertEquals( "Baseline is incorrect!", "Initial Baseline", repo.getBaseline() ); 127 128 // Test the stream parsing and isPushChanges bits. 129 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 130 repo.setPushChanges( false ); 131 assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 132 repo.setPushChanges( true ); 133 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 134 } 135 136 public void testConsumerWithOutStream() 137 { 138 statusConsumer.consumeLine( "Workspace: (1156) \"GPDBWorkspace\" <-> (1156) \"GPDBWorkspace\"" ); 139 statusConsumer.consumeLine( " Component: (1158) \"GPDB\"" ); 140 statusConsumer.consumeLine( " Baseline: (1159) 1 \"Initial Baseline\"" ); 141 142 // Test the additional collected data, Workspace, Component, Baseline. 143 assertEquals( "Workspace is incorrect!", "GPDBWorkspace", repo.getWorkspace() ); 144 assertEquals( "Workspace Alias is incorrect!", 1156, repo.getWorkspaceAlias() ); 145 assertEquals( "Flow Target is incorrect!", "GPDBWorkspace", repo.getFlowTarget() ); 146 assertEquals( "Flow Target Alias is incorrect!", 1156, repo.getFlowTargetAlias() ); 147 assertEquals( "Component is incorrect!", "GPDB", repo.getComponent() ); 148 assertEquals( "Baseline is incorrect!", "Initial Baseline", repo.getBaseline() ); 149 150 // Test the stream parsing and isPushChanges bits. 151 assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 152 repo.setPushChanges( false ); 153 assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 154 repo.setPushChanges( true ); 155 assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 156 } 157 158 public void testConsumerWithAdditionalInfo() 159 { 160 statusConsumer.consumeLine( 161 "Workspace: (1000) \"MavenStream Workspace\" <-> (1005) \"MavenStream Workspace\"" ); 162 statusConsumer.consumeLine( 163 " Component: (1002) \"FireDragon\" <-> (1005) \"MavenR3Stream Workspace\" (outgoing addition)" ); 164 statusConsumer.consumeLine( " Baseline: (1003) 1 \"Initial Baseline\"" ); 165 statusConsumer.consumeLine( " Unresolved:" ); 166 statusConsumer.consumeLine( " a-- /FireDragon/.project" ); 167 168 // Test the additional collected data, Workspace, Component, Baseline. 169 assertEquals( "Workspace is incorrect!", "MavenStream Workspace", repo.getWorkspace() ); 170 assertEquals( "Workspace Alias is incorrect!", 1000, repo.getWorkspaceAlias() ); 171 assertEquals( "Flow Target is incorrect!", "MavenStream Workspace", repo.getFlowTarget() ); 172 assertEquals( "Flow Target Alias is incorrect!", 1005, repo.getFlowTargetAlias() ); 173 assertEquals( "Component is incorrect!", "FireDragon", repo.getComponent() ); 174 assertEquals( "Baseline is incorrect!", "Initial Baseline", repo.getBaseline() ); 175 } 176 177 public void testConsumerWithMultipleChangeSets() 178 { 179 statusConsumer.consumeLine( "Workspace: (1000) \"GPDBWorkspace\" <-> (1001) \"GPDBStream\"" ); 180 statusConsumer.consumeLine( " Component: (1002) \"GPDB\"" ); 181 statusConsumer.consumeLine( " Baseline: (1003) 49 \"GPDB-MAN-1.0.50\"" ); 182 statusConsumer.consumeLine( " Unresolved:" ); 183 statusConsumer.consumeLine( " a-- /GPDB/GPDBEAR/pom.xml.releaseBackup" ); 184 statusConsumer.consumeLine( " a-- /GPDB/GPDBResources/pom.xml.releaseBackup" ); 185 statusConsumer.consumeLine( " a-- /GPDB/GPDBWeb/pom.xml.releaseBackup" ); 186 statusConsumer.consumeLine( " a-- /GPDB/pom.xml.releaseBackup" ); 187 statusConsumer.consumeLine( " Outgoing:" ); 188 statusConsumer.consumeLine( " Change sets:" ); 189 statusConsumer.consumeLine( " (1012) *--@ \"Release the next release of GPDB.\" - " 190 + "\"[maven-release-plugin] rollback the release of GPDB-1.0.51\" 02-May-2015 09:38 PM" ); 191 statusConsumer.consumeLine( " (1011) ---@ \"Release the next release of GPDB.\" - " 192 + "\"[maven-release-plugin] rollback the release of GPDB-1.0.51\" 02-May-2015 09:33 PM" ); 193 statusConsumer.consumeLine( " (1010) ---@ \"Release the next release of GPDB.\" - " 194 + "\"[maven-release-plugin] prepare release GPDB-1.0.51\" 02-May-2015 09:28 PM" ); 195 statusConsumer.consumeLine( " (1009) ---@ \"Release the next release of GPDB.\" - " 196 + "\"[maven-release-plugin] rollback the release of GPDB-1.0.51\" 02-May-2015 08:05 PM" ); 197 statusConsumer.consumeLine( " (1008) ---@ \"Release the next release of GPDB.\" - " 198 + "\"[maven-release-plugin] prepare release GPDB-1.0.51\" 02-May-2015 08:00 PM" ); 199 statusConsumer.consumeLine( " (1007) ---@ \"[maven-release-plugin] rollback the " 200 + "release of GPDB-1.0.51\" 02-May-2015 07:54 PM" ); 201 statusConsumer.consumeLine( " (1006) ---@ \"[maven-release-plugin] prepare " 202 + "release GPDB-1.0.51\" 02-May-2015 09:33 PM" ); 203 204 // Test the additional collected data, Workspace, Component, Baseline. 205 assertEquals( "Workspace is incorrect!", "GPDBWorkspace", repo.getWorkspace() ); 206 assertEquals( "Workspace Alias is incorrect!", 1000, repo.getWorkspaceAlias() ); 207 assertEquals( "Flow Target is incorrect!", "GPDBStream", repo.getFlowTarget() ); 208 assertEquals( "Flow Target Alias is incorrect!", 1001, repo.getFlowTargetAlias() ); 209 assertEquals( "Component is incorrect!", "GPDB", repo.getComponent() ); 210 assertEquals( "Baseline is incorrect!", "GPDB-MAN-1.0.50", repo.getBaseline() ); 211 212 // Test the stream parsing and isPushChanges bits. 213 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 214 repo.setPushChanges( false ); 215 assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 216 repo.setPushChanges( true ); 217 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 218 219 220 assertNotNull( repo.getOutgoingChangeSetAliases() ); 221 assertEquals( "Change Set Alias length is incorrect!", 7, repo.getOutgoingChangeSetAliases().size() ); 222 assertEquals( "Change Set Alias [0] is incorrect!", new Integer(1012), repo.getOutgoingChangeSetAliases().get(0)); 223 assertEquals( "Change Set Alias [1] is incorrect!", new Integer(1011), repo.getOutgoingChangeSetAliases().get(1)); 224 assertEquals( "Change Set Alias [2] is incorrect!", new Integer(1010), repo.getOutgoingChangeSetAliases().get(2)); 225 assertEquals( "Change Set Alias [3] is incorrect!", new Integer(1009), repo.getOutgoingChangeSetAliases().get(3)); 226 assertEquals( "Change Set Alias [4] is incorrect!", new Integer(1008), repo.getOutgoingChangeSetAliases().get(4)); 227 assertEquals( "Change Set Alias [5] is incorrect!", new Integer(1007), repo.getOutgoingChangeSetAliases().get(5)); 228 assertEquals( "Change Set Alias [6] is incorrect!", new Integer(1006), repo.getOutgoingChangeSetAliases().get(6)); 229 } 230 231 public void testConsumerWithMultipleChangeSetsAndWorkItems() 232 { 233 statusConsumer.consumeLine( "Workspace: (1000) \"GPDBWorkspace\" <-> (1001) \"GPDBStream\"" ); 234 statusConsumer.consumeLine( " Component: (1002) \"GPDB\"" ); 235 statusConsumer.consumeLine( " Baseline: (1003) 49 \"GPDB-MAN-1.0.50\"" ); 236 statusConsumer.consumeLine( " Unresolved:" ); 237 statusConsumer.consumeLine( " a-- /GPDB/GPDBEAR/pom.xml.releaseBackup" ); 238 statusConsumer.consumeLine( " a-- /GPDB/GPDBResources/pom.xml.releaseBackup" ); 239 statusConsumer.consumeLine( " a-- /GPDB/GPDBWeb/pom.xml.releaseBackup" ); 240 statusConsumer.consumeLine( " a-- /GPDB/pom.xml.releaseBackup" ); 241 statusConsumer.consumeLine( " Outgoing:" ); 242 statusConsumer.consumeLine( " Change sets:" ); 243 statusConsumer.consumeLine( " (1012) *--@ 62 \"Release the next release of GPDB.\" - " 244 + "\"[maven-release-plugin] rollback the release of GPDB-1.0.51\" 02-May-2015 09:38 PM" ); 245 statusConsumer.consumeLine( " (1011) ---@ 62 \"Release the next release of GPDB.\" - " 246 + "\"[maven-release-plugin] rollback the release of GPDB-1.0.51\" 02-May-2015 09:33 PM" ); 247 statusConsumer.consumeLine( " (1010) ---@ 62 \"Release the next release of GPDB.\" - " 248 + "\"[maven-release-plugin] prepare release GPDB-1.0.51\" 02-May-2015 09:28 PM" ); 249 statusConsumer.consumeLine( " (1009) ---@ 62 \"Release the next release of GPDB.\" - " 250 + "\"[maven-release-plugin] rollback the release of GPDB-1.0.51\" 02-May-2015 08:05 PM" ); 251 statusConsumer.consumeLine( " (1008) ---@ 62 \"Release the next release of GPDB.\" - " 252 + "\"[maven-release-plugin] prepare release GPDB-1.0.51\" 02-May-2015 08:00 PM" ); 253 statusConsumer.consumeLine( " (1007) ---@ \"[maven-release-plugin] rollback the " 254 + "release of GPDB-1.0.51\" 02-May-2015 07:54 PM" ); 255 statusConsumer.consumeLine( " (1006) ---@ \"[maven-release-plugin] prepare " 256 + "release GPDB-1.0.51\" 02-May-2015 09:33 PM" ); 257 258 // Test the additional collected data, Workspace, Component, Baseline. 259 assertEquals( "Workspace is incorrect!", "GPDBWorkspace", repo.getWorkspace() ); 260 assertEquals( "Workspace Alias is incorrect!", 1000, repo.getWorkspaceAlias() ); 261 assertEquals( "Flow Target is incorrect!", "GPDBStream", repo.getFlowTarget() ); 262 assertEquals( "Flow Target Alias is incorrect!", 1001, repo.getFlowTargetAlias() ); 263 assertEquals( "Component is incorrect!", "GPDB", repo.getComponent() ); 264 assertEquals( "Baseline is incorrect!", "GPDB-MAN-1.0.50", repo.getBaseline() ); 265 266 // Test the stream parsing and isPushChanges bits. 267 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 268 repo.setPushChanges( false ); 269 assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 270 repo.setPushChanges( true ); 271 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 272 273 assertNotNull( repo.getOutgoingChangeSetAliases() ); 274 assertEquals( "Change Set Alias length is incorrect!", 7, repo.getOutgoingChangeSetAliases().size() ); 275 assertEquals( "Change Set Alias [0] is incorrect!", new Integer(1012), repo.getOutgoingChangeSetAliases().get(0)); 276 assertEquals( "Change Set Alias [1] is incorrect!", new Integer(1011), repo.getOutgoingChangeSetAliases().get(1)); 277 assertEquals( "Change Set Alias [2] is incorrect!", new Integer(1010), repo.getOutgoingChangeSetAliases().get(2)); 278 assertEquals( "Change Set Alias [3] is incorrect!", new Integer(1009), repo.getOutgoingChangeSetAliases().get(3)); 279 assertEquals( "Change Set Alias [4] is incorrect!", new Integer(1008), repo.getOutgoingChangeSetAliases().get(4)); 280 assertEquals( "Change Set Alias [5] is incorrect!", new Integer(1007), repo.getOutgoingChangeSetAliases().get(5)); 281 assertEquals( "Change Set Alias [6] is incorrect!", new Integer(1006), repo.getOutgoingChangeSetAliases().get(6)); 282 } 283 284 public void testConsumerUnresolvedIncomingOutgoing() 285 { 286 statusConsumer.consumeLine( "Workspace: (1756) \"Scott's GPDBWorkspace\" <-> (1157) \"GPDBStream\"" ); 287 statusConsumer.consumeLine( " Component: (1158) \"GPDB\"" ); 288 statusConsumer.consumeLine( " Baseline: (1718) 25 \"GPDB-1.0.25\"" ); 289 statusConsumer.consumeLine( " Unresolved:" ); 290 statusConsumer.consumeLine( " -c- /GPDB/pom.xml" ); 291 statusConsumer.consumeLine( " Outgoing:" ); 292 statusConsumer.consumeLine( " Change sets:" ); 293 statusConsumer.consumeLine( " (2389) *--@ \"<No comment>\" 23-May-2015 07:09 PM" ); 294 statusConsumer.consumeLine( " Incoming:" ); 295 statusConsumer.consumeLine( " Change sets:" ); 296 statusConsumer.consumeLine( " (2385) ---$ Deb 62 \"Release the next release of GPDB.\"" 297 + " - \"[maven-release-plugin] prepare for next development itera...\" 02-May-2015 11:01 PM" ); 298 statusConsumer.consumeLine( " Baselines:" ); 299 statusConsumer.consumeLine( " (2386) 52 \"GPDB-1.0.53\"" ); 300 statusConsumer.consumeLine( " (2387) 51 \"GPDB-1.0.52\"" ); 301 statusConsumer.consumeLine( " (2388) 50 \"GPDB-1.0.51\"" ); 302 statusConsumer.consumeLine( " (2369) 49 \"GPDB-MAN-1.0.50\"" ); 303 statusConsumer.consumeLine( " (2362) 48 \"GPDB-1.0.50\"" ); 304 statusConsumer.consumeLine( " (2357) 47 \"GPDB-1.0.49\"" ); 305 statusConsumer.consumeLine( " (2352) 46 \"GPDB-1.0.48\"" ); 306 statusConsumer.consumeLine( " (2347) 45 \"GPDB-1.0.47\"" ); 307 statusConsumer.consumeLine( " (2292) 44 \"GPDB-1.0.46\"" ); 308 statusConsumer.consumeLine( " (2285) 42 \"GPDB-1.0.42\"" ); 309 statusConsumer.consumeLine( " (2276) 41 \"GPDB-1.0.41\"" ); 310 statusConsumer.consumeLine( " (2259) 40 \"GPDB-1.0.40\"" ); 311 statusConsumer.consumeLine( " (2250) 39 \"GPDB-1.0.39\"" ); 312 statusConsumer.consumeLine( " (2241) 38 \"GPDB-1.0.38\"" ); 313 statusConsumer.consumeLine( " (2232) 37 \"GPDB-1.0.37\"" ); 314 statusConsumer.consumeLine( " (2222) 36 \"GPDB-1.0.36\"" ); 315 statusConsumer.consumeLine( " (2212) 35 \"GPDB-1.0.35\"" ); 316 statusConsumer.consumeLine( " (2202) 34 \"GPDB-1.0.34\"" ); 317 statusConsumer.consumeLine( " (2191) 33 \"GPDB-1.0.33\"" ); 318 statusConsumer.consumeLine( " (2181) 32 \"GPDB-1.0.32\"" ); 319 statusConsumer.consumeLine( " (2171) 31 \"GPDB-1.0.31\"" ); 320 statusConsumer.consumeLine( " (2160) 30 \"GPDB-1.0.30\"" ); 321 statusConsumer.consumeLine( " (2147) 29 \"GPDB-1.0.29\"" ); 322 statusConsumer.consumeLine( " (2079) 28 \"GPDB-1.0.28\"" ); 323 statusConsumer.consumeLine( " (1851) 27 \"GPDB-1.0.27\"" ); 324 statusConsumer.consumeLine( " (1807) 26 \"GPDB-1.0.26\"" ); 325 326 // Test the additional collected data, Workspace, Component, Baseline. 327 assertEquals( "Workspace is incorrect!", "Scott's GPDBWorkspace", repo.getWorkspace() ); 328 assertEquals( "Workspace Alias is incorrect!", 1756, repo.getWorkspaceAlias() ); 329 assertEquals( "Flow Target is incorrect!", "GPDBStream", repo.getFlowTarget() ); 330 assertEquals( "Flow Target Alias is incorrect!", 1157, repo.getFlowTargetAlias() ); 331 assertEquals( "Component is incorrect!", "GPDB", repo.getComponent() ); 332 assertEquals( "Baseline is incorrect!", "GPDB-1.0.25", repo.getBaseline() ); 333 334 // Test the stream parsing and isPushChanges bits. 335 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 336 repo.setPushChanges( false ); 337 assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 338 repo.setPushChanges( true ); 339 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 340 341 assertNotNull( repo.getOutgoingChangeSetAliases() ); 342 assertEquals( "Change Set Alias length is incorrect!", 1, repo.getOutgoingChangeSetAliases().size() ); 343 assertEquals( "Change Set Alias [0] is incorrect!", new Integer(2389), repo.getOutgoingChangeSetAliases().get(0)); 344 345 assertNotNull( repo.getIncomingChangeSetAliases() ); 346 assertEquals( "Change Set Alias length is incorrect!", 1, repo.getIncomingChangeSetAliases().size() ); 347 assertEquals( "Change Set Alias [0] is incorrect!", new Integer(2385), repo.getIncomingChangeSetAliases().get(0)); 348 } 349 350 public void testCollision() 351 { 352 statusConsumer.consumeLine( "Workspace: (8551) \"myNewWorkspace\" <-> (8552) \"stream19_test_max_results_1256765247692134\"" ); 353 statusConsumer.consumeLine( " Component: (8553) \"Flux Capacitor\"" ); 354 statusConsumer.consumeLine( " Baseline: (8554) 1 \"Initial Baseline\"" ); 355 statusConsumer.consumeLine( " Outgoing:" ); 356 statusConsumer.consumeLine( " Change sets:" ); 357 statusConsumer.consumeLine( " (8617) -#@ \"Update from November planning meeting\"" ); 358 statusConsumer.consumeLine( " Changes:" ); 359 statusConsumer.consumeLine( " -#-c /flux.capacitor/requirements.txt" ); 360 statusConsumer.consumeLine( " Incoming:" ); 361 statusConsumer.consumeLine( " Change sets:" ); 362 statusConsumer.consumeLine( " (8616) -#$ \"Results of initial trials\"" ); 363 statusConsumer.consumeLine( " Changes:" ); 364 statusConsumer.consumeLine( " -#-c /flux.capacitor/requirements.txt" ); 365 366 // Test the additional collected data, Workspace, Component, Baseline. 367 assertEquals( "Workspace is incorrect!", "myNewWorkspace", repo.getWorkspace() ); 368 assertEquals( "Workspace Alias is incorrect!", 8551, repo.getWorkspaceAlias() ); 369 assertEquals( "Flow Target is incorrect!", "stream19_test_max_results_1256765247692134", repo.getFlowTarget() ); 370 assertEquals( "Flow Target Alias is incorrect!", 8552, repo.getFlowTargetAlias() ); 371 assertEquals( "Component is incorrect!", "Flux Capacitor", repo.getComponent() ); 372 assertEquals( "Baseline is incorrect!", "Initial Baseline", repo.getBaseline() ); 373 374 // Test the stream parsing and isPushChanges bits. 375 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 376 repo.setPushChanges( false ); 377 assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 378 repo.setPushChanges( true ); 379 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 380 381 assertNotNull( repo.getOutgoingChangeSetAliases() ); 382 assertEquals( "Change Set Alias length is incorrect!", 1, repo.getOutgoingChangeSetAliases().size() ); 383 assertEquals( "Change Set Alias [0] is incorrect!", new Integer(8617), repo.getOutgoingChangeSetAliases().get(0)); 384 385 assertNotNull( repo.getIncomingChangeSetAliases() ); 386 assertEquals( "Change Set Alias length is incorrect!", 1, repo.getIncomingChangeSetAliases().size() ); 387 assertEquals( "Change Set Alias [0] is incorrect!", new Integer(8616), repo.getIncomingChangeSetAliases().get(0)); 388 389// // Test the ScmFile and ScmFileStatus bits. (Needs a bit of work here) 390// List<ScmFile> changedFiles = statusConsumer.getChangedFiles(); 391// assertNotNull( changedFiles ); 392// assertEquals( 1, changedFiles.size() ); 393// assertTrue( changedFiles.contains( new ScmFile( "/flux.capacitor/requirements.txt", ScmFileStatus.CONFLICT ) ) ); 394 } 395 396 public void testIncoming() 397 { 398 statusConsumer.consumeLine( "Workspace: (1026) \"DEV-build-POC-Builder\" <-> (1011) \"DEV-build-Management-Release plugin POC\"" ); 399 statusConsumer.consumeLine( " Component: (1095) \"FW-Maven-ReleasePlugin-POC\"" ); 400 statusConsumer.consumeLine( " Baseline: (1103) 2 \"release_poc-build-0.0.3\"" ); 401 statusConsumer.consumeLine( " Incoming:" ); 402 statusConsumer.consumeLine( " Change sets:" ); 403 statusConsumer.consumeLine( " (1106) ---$ 28383 \"Detemine more efficient way to perform releases using mav...\" - \"Updated SCM settings\" 05-May-2015 10:26 AM" ); 404 405 // Test the additional collected data, Workspace, Component, Baseline. 406 assertEquals( "Workspace is incorrect!", "DEV-build-POC-Builder", repo.getWorkspace() ); 407 assertEquals( "Workspace Alias is incorrect!", 1026, repo.getWorkspaceAlias() ); 408 assertEquals( "Flow Target is incorrect!", "DEV-build-Management-Release plugin POC", repo.getFlowTarget() ); 409 assertEquals( "Flow Target Alias is incorrect!", 1011, repo.getFlowTargetAlias() ); 410 assertEquals( "Component is incorrect!", "FW-Maven-ReleasePlugin-POC", repo.getComponent() ); 411 assertEquals( "Baseline is incorrect!", "release_poc-build-0.0.3", repo.getBaseline() ); 412 413 // Test the stream parsing and isPushChanges bits. 414 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 415 repo.setPushChanges( false ); 416 assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 417 repo.setPushChanges( true ); 418 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 419 420 assertNotNull( repo.getIncomingChangeSetAliases() ); 421 assertEquals( "Change Set Alias length is incorrect!", 1, repo.getIncomingChangeSetAliases().size() ); 422 assertEquals( "Change Set Alias [0] is incorrect!", new Integer(1106), repo.getIncomingChangeSetAliases().get(0)); 423 } 424 425 public void testMultipleIncoming() 426 { 427 statusConsumer.consumeLine( "Workspace: (1000) \"Chris-Blah-Workspace\" <-> (1001) \"CHRIS_Blah_Stream\"" ); 428 statusConsumer.consumeLine( " Component: (1002) \"Data_Models\"" ); 429 statusConsumer.consumeLine( " Baseline: (1003) 465 \"CHRIS_BLAH_20150516_190700_1\"" ); 430 statusConsumer.consumeLine( " Unresolved:" ); 431 statusConsumer.consumeLine( " -c- /Data Model/.settings/org.eclipse.core.resources.prefs" ); 432 statusConsumer.consumeLine( " Incoming:" ); 433 statusConsumer.consumeLine( " Change sets:" ); 434 statusConsumer.consumeLine( " (1004) ---$ chrisgwarp 1573 \"Manage Work Order Business Spec\" - \"PROJ-1001 - Added Hist...\" 15-May-2015 12:53 PM" ); 435 statusConsumer.consumeLine( " (1005) ---$ chrisgwarp 1573 \"Manage Work Order Business Spec\" - \"PROJ-1001 - Removed Error Code 020...\" 14-May-2015 05:59 PM" ); 436 437 // Test the additional collected data, Workspace, Component, Baseline. 438 assertEquals( "Workspace is incorrect!", "Chris-Blah-Workspace", repo.getWorkspace() ); 439 assertEquals( "Workspace Alias is incorrect!", 1000, repo.getWorkspaceAlias() ); 440 assertEquals( "Flow Target is incorrect!", "CHRIS_Blah_Stream", repo.getFlowTarget() ); 441 assertEquals( "Flow Target Alias is incorrect!", 1001, repo.getFlowTargetAlias() ); 442 assertEquals( "Component is incorrect!", "Data_Models", repo.getComponent() ); 443 assertEquals( "Baseline is incorrect!", "CHRIS_BLAH_20150516_190700_1", repo.getBaseline() ); 444 445 // Test the stream parsing and isPushChanges bits. 446 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 447 repo.setPushChanges( false ); 448 assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 449 repo.setPushChanges( true ); 450 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 451 452 assertNotNull( repo.getIncomingChangeSetAliases() ); 453 assertEquals( "Change Set Alias length is incorrect!", 2, repo.getIncomingChangeSetAliases().size() ); 454 assertEquals( "Change Set Alias [0] is incorrect!", new Integer(1004), repo.getIncomingChangeSetAliases().get(0)); 455 assertEquals( "Change Set Alias [1] is incorrect!", new Integer(1005), repo.getIncomingChangeSetAliases().get(1)); 456 } 457 458 public void testIncomingOutgoing() 459 { 460 statusConsumer.consumeLine( "Workspace: (8551) \"myNewWorkspace\" <-> (8552) \"stream19_test_max_results_1256765247692134\"" ); 461 statusConsumer.consumeLine( " Component: (8553) \"Flux Capacitor\"" ); 462 statusConsumer.consumeLine( " Baseline: (8554) 1 \"Initial Baseline\"" ); 463 statusConsumer.consumeLine( " Outgoing:" ); 464 statusConsumer.consumeLine( " Change sets:" ); 465 statusConsumer.consumeLine( " (8556) ---@" ); 466 statusConsumer.consumeLine( " Changes:" ); 467 statusConsumer.consumeLine( " ---c- /flux.capacitor/requirements.txt" ); 468 statusConsumer.consumeLine( " Incoming:" ); 469 statusConsumer.consumeLine( " Change sets:" ); 470 statusConsumer.consumeLine( " (8615) ---$ \"Initial layout\"" ); 471 statusConsumer.consumeLine( " Changes:" ); 472 statusConsumer.consumeLine( " ---c- /flux.capacitor/diagrams/design.cad" ); 473 474 // Test the additional collected data, Workspace, Component, Baseline. 475 assertEquals( "Workspace is incorrect!", "myNewWorkspace", repo.getWorkspace() ); 476 assertEquals( "Workspace Alias is incorrect!", 8551, repo.getWorkspaceAlias() ); 477 assertEquals( "Flow Target is incorrect!", "stream19_test_max_results_1256765247692134", repo.getFlowTarget() ); 478 assertEquals( "Flow Target Alias is incorrect!", 8552, repo.getFlowTargetAlias() ); 479 assertEquals( "Component is incorrect!", "Flux Capacitor", repo.getComponent() ); 480 assertEquals( "Baseline is incorrect!", "Initial Baseline", repo.getBaseline() ); 481 482 // Test the stream parsing and isPushChanges bits. 483 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 484 repo.setPushChanges( false ); 485 assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 486 repo.setPushChanges( true ); 487 assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() ); 488 489 assertNotNull( repo.getOutgoingChangeSetAliases() ); 490 assertEquals( "Change Set Alias length is incorrect!", 1, repo.getOutgoingChangeSetAliases().size() ); 491 assertEquals( "Change Set Alias [0] is incorrect!", new Integer(8556), repo.getOutgoingChangeSetAliases().get(0)); 492 493 assertNotNull( repo.getIncomingChangeSetAliases() ); 494 assertEquals( "Change Set Alias length is incorrect!", 1, repo.getIncomingChangeSetAliases().size() ); 495 assertEquals( "Change Set Alias [0] is incorrect!", new Integer(8615), repo.getIncomingChangeSetAliases().get(0)); 496 } 497 498 public void testServerUnreachable1() 499 { 500 statusConsumer.consumeLine( "Workspace: (1000) \"GPDBWorkspace\" (This workspace is unreachable.)" ); 501 statusConsumer.consumeLine( " Could not log in to https://rtc:9444/jazz/ as user Deb: CRJAZ2384E Cannot" ); 502 statusConsumer.consumeLine( " connect to the repository at URL \"https://rtc:9444/jazz\", see the nested" ); 503 statusConsumer.consumeLine( " exception for more details. For more details, open the help system and search" ); 504 statusConsumer.consumeLine( " for CRJAZ2384E." ); 505 506 } 507 508 public void testServerUnreachable2() 509 { 510 statusConsumer.consumeLine( "Workspace: (1000) \"Chris-Blah-Workspace\" (This workspace is unreachable.)" ); 511 statusConsumer.consumeLine( " Could not determine the URI required to connect to the repository. The UUID of" ); 512 statusConsumer.consumeLine( " the repository is _Bzjnksdkmfsaklmz-5uTdf. If you know the repository URI run" ); 513 statusConsumer.consumeLine( " 'login' command providing the repository URI. If not, please contact your" ); 514 statusConsumer.consumeLine( " administrator." ); 515 516 } 517 518 public void testServerUnreachable3() 519 { 520 statusConsumer.consumeLine( "Workspace: (----) \"Chris-Project-XXXXXX-Workspace\" (This workspace is unreachable.)" ); 521 statusConsumer.consumeLine( " Could not determine the URI required to connect to the repository. The UUID of" ); 522 statusConsumer.consumeLine( " the repository is _ZdjnafkjnEmkEW5-4HuDag. If you know the repository URI run" ); 523 statusConsumer.consumeLine( " 'login' command providing the repository URI. If not, please contact your" ); 524 statusConsumer.consumeLine( " administrator." ); 525 526 } 527}