Skip to content

Commit 31884c2

Browse files
authored
Merge pull request #460 from RachelTucker/net_4_1
SA-227 4.1 API for Net module with blob checksum header support
2 parents b83888c + e7acb84 commit 31884c2

File tree

3 files changed

+23
-5
lines changed

3 files changed

+23
-5
lines changed

ds3-autogen-net/src/main/resources/tmpls/net/parsers/response/head_object_parser.ftl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ namespace Ds3.ResponseParsers
1414
using (response)
1515
{
1616
return new ${responseName}(
17+
ResponseParseUtilities.ParseBlobChecksumHeaders(response.Headers),
18+
ResponseParseUtilities.ParseBlobChecksumTypeHeader(response.Headers),
1719
long.Parse(response.Headers.Single(kvp => kvp.Key.ToLowerInvariant() == "content-length").Value),
1820
response.Headers.Single(kvp => kvp.Key.ToLowerInvariant() == "etag").Value,
1921
ResponseParseUtilities.ExtractCustomMetadata(response.Headers)

ds3-autogen-net/src/main/resources/tmpls/net/response/head_object_response.ftl

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
11
<#include "../common/copyright.ftl" />
22

33

4-
using System.Net;
5-
using System.IO;
64
using System.Collections.Generic;
5+
using Ds3.Models;
76

87
using Ds3.Runtime;
98

109
namespace Ds3.Calls
1110
{
1211
public class ${name}
1312
{
13+
public IDictionary<long, string> BlobChecksums { get; private set; }
14+
public ChecksumType.Type BlobChecksumType { get; private set; }
1415
public IDictionary<string, string> Metadata { get; private set; }
1516
public string ETag { get; private set; }
1617
public long Length { get; private set; }
1718

18-
public ${name}(long length, string eTag, IDictionary<string, string> metadata)
19+
public ${name}(IDictionary<long, string> blobChecksums, ChecksumType.Type blobChecksumType, long length, string eTag, IDictionary<string, string> metadata)
1920
{
21+
this.BlobChecksums = blobChecksums;
22+
this.BlobChecksumType = blobChecksumType;
2023
this.Length = length;
2124
this.ETag = eTag;
2225
this.Metadata = metadata;

ds3-autogen-net/src/test/java/com/spectralogic/ds3autogen/net/NetFunctionalTests.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
public class NetFunctionalTests {
4444

4545
private final static Logger LOG = LoggerFactory.getLogger(NetFunctionalTests.class);
46-
private final static GeneratedCodeLogger CODE_LOGGER = new GeneratedCodeLogger(FileTypeToLog.REQUEST, LOG);
46+
private final static GeneratedCodeLogger CODE_LOGGER = new GeneratedCodeLogger(FileTypeToLog.PARSER, LOG);
4747

4848
@Rule
4949
public TemporaryFolder tempFolder = new TemporaryFolder();
@@ -1433,13 +1433,26 @@ public void headObjectRequest() throws IOException, TemplateModelException {
14331433
final String responseCode = codeGenerator.getResponseCode();
14341434
CODE_LOGGER.logFile(responseCode, FileTypeToLog.RESPONSE);
14351435
assertTrue(hasContent(responseCode));
1436-
assertTrue(responseCode.contains("public HeadObjectResponse(long length, string eTag, IDictionary<string, string> metadata)"));
1436+
assertTrue(responseCode.contains("using System.Collections.Generic;"));
1437+
assertTrue(responseCode.contains("using Ds3.Models;"));
1438+
assertTrue(responseCode.contains("public IDictionary<long, string> BlobChecksums { get; private set; }"));
1439+
assertTrue(responseCode.contains("public ChecksumType.Type BlobChecksumType { get; private set; }"));
1440+
assertTrue(responseCode.contains("public IDictionary<string, string> Metadata { get; private set; }"));
1441+
assertTrue(responseCode.contains("public string ETag { get; private set; }"));
1442+
assertTrue(responseCode.contains("public long Length { get; private set; }"));
1443+
assertTrue(responseCode.contains("public HeadObjectResponse(IDictionary<long, string> blobChecksums, ChecksumType.Type blobChecksumType, long length, string eTag, IDictionary<string, string> metadata)"));
14371444

14381445
//Generate Parser
14391446
final String parserCode = codeGenerator.getParserCode();
14401447
CODE_LOGGER.logFile(parserCode, FileTypeToLog.PARSER);
14411448
assertTrue(hasContent(parserCode));
14421449

1450+
assertTrue(parserCode.contains("ResponseParseUtilities.ParseBlobChecksumHeaders(response.Headers),"));
1451+
assertTrue(parserCode.contains("ResponseParseUtilities.ParseBlobChecksumTypeHeader(response.Headers),"));
1452+
assertTrue(parserCode.contains("long.Parse(response.Headers.Single(kvp => kvp.Key.ToLowerInvariant() == \"content-length\").Value),"));
1453+
assertTrue(parserCode.contains("response.Headers.Single(kvp => kvp.Key.ToLowerInvariant() == \"etag\").Value,"));
1454+
assertTrue(parserCode.contains("ResponseParseUtilities.ExtractCustomMetadata(response.Headers)"));
1455+
14431456
//Generate Client code
14441457
final String commandName = requestName.replace("Request", "");
14451458
final String clientCode = codeGenerator.getClientCode();

0 commit comments

Comments
 (0)