objects unit tests
diff --git a/openstack/storage/v1/objects/objects_test.go b/openstack/storage/v1/objects/objects_test.go
new file mode 100644
index 0000000..31fa837
--- /dev/null
+++ b/openstack/storage/v1/objects/objects_test.go
@@ -0,0 +1,96 @@
+package objects
+
+import (
+	"bytes"
+	"encoding/json"
+	"io/ioutil"
+	"net/http"
+	"reflect"
+	"testing"
+)
+
+func TestExtractObjectMetadata(t *testing.T) {
+	getResult := &http.Response{}
+
+	expected := map[string]string{}
+
+	actual := ExtractMetadata(getResult)
+
+	if !reflect.DeepEqual(expected, actual) {
+		t.Errorf("Expected: %+v\nActual:%+v", expected, actual)
+	}
+}
+
+func TestExtractContent(t *testing.T) {
+	responseBody := "'Twas brillig, and the slithy toves"
+	downloadResult := &http.Response{
+		Body: ioutil.NopCloser(bytes.NewBufferString(responseBody)),
+	}
+	expected := []byte("'Twas brillig, and the slithy toves")
+	actual, err := ExtractContent(downloadResult)
+	if err != nil {
+		t.Errorf("Error extracting object content: %s", err)
+	}
+	if !reflect.DeepEqual(actual, expected) {
+		t.Errorf("Expected: %+v\nActual:%+v", expected, actual)
+	}
+}
+
+func TestExtractObjectInfo(t *testing.T) {
+	responseBody := `
+		[
+		    {
+				"hash": "451e372e48e0f6b1114fa0724aa79fa1",
+		        "last_modified": "2014-01-15T16:41:49.390270",
+				"bytes": 14,
+				"name": "goodbye",
+				"content_type": "application/octet-stream"
+			},
+			{
+		        "hash": "ed076287532e86365e841e92bfc50d8c",
+			    "last_modified": "2014-01-15T16:37:43.427570",
+				"bytes": 12,
+				"name": "helloworld",
+				"content_type": "application/octet-stream"
+			}
+		]	
+	`
+
+	listResult := &http.Response{
+		Body: ioutil.NopCloser(bytes.NewBufferString(responseBody)),
+	}
+
+	var expected []Object
+	err := json.Unmarshal([]byte(responseBody), &expected)
+	if err != nil {
+		t.Errorf("Error unmarshaling JSON: %s", err)
+	}
+
+	actual, err := ExtractInfo(listResult)
+	if err != nil {
+		t.Errorf("Error extracting objects info: %s", err)
+	}
+
+	if !reflect.DeepEqual(expected, actual) {
+		t.Errorf("Expected: %+v\nActual: %+v", expected, actual)
+	}
+}
+
+func TestExtractObjectNames(t *testing.T) {
+	responseBody := "goodbye\nhelloworld\n"
+
+	listResult := &http.Response{
+		Body: ioutil.NopCloser(bytes.NewBufferString(responseBody)),
+	}
+
+	expected := []string{"goodbye", "helloworld"}
+
+	actual, err := ExtractNames(listResult)
+	if err != nil {
+		t.Errorf("Error extracting object names: %s", err)
+	}
+
+	if !reflect.DeepEqual(expected, actual) {
+		t.Errorf("Expected: %+v\nActual:%+v", expected, actual)
+	}
+}