[SDC-22] DC artifact name fix 11/4311/1
authorPavel Aharoni <pa0916@att.com>
Thu, 18 May 2017 10:07:44 +0000 (13:07 +0300)
committerPavel Aharoni <pa0916@att.com>
Thu, 18 May 2017 10:07:44 +0000 (13:07 +0300)
Change-Id: I63dbb04c8d7ab96dc48ba8dae9661f278080c4d4
Signed-off-by: Pavel Aharoni <pa0916@att.com>
sdc-distribution-ci/src/main/java/org/openecomp/test/AdvanceCallBack.java
sdc-distribution-client/src/main/java/org/openecomp/sdc/api/results/IDistributionClientDownloadResult.java
sdc-distribution-client/src/main/java/org/openecomp/sdc/impl/DistributionClientDownloadResultImpl.java
sdc-distribution-client/src/main/java/org/openecomp/sdc/impl/mock/DistributionClientDownloadResultStubImpl.java
sdc-distribution-client/src/test/java/org/openecomp/sdc/impl/DistributionClientDownloadResultTest.java [new file with mode: 0644]

index d5ef6cd..f78a38b 100644 (file)
@@ -58,8 +58,8 @@ public class AdvanceCallBack extends SimpleCallback{
  
  protected void saveArtifactPayloadToDisk(IDistributionClientDownloadResult downloadResult) {
         System.out.println("################ Downloaded Artifact Payload Start ################");
-        String fileName = downloadResult.getArtifactName().replaceAll("attachment; filename=","");
-        saveFile(downloadResult.getArtifactPayload(), fileName.replaceAll("\"", ""));
+        String fileName = downloadResult.getArtifactFilename();
+        saveFile(downloadResult.getArtifactPayload(), fileName);
         System.out.println("################ Downloaded Artifact Payload End ################");
  }
 
index e101636..6030b9e 100644 (file)
@@ -22,6 +22,24 @@ package org.openecomp.sdc.api.results;
 
 /**Distribution Client Result For Download API*/
 public interface IDistributionClientDownloadResult extends IDistributionClientResult{
+       
+       
        byte[] getArtifactPayload();
+       
+       
+       /**
+        * @deprecated
+        * This method is deprecated and will be removed in 1710.
+        * It returns <b>attachment; filename="filename"</b> rather than <b>"filename"</b>.
+        * Please use {@link #getArtifactFilename()}. 
+        * @return
+        */
+       @Deprecated
        String getArtifactName();
+       
+       /**
+        * Returns the filename of the artifact.
+        * @return the filename of the artifact.
+        */
+       String getArtifactFilename();
 }
index b69cb24..0fa918a 100644 (file)
@@ -61,4 +61,14 @@ public class DistributionClientDownloadResultImpl  extends DistributionClientRes
                this.artifactName = artifactName;
        }
 
+       @Override
+       public String getArtifactFilename() {
+               //Fix of bug 292443 in TDP
+               if (artifactName == null || !artifactName.matches("attachment;\\s*filename=\".*?\"")){
+                       return artifactName;
+               }
+               String fileName = "filename=\"";
+               return artifactName.substring(artifactName.indexOf(fileName)+fileName.length(), artifactName.lastIndexOf("\""));
+       }
+
 }
index d69451a..aff0d0e 100644 (file)
@@ -69,4 +69,10 @@ public class DistributionClientDownloadResultStubImpl extends DistributionClient
                return "MackArtifactName";
        }
 
+       @Override
+       public String getArtifactFilename() {
+               // TODO Auto-generated method stub
+               return "MackArtifactName";
+       }
+
 }
diff --git a/sdc-distribution-client/src/test/java/org/openecomp/sdc/impl/DistributionClientDownloadResultTest.java b/sdc-distribution-client/src/test/java/org/openecomp/sdc/impl/DistributionClientDownloadResultTest.java
new file mode 100644 (file)
index 0000000..8f8fca2
--- /dev/null
@@ -0,0 +1,55 @@
+package org.openecomp.sdc.impl;\r
+\r
+import static org.junit.Assert.assertEquals;\r
+import static org.junit.Assert.assertNull;\r
+\r
+import org.junit.BeforeClass;\r
+import org.junit.Test;\r
+import org.openecomp.sdc.utils.DistributionActionResultEnum;\r
+\r
+\r
+public class DistributionClientDownloadResultTest {\r
+       \r
+       public static DistributionClientDownloadResultImpl distributionClientDownloadResult;\r
+       \r
+       @BeforeClass\r
+       public static void init(){\r
+               distributionClientDownloadResult = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.SUCCESS, "");\r
+       }\r
+       \r
+       @Test\r
+       public void testNonHeaderFilename(){\r
+               distributionClientDownloadResult.setArtifactName("service-BkPerformanceSrvs-csar.csar");\r
+               assertEquals("service-BkPerformanceSrvs-csar.csar", distributionClientDownloadResult.getArtifactFilename());\r
+       }\r
+       \r
+       @Test\r
+       public void testNullFilename(){\r
+               distributionClientDownloadResult.setArtifactName(null);\r
+               assertNull(distributionClientDownloadResult.getArtifactFilename());\r
+       }\r
+       \r
+       @Test\r
+       public void testFilenameFromHeaderNoSpace(){\r
+               distributionClientDownloadResult.setArtifactName("attachment;filename=\"service-BkPerformanceSrvs-csar.csar\"");\r
+               assertEquals("service-BkPerformanceSrvs-csar.csar", distributionClientDownloadResult.getArtifactFilename());\r
+       }\r
+       \r
+       @Test\r
+       public void testFilenameFromHeaderOneSpace(){\r
+               distributionClientDownloadResult.setArtifactName("attachment; filename=\"service-BkPerformanceSrvs-csar.csar\"");\r
+               assertEquals("service-BkPerformanceSrvs-csar.csar", distributionClientDownloadResult.getArtifactFilename());\r
+       }\r
+       \r
+       @Test\r
+       public void testFilenameFromHeaderManySpaces(){\r
+               distributionClientDownloadResult.setArtifactName("attachment;         filename=\"service-BkPerformanceSrvs-csar.csar\"");\r
+               assertEquals("service-BkPerformanceSrvs-csar.csar", distributionClientDownloadResult.getArtifactFilename());\r
+       }\r
+       \r
+       @Test\r
+       public void testFilenameEmpty(){\r
+               distributionClientDownloadResult.setArtifactName("attachment; filename=\"\"");\r
+               assertEquals("", distributionClientDownloadResult.getArtifactFilename());\r
+       }\r
+}\r