1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  package org.apache.maven.scm.tck.command.checkout;
20  
21  import java.util.Iterator;
22  import java.util.List;
23  import java.util.Optional;
24  import java.util.SortedSet;
25  import java.util.TreeSet;
26  
27  import org.apache.maven.scm.ScmFile;
28  import org.apache.maven.scm.ScmTckTestCase;
29  import org.apache.maven.scm.command.checkout.CheckOutScmResult;
30  import org.apache.maven.scm.provider.ScmProvider;
31  import org.apache.maven.scm.repository.ScmRepository;
32  import org.apache.maven.scm.repository.UnknownRepositoryStructure;
33  import org.junit.Test;
34  
35  import static org.junit.Assert.assertTrue;
36  import static org.junit.Assert.fail;
37  import static org.junit.Assume.assumeTrue;
38  
39  
40  
41  
42  
43  
44  public abstract class CheckOutCommandTckTest extends ScmTckTestCase {
45      @Test
46      public void testCheckOutCommandTest() throws Exception {
47          deleteDirectory(getWorkingCopy());
48  
49          CheckOutScmResult result = checkOut(getWorkingCopy(), getScmRepository());
50  
51          assertResultIsSuccess(result);
52  
53          List<ScmFile> checkedOutFiles = result.getCheckedOutFiles();
54  
55          if (checkedOutFiles.size() != 4) {
56              SortedSet<ScmFile> files = new TreeSet<>(checkedOutFiles);
57  
58              int i = 0;
59  
60              for (Iterator<ScmFile> it = files.iterator(); it.hasNext(); i++) {
61                  ScmFile scmFile = it.next();
62  
63                  System.out.println(i + ": " + scmFile);
64              }
65  
66              fail("Expected 4 files in the updated files list, was " + checkedOutFiles.size());
67          }
68      }
69  
70      @Test
71      public void testMakeProviderScmRepositoryFromCheckoutDirectory() throws Exception {
72          assumeTrue(isMakeProviderScmRepositoryFromDirectorySupportedByProvider());
73          CheckOutScmResult result = checkOut(getWorkingCopy(), getScmRepository());
74          assertResultIsSuccess(result);
75          Optional<ScmRepository> repository = getScmManager().makeProviderScmRepository(getWorkingCopy());
76          assertTrue("Could not detect SCM repository for working copy at " + getWorkingCopy(), repository.isPresent());
77      }
78  
79      private boolean isMakeProviderScmRepositoryFromDirectorySupportedByProvider() throws Exception {
80          ScmProvider provider = getScmManager().getProviderByUrl(getScmUrl());
81          try {
82              provider.makeProviderScmRepository(getWorkingCopy());
83          } catch (UnknownRepositoryStructure e) {
84              
85              return false;
86          }
87          return true;
88      }
89  }