protected void disconnectWagon(Wagon wagon) throws ConnectionException { wagon.removeTransferListener(mockTransferListener); wagon.removeTransferListener(checksumObserver); wagon.disconnect(); }
protected void connectWagon(Wagon wagon) throws ConnectionException, AuthenticationException { wagon.addTransferListener(checksumObserver); wagon.addTransferListener(mockTransferListener); wagon.connect(testRepository, getAuthInfo()); }
protected Wagon getWagon() throws Exception { Wagon wagon = (Wagon) lookup(Wagon.ROLE, getProtocol()); Debug debug = new Debug(); wagon.addSessionListener(debug); wagon.addTransferListener(debug); return wagon; }
/** * Test {@link Wagon#getFileList(String)}. * * @throws Exception * @since 1.0-beta-2 */ public void testWagonGetFileList() throws Exception { setupRepositories(); setupWagonTestingFixtures(); String dirName = "file-list"; String filenames[] = new String[] { "test-resource.txt", "test-resource.pom", "test-resource b.txt", "more-resources.dat", ".index.txt" }; for (String filename : filenames) { putFile(dirName + "/" + filename, dirName + "/" + filename, filename + "\n"); } Wagon wagon = getWagon(); wagon.connect(testRepository, getAuthInfo()); List<String> list = wagon.getFileList(dirName); assertNotNull("file list should not be null.", list); assertTrue( "file list should contain more items (actually contains '" + list + "').", list.size() >= filenames.length); for (String filename : filenames) { assertTrue("Filename '" + filename + "' should be in list.", list.contains(filename)); } // WAGON-250 list = wagon.getFileList(""); assertNotNull("file list should not be null.", list); assertTrue( "file list should contain items (actually contains '" + list + "').", !list.isEmpty()); assertTrue(list.contains("file-list/")); assertFalse(list.contains("file-list")); assertFalse(list.contains(".")); assertFalse(list.contains("..")); assertFalse(list.contains("./")); assertFalse(list.contains("../")); wagon.disconnect(); tearDownWagonTestingFixtures(); }
/** * Test for an invalid resource. * * @throws Exception * @since 1.0-beta-2 */ public void testWagonResourceNotExists() throws Exception { setupRepositories(); setupWagonTestingFixtures(); Wagon wagon = getWagon(); wagon.connect(testRepository, getAuthInfo()); assertFalse(wagon.resourceExists("a/bad/resource/name/that/should/not/exist.txt")); wagon.disconnect(); tearDownWagonTestingFixtures(); }
private void getIfNewer(long timestamp, boolean expectedResult, int expectedSize) throws Exception { Wagon wagon = getWagon(); ProgressAnswer progressAnswer = setupGetIfNewerTest(wagon, expectedResult, expectedSize); connectWagon(wagon); boolean result = wagon.getIfNewer(this.resource, destFile, timestamp); assertEquals(expectedResult, result); disconnectWagon(wagon); assertGetIfNewerTest(progressAnswer, expectedResult, expectedSize); tearDownWagonTestingFixtures(); }
/** * Test that when putting a directory that already exists new files get also copied * * @throws Exception * @since 1.0-beta-1 */ public void testWagonPutDirectoryWhenDirectoryAlreadyExists() throws Exception { final String dirName = "directory-copy-existing"; final String resourceToCreate = "test-resource-1.txt"; final String[] resources = { "a/test-resource-2.txt", "a/b/test-resource-3.txt", "c/test-resource-4.txt" }; setupRepositories(); setupWagonTestingFixtures(); Wagon wagon = getWagon(); if (wagon.supportsDirectoryCopy()) { sourceFile = new File(FileTestUtils.getTestOutputDir(), dirName); FileUtils.deleteDirectory(sourceFile); createDirectory(wagon, resourceToCreate, dirName); for (String resource : resources) { writeTestFile(resource); } wagon.connect(testRepository, getAuthInfo()); wagon.putDirectory(sourceFile, dirName); List<String> resourceNames = new ArrayList<String>(resources.length + 1); resourceNames.add(dirName + "/" + resourceToCreate); for (String resource : resources) { resourceNames.add(dirName + "/" + resource); } assertResourcesAreInRemoteSide(wagon, resourceNames); wagon.disconnect(); } tearDownWagonTestingFixtures(); }
protected void getFile(int expectedSize) throws Exception { destFile = FileTestUtils.createUniqueFile(getName(), getName()); destFile.deleteOnExit(); Wagon wagon = getWagon(); ProgressAnswer progressAnswer = replaceMockForGet(wagon, expectedSize); message("Getting test artifact from test repository " + testRepository); connectWagon(wagon); wagon.get(this.resource, destFile); disconnectWagon(wagon); verifyMock(progressAnswer, expectedSize); }
/** * Test for an existing resource. * * @throws Exception * @since 1.0-beta-2 */ public void testWagonResourceExists() throws Exception { setupRepositories(); setupWagonTestingFixtures(); Wagon wagon = getWagon(); putFile(); wagon.connect(testRepository, getAuthInfo()); assertTrue( sourceFile.getName() + " does not exist", wagon.resourceExists(sourceFile.getName())); wagon.disconnect(); tearDownWagonTestingFixtures(); }
protected void putFile(String resourceName, String testFileName, String content) throws Exception { sourceFile = new File(FileTestUtils.getTestOutputDir(), testFileName); sourceFile.getParentFile().mkdirs(); FileUtils.fileWrite(sourceFile.getAbsolutePath(), content); Wagon wagon = getWagon(); ProgressAnswer progressAnswer = replayMockForPut(resourceName, content, wagon); message("Putting test artifact: " + resourceName + " into test repository " + testRepository); connectWagon(wagon); wagon.put(sourceFile, resourceName); disconnectWagon(wagon); verifyMock(progressAnswer, content.length()); }
protected void assertResourcesAreInRemoteSide(Wagon wagon, List<String> resourceNames) throws IOException, TransferFailedException, ResourceDoesNotExistException, AuthorizationException { for (String resourceName : resourceNames) { File destFile = FileTestUtils.createUniqueFile(getName(), resourceName); destFile.deleteOnExit(); wagon.get(resourceName, destFile); } }
/** * Assert that a resource does not exist in the remote wagon system * * @param wagon wagon to get the resource from * @param resourceName name of the resource * @throws IOException if a temp file can't be created * @throws AuthorizationException * @throws TransferFailedException * @since 1.0-beta-1 */ protected void assertNotExists(Wagon wagon, String resourceName) throws IOException, TransferFailedException, AuthorizationException { File tmpFile = File.createTempFile("wagon", null); try { wagon.get(resourceName, tmpFile); fail("Resource exists: " + resourceName); } catch (ResourceDoesNotExistException e) { // ok } finally { tmpFile.delete(); } }
public void testFailedGetIfNewer() throws Exception { if (supportsGetIfNewer()) { setupRepositories(); setupWagonTestingFixtures(); message("Getting test artifact from test repository " + testRepository); Wagon wagon = getWagon(); wagon.addTransferListener(checksumObserver); wagon.connect(testRepository, getAuthInfo()); destFile = FileTestUtils.createUniqueFile(getName(), getName()); destFile.deleteOnExit(); try { wagon.getIfNewer("fubar.txt", destFile, 0); fail("File was found when it shouldn't have been"); } catch (ResourceDoesNotExistException e) { // expected assertTrue(true); } finally { wagon.removeTransferListener(checksumObserver); wagon.disconnect(); tearDownWagonTestingFixtures(); } } }
/** * Test {@link Wagon#getFileList(String)} when the directory does not exist. * * @throws Exception * @since 1.0-beta-2 */ public void testWagonGetFileListWhenDirectoryDoesNotExist() throws Exception { setupRepositories(); setupWagonTestingFixtures(); String dirName = "file-list-unexisting"; Wagon wagon = getWagon(); wagon.connect(testRepository, getAuthInfo()); try { wagon.getFileList(dirName); fail("getFileList on unexisting directory must throw ResourceDoesNotExistException"); } catch (ResourceDoesNotExistException e) { // expected } finally { wagon.disconnect(); tearDownWagonTestingFixtures(); } }
/** * Test for putting a directory with a destination that multiple directories deep, all of which * haven't been created. * * @throws Exception * @since 1.0-beta-2 */ public void testWagonPutDirectoryDeepDestination() throws Exception { setupRepositories(); setupWagonTestingFixtures(); Wagon wagon = getWagon(); if (wagon.supportsDirectoryCopy()) { sourceFile = new File(FileTestUtils.getTestOutputDir(), "deep0/deep1/deep2"); FileUtils.deleteDirectory(sourceFile); writeTestFile("test-resource-1.txt"); writeTestFile("a/test-resource-2.txt"); writeTestFile("a/b/test-resource-3.txt"); writeTestFile("c/test-resource-4.txt"); writeTestFile("d/e/f/test-resource-5.txt"); wagon.connect(testRepository, getAuthInfo()); wagon.putDirectory(sourceFile, "deep0/deep1/deep2"); destFile = FileTestUtils.createUniqueFile(getName(), getName()); destFile.deleteOnExit(); wagon.get("deep0/deep1/deep2/test-resource-1.txt", destFile); wagon.get("deep0/deep1/deep2/a/test-resource-2.txt", destFile); wagon.get("deep0/deep1/deep2/a/b/test-resource-3.txt", destFile); wagon.get("deep0/deep1/deep2/c/test-resource-4.txt", destFile); wagon.get("deep0/deep1/deep2/d/e/f/test-resource-5.txt", destFile); wagon.disconnect(); } tearDownWagonTestingFixtures(); }