archiva-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From joak...@apache.org
Subject svn commit: r588460 - in /maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository: RepositoryServletProxiedPluginSnapshotPolicyTest.java RepositoryServletProxiedTimestampedSnapshotPolicyTest.java
Date Fri, 26 Oct 2007 00:59:49 GMT
Author: joakime
Date: Thu Oct 25 17:59:48 2007
New Revision: 588460

URL: http://svn.apache.org/viewvc?rev=588460&view=rev
Log:
[MRM-567] Unable to download plugin SNAPSHOT's from proxy.
Adding unit tests for Timestamped Snapshot GET from RepositoryServlet (with proxies).
Adding unit tests for Timestamped Plugin Snapshot GET from RepositoryServlet (with proxies).


Added:
    maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedPluginSnapshotPolicyTest.java
  (with props)
    maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java
  (with props)

Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedPluginSnapshotPolicyTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedPluginSnapshotPolicyTest.java?rev=588460&view=auto
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedPluginSnapshotPolicyTest.java
(added)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedPluginSnapshotPolicyTest.java
Thu Oct 25 17:59:48 2007
@@ -0,0 +1,195 @@
+package org.apache.maven.archiva.web.repository;
+
+/*
+ * 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 com.meterware.httpunit.GetMethodWebRequest;
+import com.meterware.httpunit.HttpUnitOptions;
+import com.meterware.httpunit.WebRequest;
+import com.meterware.httpunit.WebResponse;
+
+import org.apache.maven.archiva.policies.SnapshotsPolicy;
+
+import java.io.File;
+
+/**
+ * RepositoryServlet Tests, Proxied, Get of Timestamped Snapshot Artifacts, with varying
policy settings. 
+ *
+ * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class RepositoryServletProxiedPluginSnapshotPolicyTest
+    extends AbstractRepositoryServletProxiedTestCase
+{
+    public void testGetProxiedSnapshotsArtifactPolicyAlwaysManagedNewer()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.IGNORED,
+                                                     HAS_MANAGED_COPY, ( NEWER * OVER_ONE_DAY
) );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyAlwaysManagedOlder()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.IGNORED,
HAS_MANAGED_COPY,
+                                                     ( OLDER * OVER_ONE_DAY ) );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyAlwaysNoManagedContent()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.IGNORED,
NO_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyDailyFail()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.DAILY,
HAS_MANAGED_COPY,
+                                                     ( NEWER * ONE_MINUTE ) );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyDailyNoManagedContent()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.DAILY,
NO_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyDailyPass()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.DAILY,
HAS_MANAGED_COPY,
+                                                     ( OLDER * OVER_ONE_DAY ) );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyDisabledFail()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.DISABLED,
+                                                     HAS_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyDisabledNoManagedContentFail()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_NOT_FOUND, SnapshotsPolicy.DISABLED,
NO_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyDisabledPass()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.DISABLED,
+                                                     HAS_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyHourlyFail()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.HOURLY,
HAS_MANAGED_COPY,
+                                                     ( NEWER * ONE_MINUTE ) );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyHourlyNoManagedContent()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.HOURLY,
NO_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyHourlyPass()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.HOURLY,
HAS_MANAGED_COPY,
+                                                     ( OLDER * OVER_ONE_HOUR ) );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyOnceFail()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.ONCE,
HAS_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyOnceNoManagedContent()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ONCE,
NO_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyOncePass()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ONCE,
NO_MANAGED_COPY );
+    }
+
+    private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation, String snapshotsPolicy,
+                                                              boolean hasManagedCopy )
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( expectation, snapshotsPolicy, hasManagedCopy,
0 );
+    }
+
+    private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation, String snapshotsPolicy,
+                                                              boolean hasManagedCopy, long
deltaManagedToRemoteTimestamp )
+        throws Exception
+    {
+        // --- Setup
+        setupSnapshotsRemoteRepo();
+        setupCleanInternalRepo();
+
+        String resourcePath = "org/apache/archiva/archivatest-maven-plugin/4.0-alpha-1-SNAPSHOT/archivatest-maven-plugin-4.0-alpha-1-20070822.033400-42.jar";
+        String expectedRemoteContents = "archivatest-maven-plugin-4.0-alpha-1-20070822.033400-42|jar-remote-contents";
+        String expectedManagedContents = null;
+        File remoteFile = populateRepo( remoteSnapshots, resourcePath, expectedRemoteContents
);
+
+        if ( hasManagedCopy )
+        {
+            expectedManagedContents = "archivatest-maven-plugin-4.0-alpha-1-20070822.033400-42|jar-managed-contents";
+            File managedFile = populateRepo( repoRootInternal, resourcePath, expectedManagedContents
);
+            managedFile.setLastModified( remoteFile.lastModified() + deltaManagedToRemoteTimestamp
);
+        }
+
+        setupSnapshotConnector( REPOID_INTERNAL, remoteSnapshots, snapshotsPolicy );
+        saveConfiguration();
+
+        // --- Execution
+        // process the response code later, not via an exception.
+        HttpUnitOptions.setExceptionsThrownOnErrorStatus( false );
+
+        WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/"
+ resourcePath );
+        WebResponse response = sc.getResponse( request );
+
+        // --- Verification
+
+        switch ( expectation )
+        {
+            case EXPECT_MANAGED_CONTENTS:
+                assertResponseOK( response );
+                assertTrue( "Invalid Test Case: Can't expect managed contents with "
+                    + "test that doesn't have a managed copy in the first place.", hasManagedCopy
);
+                assertEquals( "Expected managed file contents", expectedManagedContents,
response.getText() );
+                break;
+            case EXPECT_REMOTE_CONTENTS:
+                assertResponseOK( response );
+                assertEquals( "Expected remote file contents", expectedRemoteContents, response.getText()
);
+                break;
+            case EXPECT_NOT_FOUND:
+                assertResponseNotFound( response );
+                assertManagedFileNotExists( repoRootInternal, resourcePath );
+                break;
+        }
+    }
+}

Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedPluginSnapshotPolicyTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedPluginSnapshotPolicyTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedPluginSnapshotPolicyTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java?rev=588460&view=auto
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java
(added)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java
Thu Oct 25 17:59:48 2007
@@ -0,0 +1,195 @@
+package org.apache.maven.archiva.web.repository;
+
+/*
+ * 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 com.meterware.httpunit.GetMethodWebRequest;
+import com.meterware.httpunit.HttpUnitOptions;
+import com.meterware.httpunit.WebRequest;
+import com.meterware.httpunit.WebResponse;
+
+import org.apache.maven.archiva.policies.SnapshotsPolicy;
+
+import java.io.File;
+
+/**
+ * RepositoryServlet Tests, Proxied, Get of Timestamped Snapshot Artifacts, with varying
policy settings. 
+ *
+ * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class RepositoryServletProxiedTimestampedSnapshotPolicyTest
+    extends AbstractRepositoryServletProxiedTestCase
+{
+    public void testGetProxiedSnapshotsArtifactPolicyAlwaysManagedNewer()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.IGNORED,
+                                                     HAS_MANAGED_COPY, ( NEWER * OVER_ONE_DAY
) );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyAlwaysManagedOlder()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.IGNORED,
HAS_MANAGED_COPY,
+                                                     ( OLDER * OVER_ONE_DAY ) );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyAlwaysNoManagedContent()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.IGNORED,
NO_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyDailyFail()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.DAILY,
HAS_MANAGED_COPY,
+                                                     ( NEWER * ONE_MINUTE ) );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyDailyNoManagedContent()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.DAILY,
NO_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyDailyPass()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.DAILY,
HAS_MANAGED_COPY,
+                                                     ( OLDER * OVER_ONE_DAY ) );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyDisabledFail()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.DISABLED,
+                                                     HAS_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyDisabledNoManagedContentFail()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_NOT_FOUND, SnapshotsPolicy.DISABLED,
NO_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyDisabledPass()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.DISABLED,
+                                                     HAS_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyHourlyFail()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.HOURLY,
HAS_MANAGED_COPY,
+                                                     ( NEWER * ONE_MINUTE ) );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyHourlyNoManagedContent()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.HOURLY,
NO_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyHourlyPass()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.HOURLY,
HAS_MANAGED_COPY,
+                                                     ( OLDER * OVER_ONE_HOUR ) );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyOnceFail()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_MANAGED_CONTENTS, SnapshotsPolicy.ONCE,
HAS_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyOnceNoManagedContent()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ONCE,
NO_MANAGED_COPY );
+    }
+
+    public void testGetProxiedSnapshotsArtifactPolicyOncePass()
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS, SnapshotsPolicy.ONCE,
NO_MANAGED_COPY );
+    }
+
+    private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation, String snapshotsPolicy,
+                                                              boolean hasManagedCopy )
+        throws Exception
+    {
+        assertGetProxiedSnapshotsArtifactWithPolicy( expectation, snapshotsPolicy, hasManagedCopy,
0 );
+    }
+
+    private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation, String snapshotsPolicy,
+                                                              boolean hasManagedCopy, long
deltaManagedToRemoteTimestamp )
+        throws Exception
+    {
+        // --- Setup
+        setupSnapshotsRemoteRepo();
+        setupCleanInternalRepo();
+
+        String resourcePath = "org/apache/archiva/test/3.0-SNAPSHOT/test-3.0-20070822.033400-42.jar";
+        String expectedRemoteContents = "archiva-test-3.0-20070822.033400-42|jar-remote-contents";
+        String expectedManagedContents = null;
+        File remoteFile = populateRepo( remoteSnapshots, resourcePath, expectedRemoteContents
);
+
+        if ( hasManagedCopy )
+        {
+            expectedManagedContents = "archiva-test-3.0-20070822.033400-42|jar-managed-contents";
+            File managedFile = populateRepo( repoRootInternal, resourcePath, expectedManagedContents
);
+            managedFile.setLastModified( remoteFile.lastModified() + deltaManagedToRemoteTimestamp
);
+        }
+
+        setupSnapshotConnector( REPOID_INTERNAL, remoteSnapshots, snapshotsPolicy );
+        saveConfiguration();
+
+        // --- Execution
+        // process the response code later, not via an exception.
+        HttpUnitOptions.setExceptionsThrownOnErrorStatus( false );
+
+        WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/"
+ resourcePath );
+        WebResponse response = sc.getResponse( request );
+
+        // --- Verification
+
+        switch ( expectation )
+        {
+            case EXPECT_MANAGED_CONTENTS:
+                assertResponseOK( response );
+                assertTrue( "Invalid Test Case: Can't expect managed contents with "
+                    + "test that doesn't have a managed copy in the first place.", hasManagedCopy
);
+                assertEquals( "Expected managed file contents", expectedManagedContents,
response.getText() );
+                break;
+            case EXPECT_REMOTE_CONTENTS:
+                assertResponseOK( response );
+                assertEquals( "Expected remote file contents", expectedRemoteContents, response.getText()
);
+                break;
+            case EXPECT_NOT_FOUND:
+                assertResponseNotFound( response );
+                assertManagedFileNotExists( repoRootInternal, resourcePath );
+                break;
+        }
+    }
+}

Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain



Mime
View raw message