public void runTestSecuredPutFromStream()

in wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java [1579:1638]


    public void runTestSecuredPutFromStream(AuthenticationInfo authInfo, int putNumber, boolean addSecurityHandler)
            throws Exception {
        String localRepositoryPath = FileTestUtils.getTestOutputDir().toString();
        Server server = new Server();

        TestSecurityHandler sh = createSecurityHandler();

        PutHandler putHandler = new PutHandler(new File(localRepositoryPath));

        if (addSecurityHandler) {
            sh.setHandler(putHandler);
            server.setHandler(sh);
        } else {
            server.setHandler(putHandler);
        }
        addConnector(server);
        server.start();

        StreamingWagon wagon = (StreamingWagon) getWagon();
        Repository testRepository = new Repository("id", getRepositoryUrl(server));
        if (addSecurityHandler) {
            wagon.connect(testRepository, authInfo);
        } else {
            wagon.connect(testRepository);
        }
        try {
            for (int i = 0; i < putNumber; i++) {
                File sourceFile = new File(localRepositoryPath, "test-secured-put-resource");
                sourceFile.delete();
                assertFalse(sourceFile.exists());

                File tempFile = File.createTempFile("wagon", "tmp");
                tempFile.deleteOnExit();
                String content = "put top secret";
                FileUtils.fileWrite(tempFile.getAbsolutePath(), content);

                try (FileInputStream fileInputStream = new FileInputStream(tempFile)) {
                    wagon.putFromStream(fileInputStream, "test-secured-put-resource", content.length(), -1);
                } finally {
                    tempFile.delete();
                }

                assertEquals(content, FileUtils.fileRead(sourceFile.getAbsolutePath()));
            }
        } finally {
            wagon.disconnect();
            server.stop();
        }
        assertEquals(putNumber, putHandler.putCallNumber);
        if (addSecurityHandler) {
            testPreemptiveAuthenticationPut(sh, supportPreemptiveAuthenticationPut());
        }

        // ensure we didn't use chunked transfer which doesn't work on ngnix
        for (DeployedResource deployedResource : putHandler.deployedResources) {
            if (StringUtils.equalsIgnoreCase("chunked", deployedResource.transferEncoding)) {
                fail("deployedResource use chunked: " + deployedResource);
            }
        }
    }