Skip to content

Commit 4094d9d

Browse files
authored
Merge pull request #39 from RachelTucker/SA-205
SA-205: Fixed request payload for Verify Bulk and fixed minor bug in unit test
2 parents fd1baae + 3010aa3 commit 4094d9d

File tree

4 files changed

+51
-44
lines changed

4 files changed

+51
-44
lines changed

src/ds3/ds3Client_test.go

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,7 @@ func TestBulkGetWithSimpleDs3GetObjets(t *testing.T) {
557557
)
558558
}
559559

560-
func TestBulkGetWithPartialDs3GetObjets(t *testing.T) {
560+
func TestBulkGetWithPartialDs3GetObjects(t *testing.T) {
561561
objects := []models.Ds3GetObject {
562562
models.NewPartialDs3GetObject("file1", 10, 100),
563563
models.NewPartialDs3GetObject("file2", 20, 200),
@@ -593,6 +593,42 @@ func TestBulkGetWithObjectNames(t *testing.T) {
593593
)
594594
}
595595

596+
func TestBulkVerifyWithPartialDs3GetObjects(t *testing.T) {
597+
objects := []models.Ds3GetObject {
598+
models.NewPartialDs3GetObject("file1", 10, 100),
599+
models.NewPartialDs3GetObject("file2", 20, 200),
600+
models.NewPartialDs3GetObject("file3", 30, 300),
601+
}
602+
603+
stringRequest := "<Objects><Object Name=\"file1\" Length=\"10\" Offset=\"100\"></Object><Object Name=\"file2\" Length=\"20\" Offset=\"200\"></Object><Object Name=\"file3\" Length=\"30\" Offset=\"300\"></Object></Objects>"
604+
605+
runBulkGetTest(
606+
t,
607+
"start_bulk_verify",
608+
&stringRequest,
609+
func(client *Client) ([]models.Objects, error) {
610+
request, err := client.VerifyBulkJobSpectraS3(models.NewVerifyBulkJobSpectraS3RequestWithPartialObjects("bucketName", objects))
611+
return request.MasterObjectList.Objects, err
612+
},
613+
)
614+
}
615+
616+
func TestBulkVerifyWithObjectNames(t *testing.T) {
617+
objects := []string {"file1", "file2", "file3"}
618+
619+
stringRequest := "<Objects><Object Name=\"file1\"></Object><Object Name=\"file2\"></Object><Object Name=\"file3\"></Object></Objects>"
620+
621+
runBulkGetTest(
622+
t,
623+
"start_bulk_verify",
624+
&stringRequest,
625+
func(client *Client) ([]models.Objects, error) {
626+
request, err := client.VerifyBulkJobSpectraS3(models.NewVerifyBulkJobSpectraS3Request("bucketName", objects))
627+
return request.MasterObjectList.Objects, err
628+
},
629+
)
630+
}
631+
596632
type bulkGetTest func(*Client) ([]models.Objects, error)
597633

598634
func runBulkGetTest(t *testing.T, operation string, stringRequest *string, callToTest bulkGetTest) {
@@ -1642,7 +1678,7 @@ func TestGetPhysicalPlacementForObjectsSpectraS3(t *testing.T) {
16421678

16431679
func TestGetPhysicalPlacementForObjectsWithFullDetailsSpectraS3(t *testing.T) {
16441680
expectedRequest := "<Objects><Object Name=\"obj1\"></Object><Object Name=\"obj2\"></Object><Object Name=\"obj3\"></Object></Objects>"
1645-
responsePayload := "<Data><AzureTargets/><Ds3Targets/><Pools/><S3Targets/><Tapes/></Data>"
1681+
responsePayload := "<Data><Object Bucket=\"b1\" Id=\"a2897bbd-3e0b-4c0f-83d7-29e1e7669bdd\" InCache=\"false\" Latest=\"true\" Length=\"10\" Name=\"o4\" Offset=\"0\" Version=\"1\"><PhysicalPlacement><AzureTargets/><Ds3Targets/><Pools/><S3Targets/><Tapes/></PhysicalPlacement></Object></Data>"
16461682

16471683
// Create and run the mocked client.
16481684
bucketName := "BucketName"

src/ds3/models/requestPayloadUtils.go

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -111,31 +111,6 @@ func buildDs3GetObjectListStream(ds3GetObjects []Ds3GetObject) networking.Reader
111111
return marshalRequestPayload(objects)
112112
}
113113

114-
type Ds3VerifyObject struct {
115-
Name string `xml:"Name,attr"`
116-
Length int64 `xml:"Length,attr"`
117-
}
118-
119-
type ds3VerifyObjectList struct {
120-
XMLName xml.Name
121-
Ds3VerifyObjects []Ds3VerifyObject `xml:"Object"`
122-
}
123-
124-
func newDs3VerifyObjectList(ds3VerifyObjects []Ds3VerifyObject) *ds3VerifyObjectList {
125-
return &ds3VerifyObjectList{
126-
XMLName: xml.Name{Local:"Objects"},
127-
Ds3VerifyObjects: ds3VerifyObjects,
128-
}
129-
}
130-
131-
// Converts the ds3 put object list into a request payload stream of format:
132-
// <Objects><Object Name="o1" Length="2048"></Object><Object Name="o2" Length="2048"></Object>...</Objects>
133-
func buildDs3VerifyObjectListStream(ds3VerifyObjects []Ds3VerifyObject) networking.ReaderWithSizeDecorator {
134-
// Build the ds3 put object list entity.
135-
objects := newDs3VerifyObjectList(ds3VerifyObjects)
136-
return marshalRequestPayload(objects)
137-
}
138-
139114
type deleteObjectList struct {
140115
XMLName xml.Name
141116
Objects []deleteObject `xml:"Object"`

src/ds3/models/requestPayloadUtils_test.go

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -84,21 +84,6 @@ func TestBuildDs3GetObjectListStream(t *testing.T) {
8484
verifyStreamContent(t, contentStream, expected)
8585
}
8686

87-
func TestBuildDs3VerifyObjectListStream(t *testing.T) {
88-
expected := "<Objects><Object Name=\"o1\" Length=\"1\"></Object><Object Name=\"o2\" Length=\"2\"></Object><Object Name=\"o3\" Length=\"3\"></Object></Objects>"
89-
90-
ds3VerifyObjects := []Ds3VerifyObject {
91-
{Name:"o1", Length:1},
92-
{Name:"o2", Length:2},
93-
{Name:"o3", Length:3},
94-
}
95-
96-
contentStream := buildDs3VerifyObjectListStream(ds3VerifyObjects)
97-
98-
defer contentStream.Close()
99-
verifyStreamContent(t, contentStream, expected)
100-
}
101-
10287
func TestBuildDeleteObjectsPayload(t *testing.T) {
10388
expected := "<Delete><Object><Key>o1</Key></Object><Object><Key>o2</Key></Object><Object><Key>o3</Key></Object></Delete>"
10489

src/ds3/models/verifyBulkJobSpectraS3Request.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,24 @@ type VerifyBulkJobSpectraS3Request struct {
2929
queryParams *url.Values
3030
}
3131

32-
func NewVerifyBulkJobSpectraS3Request(bucketName string, objects []Ds3VerifyObject) *VerifyBulkJobSpectraS3Request {
32+
func NewVerifyBulkJobSpectraS3Request(bucketName string, objectNames []string) *VerifyBulkJobSpectraS3Request {
3333
queryParams := &url.Values{}
3434
queryParams.Set("operation", "start_bulk_verify")
3535

3636
return &VerifyBulkJobSpectraS3Request{
3737
bucketName: bucketName,
38-
content: buildDs3VerifyObjectListStream(objects),
38+
content: buildDs3ObjectStreamFromNames(objectNames),
39+
queryParams: queryParams,
40+
}
41+
}
42+
43+
func NewVerifyBulkJobSpectraS3RequestWithPartialObjects(bucketName string, objects []Ds3GetObject) *VerifyBulkJobSpectraS3Request {
44+
queryParams := &url.Values{}
45+
queryParams.Set("operation", "start_bulk_verify")
46+
47+
return &VerifyBulkJobSpectraS3Request{
48+
bucketName: bucketName,
49+
content: buildDs3GetObjectListStream(objects),
3950
queryParams: queryParams,
4051
}
4152
}

0 commit comments

Comments
 (0)