aboutsummaryrefslogtreecommitdiff
path: root/tests/account_test.go
diff options
context:
space:
mode:
authorStefan Majewsky <majewsky@gmx.net>2018-02-19 21:30:33 +0100
committerStefan Majewsky <majewsky@gmx.net>2018-02-19 21:33:49 +0100
commit60d4779889baedc44972d4749daa073efca3b25c (patch)
treed47746971f659d6f7e3affe428f239b289954f5b /tests/account_test.go
parent8f777460661bbbcbe42730979140f525b382110e (diff)
downloadgo-schwift-60d4779889baedc44972d4749daa073efca3b25c.tar.gz
reorganize code
* Gophercloud dependencies move into subpackage gopherschwift. * Tests move into subpackage tests (to avoid import cycles). + Rename "Client" to "Backend".
Diffstat (limited to 'tests/account_test.go')
-rw-r--r--tests/account_test.go92
1 files changed, 92 insertions, 0 deletions
diff --git a/tests/account_test.go b/tests/account_test.go
new file mode 100644
index 0000000..310d4ce
--- /dev/null
+++ b/tests/account_test.go
@@ -0,0 +1,92 @@
+/******************************************************************************
+*
+* Copyright 2018 Stefan Majewsky <majewsky@gmx.net>
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+******************************************************************************/
+
+package tests
+
+import (
+ "testing"
+
+ "github.com/majewsky/schwift"
+)
+
+func TestAccountBasic(t *testing.T) {
+ testWithAccount(t, func(a *schwift.Account) {
+ hdr, err := a.Headers()
+ if !expectSuccess(t, err) {
+ t.FailNow()
+ }
+ //There are not a lot of things we can test here (besides testing that
+ //Headers() does not fail, i.e. everything parses correctly), but
+ //Content-Type is going to be text/plain because GET on an account lists
+ //the container names as plain text.
+ expectString(t, hdr.Get("Content-Type"), "text/plain; charset=utf-8")
+ })
+}
+
+func TestAccountMetadata(t *testing.T) {
+ testWithAccount(t, func(a *schwift.Account) {
+ //test creating some metadata
+ hdr := make(schwift.AccountHeaders)
+ hdr.Metadata().Set("schwift-test1", "first")
+ hdr.Metadata().Set("schwift-test2", "second")
+ err := a.Update(hdr, nil)
+ if !expectSuccess(t, err) {
+ t.FailNow()
+ }
+
+ hdr, err = a.Headers()
+ if !expectSuccess(t, err) {
+ t.FailNow()
+ }
+ expectString(t, hdr.Metadata().Get("schwift-test1"), "first")
+ expectString(t, hdr.Metadata().Get("schwift-test2"), "second")
+
+ //test deleting some metadata
+ hdr = make(schwift.AccountHeaders)
+ hdr.Metadata().Clear("schwift-test1")
+ err = a.Update(hdr, nil)
+ if !expectSuccess(t, err) {
+ t.FailNow()
+ }
+
+ hdr, err = a.Headers()
+ if !expectSuccess(t, err) {
+ t.FailNow()
+ }
+ expectString(t, hdr.Metadata().Get("schwift-test1"), "")
+ expectString(t, hdr.Metadata().Get("schwift-test2"), "second")
+
+ //test updating some metadata
+ hdr = make(schwift.AccountHeaders)
+ hdr.Metadata().Set("schwift-test1", "will not be set")
+ hdr.Metadata().Del("schwift-test1")
+ hdr.Metadata().Set("schwift-test2", "changed")
+ err = a.Update(hdr, nil)
+ if !expectSuccess(t, err) {
+ t.FailNow()
+ }
+
+ hdr, err = a.Headers()
+ if !expectSuccess(t, err) {
+ t.FailNow()
+ }
+ expectString(t, hdr.Metadata().Get("schwift-test1"), "")
+ expectString(t, hdr.Metadata().Get("schwift-test2"), "changed")
+
+ })
+}