From 70d9fc2a699624f8fc87f1c5837241c536087373 Mon Sep 17 00:00:00 2001 From: Stefan Majewsky Date: Wed, 7 Feb 2018 20:45:42 +0100 Subject: increase test coverage --- container_test.go | 48 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 11 deletions(-) (limited to 'container_test.go') diff --git a/container_test.go b/container_test.go index c6e20f1..76ff037 100644 --- a/container_test.go +++ b/container_test.go @@ -19,15 +19,19 @@ package schwift import ( - "crypto/rand" - "encoding/hex" "net/http" "testing" ) -func TestContainerExistence(t *testing.T) { +func TestContainerLifecycle(t *testing.T) { testWithAccount(t, func(a *Account) { - c := a.Container(getRandomName()) + containerName := getRandomName() + c := a.Container(containerName) + + expectString(t, c.Name(), containerName) + if c.Account() != a { + t.Errorf("expected c.Account() = %#v, go %#v instead\n", a, c.Account()) + } exists, err := c.Exists() expectError(t, err, "") @@ -38,20 +42,42 @@ func TestContainerExistence(t *testing.T) { expectBool(t, Is(err, http.StatusNotFound), true) expectBool(t, Is(err, http.StatusNoContent), false) + //DELETE should be idempotent and not return success on non-existence, but + //OpenStack loves to be inconsistent with everything (including, notably, itself) + err = c.Delete(nil, nil) + expectError(t, err, "expected 204 response, got 404 instead:

Not Found

The resource could not be found.

") + err = c.Create(nil, nil) expectError(t, err, "") exists, err = c.Exists() expectError(t, err, "") expectBool(t, exists, true) + + err = c.Delete(nil, nil) + expectError(t, err, "") }) } -func getRandomName() string { - var buf [16]byte - _, err := rand.Read(buf[:]) - if err != nil { - panic(err.Error()) - } - return hex.EncodeToString(buf[:]) +func TestContainerUpdate(t *testing.T) { + testWithContainer(t, func(c *Container) { + + hdr, err := c.Headers() + expectError(t, err, "") + expectBool(t, hdr.ObjectCount().Exists(), true) + expectUint64(t, hdr.ObjectCount().Get(), 0) + + hdr = make(ContainerHeaders) + hdr.ObjectCountQuota().Set(23) + hdr.BytesUsedQuota().Set(42) + + err = c.Update(hdr, nil) + expectError(t, err, "") + + hdr, err = c.Headers() + expectError(t, err, "") + expectUint64(t, hdr.BytesUsedQuota().Get(), 42) + expectUint64(t, hdr.ObjectCountQuota().Get(), 23) + + }) } -- cgit v1.2.3