diff options
| author | Stefan Majewsky <majewsky@gmx.net> | 2018-09-06 12:56:54 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-09-06 12:56:54 +0000 |
| commit | e1b3d5e2efc913f52df74291c0c90efb346faa0e (patch) | |
| tree | cd78bd78c298b75e03e488f6b1777300f9e3e6d9 /tests/largeobject_test.go | |
| parent | c4da85fbc6b4e10c0da7eabe684561e2c2378f76 (diff) | |
| parent | 127cfdcd847fef24f606b5c548fe90dc2b46549e (diff) | |
| download | go-schwift-e1b3d5e2efc913f52df74291c0c90efb346faa0e.tar.gz | |
Merge pull request #9 from talal/master
add RequestOptions to LargeObject.Append()
Diffstat (limited to 'tests/largeobject_test.go')
| -rw-r--r-- | tests/largeobject_test.go | 75 |
1 files changed, 56 insertions, 19 deletions
diff --git a/tests/largeobject_test.go b/tests/largeobject_test.go index a8c18e6..1932741 100644 --- a/tests/largeobject_test.go +++ b/tests/largeobject_test.go @@ -23,6 +23,7 @@ import ( "fmt" "strings" "testing" + "time" "github.com/majewsky/schwift" ) @@ -52,7 +53,7 @@ func TestLargeObjectsBasic(t *testing.T) { Strategy: strategy, }, nil) expectSuccess(t, err) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1+segment2)), 128)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1+segment2)), 128, nil)) expectSuccess(t, lo.WriteManifest(nil)) expectObjectContent(t, obj, []byte(segment1+segment2)) @@ -74,7 +75,7 @@ func TestLargeObjectsBasic(t *testing.T) { expectSuccess(t, err) expectLargeObjectSetup(t, lo, strategy, fmt.Sprintf("%s/%s-segments/", c.Name(), strategyStr)) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment3+segment4)), 128)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment3+segment4)), 128, nil)) expectSuccess(t, lo.WriteManifest(nil)) expectObjectContent(t, obj, []byte(segment1+segment2+segment3+segment4)) @@ -118,7 +119,7 @@ func TestLargeObjectsBasic(t *testing.T) { expectSuccess(t, err) expectObjectNames(t, names) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment3+segment4)), 128)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment3+segment4)), 128, nil)) expectSuccess(t, lo.WriteManifest(nil)) expectObjectContent(t, obj, []byte(segment3+segment4)) @@ -139,6 +140,42 @@ func TestLargeObjectsBasic(t *testing.T) { }) } +func TestLargeObjectExpiration(t *testing.T) { + testWithContainer(t, func(c *schwift.Container) { + foreachLargeObjectStrategy(func(strategy schwift.LargeObjectStrategy, strategyStr string) { + segment := getRandomSegmentContent(128) + obj := c.Object(strategyStr + "-largeobject") + lo, err := obj.AsNewLargeObject(schwift.SegmentingOptions{ + SegmentContainer: c, + SegmentPrefix: strategyStr + "-segments/", + Strategy: strategy, + }, nil) + expectSuccess(t, err) + + delay := time.Duration(3600) * time.Second + expirationTime := time.Now().Add(delay) + headers := schwift.NewObjectHeaders() + headers.ExpiresAt().Set(expirationTime) + + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment)), 128, headers.ToOpts())) + expectSuccess(t, lo.WriteManifest(headers.ToOpts())) + + //check object expiration + hdr, err := obj.Headers() + expectSuccess(t, err) + objectExpiration := hdr.ExpiresAt().Get().Format("2006-01-02 15:04:05 +00:00 MST") + expectString(t, objectExpiration, expirationTime.Format("2006-01-02 15:04:05 +00:00 MST")) + + //check segment expiration + hdr, err = c.Object(strategyStr + "-segments/0000000000000001").Headers() + expectSuccess(t, err) + objectExpiration = hdr.ExpiresAt().Get().Format("2006-01-02 15:04:05 +00:00 MST") + expectString(t, objectExpiration, expirationTime.Format("2006-01-02 15:04:05 +00:00 MST")) + + }) + }) +} + func TestTruncateDuringOverwrite(t *testing.T) { foreachLargeObjectStrategy(func(strategy schwift.LargeObjectStrategy, strategyStr string) { testWithContainer(t, func(c *schwift.Container) { @@ -154,8 +191,8 @@ func TestTruncateDuringOverwrite(t *testing.T) { segment1 := getRandomSegmentContent(128) segment2 := getRandomSegmentContent(128) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0)) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0, nil)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0, nil)) expectSuccess(t, lo.WriteManifest(nil)) expectObjectExistence(t, c.Object("segments/0000000000000001"), true) @@ -169,8 +206,8 @@ func TestTruncateDuringOverwrite(t *testing.T) { DeleteSegments: true, }) expectSuccess(t, err) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0)) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0, nil)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0, nil)) expectSuccess(t, lo.WriteManifest(nil)) expectObjectExistence(t, c.Object("segments/0000000000000001"), false) @@ -203,9 +240,9 @@ func TestSLOWithDataSegment(t *testing.T) { dataSegment := schwift.SegmentInfo{Data: []byte("---")} segment2 := getRandomSegmentContent(128) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0, nil)) expectSuccess(t, lo.AddSegment(dataSegment)) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0, nil)) expectSuccess(t, lo.WriteManifest(nil)) expectObjectContent(t, o, []byte(segment1+string(dataSegment.Data)+segment2)) @@ -303,8 +340,8 @@ func TestSLOGuessSegmentPrefix(t *testing.T) { segment1 := getRandomSegmentContent(128) segment2 := getRandomSegmentContent(128) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0)) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0, nil)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0, nil)) expectSuccess(t, lo.WriteManifest(nil)) //now create a fresh SLO and check if it infers the correct SegmentPrefix @@ -330,8 +367,8 @@ func TestDeleteLargeObjectAndKeepSegments(t *testing.T) { segment1 := getRandomSegmentContent(128) segment2 := getRandomSegmentContent(128) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0)) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0, nil)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0, nil)) expectSuccess(t, lo.WriteManifest(nil)) //test deletion that keeps segments @@ -363,8 +400,8 @@ func TestDeleteLargeObjectIncludingSegments(t *testing.T) { segment1 := getRandomSegmentContent(128) segment2 := getRandomSegmentContent(128) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0)) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0, nil)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0, nil)) expectSuccess(t, lo.WriteManifest(nil)) //test deletion that keeps segments @@ -394,8 +431,8 @@ func TestOverwriteLargeObjectAndKeepSegments(t *testing.T) { segment1 := getRandomSegmentContent(128) segment2 := getRandomSegmentContent(128) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0)) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0, nil)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0, nil)) expectSuccess(t, lo.WriteManifest(nil)) //test overwriting that keeps segments @@ -427,8 +464,8 @@ func TestOverwriteLargeObjectIncludingSegments(t *testing.T) { segment1 := getRandomSegmentContent(128) segment2 := getRandomSegmentContent(128) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0)) - expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment1)), 0, nil)) + expectSuccess(t, lo.Append(bytes.NewReader([]byte(segment2)), 0, nil)) expectSuccess(t, lo.WriteManifest(nil)) //test overwriting that deletes segments |
