simplydb 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,43 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :post
5
+ uri: https://sdb.amazonaws.com:443/
6
+ body: Action=Select&Signature=wnFpvIoxvEvoTC9nn5dagD3md13Lr%2BJd0GKbJ30GCgg%3D&Version=2009-04-15&AWSAccessKeyId=1VRWH6Y8EA9RKV7NHSR2&SignatureVersion=2&Timestamp=2011-04-13T01%3A40%3A00-07%3A00&SignatureMethod=HmacSHA256&SelectExpression=select%20*%20from%20activity&ConsistentRead=false
7
+ headers:
8
+ accept:
9
+ - "*/*; q=0.5, application/xml"
10
+ content-type:
11
+ - application/x-www-form-urlencoded
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ content-length:
15
+ - "282"
16
+ response: !ruby/struct:VCR::Response
17
+ status: !ruby/struct:VCR::ResponseStatus
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ content-type:
22
+ - text/xml
23
+ server:
24
+ - Amazon SimpleDB
25
+ date:
26
+ - Wed, 13 Apr 2011 03:03:24 GMT
27
+ content-encoding:
28
+ - gzip
29
+ vary:
30
+ - Accept-Encoding
31
+ transfer-encoding:
32
+ - chunked
33
+ body: !binary |
34
+ H4sIAAAAAAAAAO1VwU7DMAy98xVV723Srh0dyjINENKQxoEJrshLMlapTUvj
35
+ wtjXkzHG1opDuW3ScogU2+/F8pNtNlrlmfOuKpMWeugGPnVH/ILNVKYEPipT
36
+ Ftoox8ZoM3SXiOUVIUbOfchhXWj4ML4ociILQUJKBx6NvCAmLt8T1BlyNkGV
37
+ c/YAueKoDE5uGfl+sDFilc5rVD/edVruXM+Q1YoPaBhQRrYPRg7i21CQslLG
38
+ NOFB2HOmkGpnhp1ItL2aDPfF0qLzFJfdsnht4cPLTjiDgC3kzbgTUqT42QTO
39
+ QDt3FWiRGlH8yUG2ghzIUpfSJvAPYWxlo/ikhUlOQhhpGwnVSwkVppCdO+dY
40
+ BYLsLM6RiEOay2e3xaYKwQ452Fje6s0aknzQo4ueAOWpcHHpRWFCvVDEcw8i
41
+ KZLYuqTsM7KPZ9fF6snYanDqU3tiGiZ9OwZ/zZvg9nekuU35F8GhhvB0BwAA
42
+
43
+ http_version: "1.1"
@@ -0,0 +1,41 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :post
5
+ uri: https://sdb.amazonaws.com:443/
6
+ body: Action=ListDomains&Signature=DegXo6Vb5uZea%2F5Hj3nYBhdNZY2wHche7hahJ6AaHJE%3D&Version=2009-04-15&AWSAccessKeyId=1VRWH6Y8EA9RKV7NHSR2&SignatureVersion=2&Timestamp=2011-04-13T01%3A40%3A00-07%3A00&SignatureMethod=HmacSHA256
7
+ headers:
8
+ accept:
9
+ - "*/*; q=0.5, application/xml"
10
+ content-type:
11
+ - application/x-www-form-urlencoded
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ content-length:
15
+ - "220"
16
+ response: !ruby/struct:VCR::Response
17
+ status: !ruby/struct:VCR::ResponseStatus
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ content-type:
22
+ - text/xml
23
+ server:
24
+ - Amazon SimpleDB
25
+ date:
26
+ - Wed, 13 Apr 2011 03:03:10 GMT
27
+ content-encoding:
28
+ - gzip
29
+ vary:
30
+ - Accept-Encoding
31
+ transfer-encoding:
32
+ - chunked
33
+ body: !binary |
34
+ H4sIAAAAAAAAAIWQwU7DMAyG7zzF1HsaJ13phrJMQlyQgAMSD+CmCURqkkK8
35
+ MXh6WiFgqjbhm39/sv/fansI/WJv37JPcVOIEoqtvlB3PtNNCuhjfrR5SDHb
36
+ xQjGvCleiIYrznPXlhjwM0V8z6VJgXfJcAmwZrBkouaFnm3Z9aTVd/uAwWo0
37
+ 5PeePhQ/Eo+BPhmk0dZZICbyzv8DDWO2+ZifcPaT894Sdkg4Ka87m+m20w5W
38
+ UEvXsMY1KwaXDplYiopVbStbdBUYKRX/49V1OjxlfLYaSpiqEU29VvxXnuD5
39
+ OX7i6foLklF1SKABAAA=
40
+
41
+ http_version: "1.1"
@@ -0,0 +1,42 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :post
5
+ uri: https://sdb.amazonaws.com:443/
6
+ body: Action=GetAttributes&Signature=JiT%2BIMEwpkF9U5KnZfu8Szc83L%2FOD1shMN3kYu0mFbI%3D&Version=2009-04-15&AWSAccessKeyId=1VRWH6Y8EA9RKV7NHSR2&SignatureVersion=2&Timestamp=2011-04-13T01%3A40%3A00-07%3A00&SignatureMethod=HmacSHA256&DomainName=activity&ConsistentRead=false&ItemName=testID
7
+ headers:
8
+ accept:
9
+ - "*/*; q=0.5, application/xml"
10
+ content-type:
11
+ - application/x-www-form-urlencoded
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ content-length:
15
+ - "281"
16
+ response: !ruby/struct:VCR::Response
17
+ status: !ruby/struct:VCR::ResponseStatus
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ content-type:
22
+ - text/xml
23
+ server:
24
+ - Amazon SimpleDB
25
+ date:
26
+ - Wed, 13 Apr 2011 03:03:18 GMT
27
+ content-encoding:
28
+ - gzip
29
+ vary:
30
+ - Accept-Encoding
31
+ transfer-encoding:
32
+ - chunked
33
+ body: !binary |
34
+ H4sIAAAAAAAAAI2RwU7DMBBE73xFlHtiJ6UkRq6rggQCqRyo4L5xFmqpsUu8
35
+ gdKvJy1qIWkP8cHyjufNWl453VSr4BNrb5ydhEnMw6m6kPdIM6LaFA2hf0a/
36
+ dtZj0Fqtn4RLovU1Y74sYqhg6yx8+Vi7ipVOs5RzEfHLKBmzUJ3kNCtS8qgo
37
+ +QQVqq1ZS7Y/yVdYNagETxMu2W8h2T9/H4WyrNH7Lp6ko2AOxgYLGhbyjt2A
38
+ NBvE2Xbrgo9u2XatDC0HBXgC6iXczgaR2tB3F1yADe5qsNp47c5msLPDOAx3
39
+ jgQlEOyUjwY9PZQKtMaRHmOUizcRQXGVRXmS6yjLMxxnomiLVLI/v7xxmxff
40
+ fqfiMd8tMRJp6zjKO3O/3cmz9vfqB/tyg9SZAgAA
41
+
42
+ http_version: "1.1"
@@ -0,0 +1,119 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :post
5
+ uri: https://sdb.amazonaws.com:443/
6
+ body: Action=CreateDomain&Signature=dIeUQBpWsieilErb6SsxEAxd7ni9nmsQNVbzYDZQjf4%3D&Version=2009-04-15&AWSAccessKeyId=1VRWH6Y8EA9RKV7NHSR2&SignatureVersion=2&Timestamp=2011-04-13T01%3A40%3A00-07%3A00&SignatureMethod=HmacSHA256&DomainName=information
7
+ headers:
8
+ accept:
9
+ - "*/*; q=0.5, application/xml"
10
+ content-type:
11
+ - application/x-www-form-urlencoded
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ content-length:
15
+ - "242"
16
+ response: !ruby/struct:VCR::Response
17
+ status: !ruby/struct:VCR::ResponseStatus
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ content-type:
22
+ - text/xml
23
+ server:
24
+ - Amazon SimpleDB
25
+ date:
26
+ - Wed, 13 Apr 2011 03:03:11 GMT
27
+ content-encoding:
28
+ - gzip
29
+ vary:
30
+ - Accept-Encoding
31
+ transfer-encoding:
32
+ - chunked
33
+ body: !binary |
34
+ H4sIAAAAAAAAAG2PvQ6CMBRGd5/CsJdekBYxpSbq4uBi4gNc6EVJpEVbf+LT
35
+ K4OaGNeT8+XkU/N7dxxf6exbZ8soiSGa65FangkDrVyHrd2S7531NH6Z1pfR
36
+ IYR+xrk3VYwdPpzFm49r13Hjap4CFAwylggeafWebiigwYADOV3Ih7XRUmCN
37
+ CMSyIs8YyMwwSUXDJpA0FSQoJeSKf321cPedxz1piAGEEAWk+VTxDx7k3xz/
38
+ d0Q/AcW/hwj1AAAA
39
+
40
+ http_version: "1.1"
41
+ - !ruby/struct:VCR::HTTPInteraction
42
+ request: !ruby/struct:VCR::Request
43
+ method: :post
44
+ uri: https://sdb.amazonaws.com:443/
45
+ body: Action=ListDomains&Signature=DegXo6Vb5uZea%2F5Hj3nYBhdNZY2wHche7hahJ6AaHJE%3D&Version=2009-04-15&AWSAccessKeyId=1VRWH6Y8EA9RKV7NHSR2&SignatureVersion=2&Timestamp=2011-04-13T01%3A40%3A00-07%3A00&SignatureMethod=HmacSHA256
46
+ headers:
47
+ accept:
48
+ - "*/*; q=0.5, application/xml"
49
+ content-type:
50
+ - application/x-www-form-urlencoded
51
+ accept-encoding:
52
+ - gzip, deflate
53
+ content-length:
54
+ - "220"
55
+ response: !ruby/struct:VCR::Response
56
+ status: !ruby/struct:VCR::ResponseStatus
57
+ code: 200
58
+ message: OK
59
+ headers:
60
+ content-type:
61
+ - text/xml
62
+ server:
63
+ - Amazon SimpleDB
64
+ date:
65
+ - Wed, 13 Apr 2011 03:03:11 GMT
66
+ content-encoding:
67
+ - gzip
68
+ vary:
69
+ - Accept-Encoding
70
+ transfer-encoding:
71
+ - chunked
72
+ body: !binary |
73
+ H4sIAAAAAAAAAIWRwU7DMAyG7zzF1HuatEkXirJMQlyQgAMSD+AlKURqkrJ4
74
+ Y/D0tELAVI3hm39/sn/ban0I/WLvttmnuCqqkhVrfaHufMabFMDH/OjykGJ2
75
+ ixGMeVW8IA5XlGa7KSHAR4rwlkuTArXJ0JqxljBBqoYWetZl16NWX+kDBKfB
76
+ oN97fFf0SDwGfOzSNgCOzv5k+mTOAzGh7/w/0DDuPy/TE+6/b3HvECwgTMrr
77
+ zmW8tZrbTiwZr8f1RUfM5pIREFyQpq0lcMnbpZWK/vLqOh2eMjw7zUo2haxk
78
+ 0yr6I0/wfBw98Rj9CVA5ZG/EAQAA
79
+
80
+ http_version: "1.1"
81
+ - !ruby/struct:VCR::HTTPInteraction
82
+ request: !ruby/struct:VCR::Request
83
+ method: :post
84
+ uri: https://sdb.amazonaws.com:443/
85
+ body: Action=DeleteDomain&Signature=gD5VnHwAvWvbWnfROL6497Jp1rNs%2BALtXLFNia9nbnw%3D&Version=2009-04-15&AWSAccessKeyId=1VRWH6Y8EA9RKV7NHSR2&SignatureVersion=2&Timestamp=2011-04-13T01%3A40%3A00-07%3A00&SignatureMethod=HmacSHA256&DomainName=information
86
+ headers:
87
+ accept:
88
+ - "*/*; q=0.5, application/xml"
89
+ content-type:
90
+ - application/x-www-form-urlencoded
91
+ accept-encoding:
92
+ - gzip, deflate
93
+ content-length:
94
+ - "244"
95
+ response: !ruby/struct:VCR::Response
96
+ status: !ruby/struct:VCR::ResponseStatus
97
+ code: 200
98
+ message: OK
99
+ headers:
100
+ content-type:
101
+ - text/xml
102
+ server:
103
+ - Amazon SimpleDB
104
+ date:
105
+ - Wed, 13 Apr 2011 03:03:13 GMT
106
+ content-encoding:
107
+ - gzip
108
+ vary:
109
+ - Accept-Encoding
110
+ transfer-encoding:
111
+ - chunked
112
+ body: !binary |
113
+ H4sIAAAAAAAAAG2PvQrCMBRGd59Cuqe5jQ21EiOIi4OL4ANckxstNIma+INP
114
+ rw4qiOvhfBw+Nbv5fnihU+pimBZVCcVMD9SCesq0iB67sKZ0iCHR8GmGNC32
115
+ OR8mnCe7LdHjPQa8ptJEz200XAC0DGpWSV5o9Z6uKKPFjC9yPFPKS6tb45rG
116
+ GcvsVgpWmwoZ2rFgVNcwck60DlDxr6/m8bZJuCMNJYCUsgXRjBX/4Jf8m+P/
117
+ jugH6eOgcvUAAAA=
118
+
119
+ http_version: "1.1"
@@ -0,0 +1,81 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :post
5
+ uri: https://sdb.amazonaws.com:443/
6
+ body: Action=PutAttributes&Signature=rcVZq9Ug%2FVdax3hgwxFFbWQLUVVqDaAg9SeAinChhYk%3D&Version=2009-04-15&AWSAccessKeyId=1VRWH6Y8EA9RKV7NHSR2&Attribute.0.Value=28&SignatureVersion=2&Timestamp=2011-04-13T01%3A40%3A00-07%3A00&Attribute.1.Value=12345&Attribute.0.Replace=true&SignatureMethod=HmacSHA256&Attribute.1.Name=zip&Attribute.0.Name=age&DomainName=activity&Attribute.1.Replace=true&ItemName=updateID
7
+ headers:
8
+ accept:
9
+ - "*/*; q=0.5, application/xml"
10
+ content-type:
11
+ - application/x-www-form-urlencoded
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ content-length:
15
+ - "397"
16
+ response: !ruby/struct:VCR::Response
17
+ status: !ruby/struct:VCR::ResponseStatus
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ content-type:
22
+ - text/xml
23
+ date:
24
+ - Wed, 13 Apr 2011 03:03:19 GMT
25
+ server:
26
+ - Amazon SimpleDB
27
+ content-encoding:
28
+ - gzip
29
+ vary:
30
+ - Accept-Encoding
31
+ transfer-encoding:
32
+ - chunked
33
+ body: !binary |
34
+ H4sIAAAAAAAAAG2PwQrCMBBE735F6T3NNjFCJY3ozYMggh8Qm1ULtlF3q8Wv
35
+ tx5UEOf4eMMwdtY3p+SGV6pjW6Z5BunMjey64znztd51jLRBOseWMBnUlsr0
36
+ yHyeSklhl/nGP2Lr75RVsZEhVlIBFALGIjcydfZdXSH74Nm/yKVD4mVwudIT
37
+ g8YIVQ2+MWMUoHUQ4Cdhr5RG0IWVX98uYr8lf0AHGQxReVEobeUHv+TfOfn3
38
+ iXsC59LZ9/cAAAA=
39
+
40
+ http_version: "1.1"
41
+ - !ruby/struct:VCR::HTTPInteraction
42
+ request: !ruby/struct:VCR::Request
43
+ method: :post
44
+ uri: https://sdb.amazonaws.com:443/
45
+ body: Action=GetAttributes&Signature=eGxB1OE6IdpsdHj%2B2P6ZZICB7B9IrysTcaVNccrh5P8%3D&Version=2009-04-15&AWSAccessKeyId=1VRWH6Y8EA9RKV7NHSR2&SignatureVersion=2&Timestamp=2011-04-13T01%3A40%3A00-07%3A00&SignatureMethod=HmacSHA256&DomainName=activity&ConsistentRead=false&ItemName=updateID
46
+ headers:
47
+ accept:
48
+ - "*/*; q=0.5, application/xml"
49
+ content-type:
50
+ - application/x-www-form-urlencoded
51
+ accept-encoding:
52
+ - gzip, deflate
53
+ content-length:
54
+ - "281"
55
+ response: !ruby/struct:VCR::Response
56
+ status: !ruby/struct:VCR::ResponseStatus
57
+ code: 200
58
+ message: OK
59
+ headers:
60
+ content-type:
61
+ - text/xml
62
+ server:
63
+ - Amazon SimpleDB
64
+ date:
65
+ - Wed, 13 Apr 2011 03:03:24 GMT
66
+ content-encoding:
67
+ - gzip
68
+ vary:
69
+ - Accept-Encoding
70
+ transfer-encoding:
71
+ - chunked
72
+ body: !binary |
73
+ H4sIAAAAAAAAAI2Ry07DMBBF93xFlH1ix0lKg1xXBQkEUllQwX5qu9RSY5fM
74
+ BEq/nrSIRx+LeGF5ru89Y3nkeFOvonfboAt+FGcpj8fqQt5ZmhA1bt6SxSeL
75
+ 6+DRRp3V4yheEq2vGEMzT6GGbfDwgakONTNBM8F5lfAiyUoWqxNOuyIlfxUl
76
+ H6G2auvWku1P8gVWrVWZyItSsu9Csn/+4ygY01jEk3g0BeejGfWDvNpDgBj2
77
+ yvluOww+hGXXtXa07AVAAjoi3Ex6JbWjz8PgDHx024DXDnU4y2Bnh/Ez3Kkl
78
+ MECwU95ai3RvlOVQ5oUpErPgIlloMUiGOrtMTJYPTFHwRVl1Y/rzy+uwecbu
79
+ OxVP+W5VeSWEZL/yznzc7uRZ+3v1BSzMr7iZAgAA
80
+
81
+ http_version: "1.1"
@@ -0,0 +1,42 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :post
5
+ uri: https://sdb.amazonaws.com:443/
6
+ body: Action=DomainMetadata&Signature=2lgrsvgSB1fQEamLv%2FbX6TVmIHvo5116WSGlgyche6Y%3D&Version=2009-04-15&AWSAccessKeyId=1VRWH6Y8EA9RKV7NHSR2&SignatureVersion=2&Timestamp=2011-04-13T01%3A40%3A00-07%3A00&SignatureMethod=HmacSHA256&DomainName=activity
7
+ headers:
8
+ accept:
9
+ - "*/*; q=0.5, application/xml"
10
+ content-type:
11
+ - application/x-www-form-urlencoded
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ content-length:
15
+ - "243"
16
+ response: !ruby/struct:VCR::Response
17
+ status: !ruby/struct:VCR::ResponseStatus
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ content-type:
22
+ - text/xml
23
+ server:
24
+ - Amazon SimpleDB
25
+ date:
26
+ - Wed, 13 Apr 2011 03:03:18 GMT
27
+ content-encoding:
28
+ - gzip
29
+ vary:
30
+ - Accept-Encoding
31
+ transfer-encoding:
32
+ - chunked
33
+ body: !binary |
34
+ H4sIAAAAAAAAAG2RS1ODMBhF9/6KDvuQB6/ipOlY3XShC1/7QIIyQwg2H1r7
35
+ 64XWClKyy8n57s0kfL031eJT71xp65VHfeKtxRW/s0aW9b0GqSTIR+0aWzu9
36
+ 6Nzarbx3gOYaY6cyXxp5sLX8cn5uDVY2x4yQFJEQ0Qh74jKorUDwLWhza9sa
37
+ RMjxsDnyB2m0eyoPevMN2omQnYwJ5jcAuzJrQfcHp/GY4xn63xxFsKk/G/8q
38
+ q/Y3iYWjgRGfyKMYmrDpyLjkuexKQZpG0ICwOA6SdMnxQDmef77zf5x5Tz66
39
+ aNgqEYRFGhOVIpXLDGVRmKCIFEukI6J0QrOCBQHHg883dv/i5JsWxCf9SmgS
40
+ pRz/4V6e1l3e6yiIH3OPmGBOAgAA
41
+
42
+ http_version: "1.1"
@@ -1,7 +1,5 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
- require 'typhoeus'
4
-
5
3
  describe SimplyDB::Interface do
6
4
  before do
7
5
  @interface = SimplyDB::Interface.new(
@@ -9,11 +7,7 @@ describe SimplyDB::Interface do
9
7
  :secret_key => secret_key
10
8
  )
11
9
  end
12
-
13
- def set_response_body(body)
14
- @interface.client.http_client.hydra.stub(:post, /http/).and_return(Typhoeus::Response.new(:body=>body))
15
- end
16
-
10
+
17
11
  describe "#define_attributes" do
18
12
  it "should define attributes" do
19
13
  @interface.send(:define_attributes, {'color'=>'red','size'=>'medium'}).should == {
@@ -23,7 +17,7 @@ describe SimplyDB::Interface do
23
17
  'Attribute.1.Value' => 'medium'
24
18
  }
25
19
  end
26
-
20
+
27
21
  it "should define attributes with arrays" do
28
22
  @interface.send(:define_attributes, {'color'=>['red','brick','garnet']}).should == {
29
23
  'Attribute.0.Name' => 'color',
@@ -34,15 +28,15 @@ describe SimplyDB::Interface do
34
28
  'Attribute.2.Value' => 'garnet'
35
29
  }
36
30
  end
37
-
31
+
38
32
  it "should define attributes to be replaced" do
39
33
  @interface.send(:define_attributes, {'color'=>'red'}, {}, true).should == {
40
34
  'Attribute.0.Name' => 'color',
41
35
  'Attribute.0.Value' => 'red',
42
- 'Attribute.0.Replace' => '1',
36
+ 'Attribute.0.Replace' => 'true',
43
37
  }
44
38
  end
45
-
39
+
46
40
  it "should define expected states of attributes" do
47
41
  @interface.send(:define_attributes, {}, {'quantity' => '0'}).should == {
48
42
  'Expected.0.Name' => 'quantity',
@@ -52,66 +46,55 @@ describe SimplyDB::Interface do
52
46
  end
53
47
 
54
48
  describe "successful API calls" do
55
-
56
49
  it "should set stats for a request" do
57
- set_response_body '<DeleteDomainResponse><ResponseMetadata><RequestId>c522638b-31a2-4d69-b376-8c5428744704</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></DeleteDomainResponse>'
50
+ stub_request(:post, "https://sdb.amazonaws.com/").
51
+ with(:body => 'Action=DeleteDomain&Signature=Kt8H72qUjUZah09u9PB3BiRP8vgbfXQIa44bsJYofXo%3D&Version=2009-04-15&AWSAccessKeyId=12345&SignatureVersion=2&Timestamp=2011-04-11T23%3A09%3A00-07%3A00&SignatureMethod=HmacSHA256&DomainName=MyDomain').
52
+ to_return(:status => 200, :body => '<DeleteDomainResponse><ResponseMetadata><RequestId>c522638b-31a2-4d69-b376-8c5428744704</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></DeleteDomainResponse>')
58
53
  @interface.delete_domain('MyDomain')
59
54
  @interface.request_id.should == 'c522638b-31a2-4d69-b376-8c5428744704'
60
55
  @interface.box_usage.should == 0.0000219907
61
56
  end
62
-
57
+
63
58
  # http://docs.amazonwebservices.com/AmazonSimpleDB/latest/DeveloperGuide/SDB_API_Operations.html
64
59
  describe "for attribute actions" do
65
60
  describe "#get_attributes" do
66
61
  it "should get attributes from an item" do
67
- set_response_body '<GetAttributesResponse><GetAttributesResult><Attribute><Name>Color</Name><Value>Blue</Value></Attribute><Attribute><Name>Size</Name><Value>Med</Value></Attribute><Attribute><Name>Price</Name><Value>14</Value></Attribute></GetAttributesResult><ResponseMetadata><RequestId>b1e8f1f7-42e9-494c-ad09-2674e557526d</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></GetAttributesResponse>'
68
- @interface.get_attributes('MyDomain', 'Item123') do |attributes|
69
- attributes.should == {
70
- 'Color' => 'Blue',
71
- 'Size' => 'Med',
72
- 'Price' => '14'
73
- }
74
- end
62
+ stub_request(:post, "https://sdb.amazonaws.com/").
63
+ with(:body => "Action=GetAttributes&Signature=5WfM4sn0VhO9e4CPp4ro6p94YvMLngh9m4GD0Ta0%2F7Y%3D&Version=2009-04-15&AWSAccessKeyId=12345&SignatureVersion=2&Timestamp=2011-04-11T23%3A09%3A00-07%3A00&SignatureMethod=HmacSHA256&DomainName=MyDomain&ConsistentRead=false&ItemName=Item123").
64
+ to_return(:status => 200, :body => '<GetAttributesResponse><GetAttributesResult><Attribute><Name>Color</Name><Value>Blue</Value></Attribute><Attribute><Name>Size</Name><Value>Med</Value></Attribute><Attribute><Name>Price</Name><Value>14</Value></Attribute></GetAttributesResult><ResponseMetadata><RequestId>b1e8f1f7-42e9-494c-ad09-2674e557526d</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></GetAttributesResponse>')
75
65
  @interface.get_attributes('MyDomain', 'Item123').should == {
76
66
  'Color' => 'Blue',
77
67
  'Size' => 'Med',
78
68
  'Price' => '14'
79
69
  }
80
70
  end
81
-
71
+
82
72
  it "should multiple values for an attribute" do
83
- set_response_body '<GetAttributesResponse><GetAttributesResult><Attribute><Name>Color</Name><Value>Blue</Value></Attribute><Attribute><Name>Color</Name><Value>Red</Value></Attribute><Attribute><Name>Size</Name><Value>Med</Value></Attribute><Attribute><Name>Price</Name><Value>14</Value></Attribute></GetAttributesResult><ResponseMetadata><RequestId>b1e8f1f7-42e9-494c-ad09-2674e557526d</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></GetAttributesResponse>'
84
- @interface.get_attributes('MyDomain', 'Item123') do |attributes|
85
- attributes.should == {
86
- 'Color' => ['Blue','Red'],
87
- 'Size' => 'Med',
88
- 'Price' => '14'
89
- }
90
- end
73
+ stub_request(:post, "https://sdb.amazonaws.com/").
74
+ with(:body => "Action=GetAttributes&Signature=5WfM4sn0VhO9e4CPp4ro6p94YvMLngh9m4GD0Ta0%2F7Y%3D&Version=2009-04-15&AWSAccessKeyId=12345&SignatureVersion=2&Timestamp=2011-04-11T23%3A09%3A00-07%3A00&SignatureMethod=HmacSHA256&DomainName=MyDomain&ConsistentRead=false&ItemName=Item123").
75
+ to_return(:status => 200, :body => '<GetAttributesResponse><GetAttributesResult><Attribute><Name>Color</Name><Value>Blue</Value></Attribute><Attribute><Name>Color</Name><Value>Red</Value></Attribute><Attribute><Name>Size</Name><Value>Med</Value></Attribute><Attribute><Name>Price</Name><Value>14</Value></Attribute></GetAttributesResult><ResponseMetadata><RequestId>b1e8f1f7-42e9-494c-ad09-2674e557526d</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></GetAttributesResponse>')
91
76
  @interface.get_attributes('MyDomain', 'Item123').should == {
92
77
  'Color' => ['Blue', 'Red'],
93
78
  'Size' => 'Med',
94
79
  'Price' => '14'
95
80
  }
96
81
  end
97
-
82
+
98
83
  it "should only get specific attributes" do
99
- set_response_body '<GetAttributesResponse><GetAttributesResult><Attribute><Name>Color</Name><Value>Blue</Value></Attribute><Attribute><Name>Size</Name><Value>Med</Value></GetAttributesResult><ResponseMetadata><RequestId>b1e8f1f7-42e9-494c-ad09-2674e557526d</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></GetAttributesResponse>'
100
- @interface.get_attributes('MyDomain', 'Item123', ['Color','Size']) do |attributes|
101
- attributes.should == {
102
- 'Color' => 'Blue',
103
- 'Size' => 'Med'
104
- }
105
- end
84
+ stub_request(:post, "https://sdb.amazonaws.com/").
85
+ with(:body => "Action=GetAttributes&Signature=%2BgO%2Fh7Ix7gkRO0u%2B9t%2BpOrQNldCslyItZm0EY%2F7Nz7g%3D&Version=2009-04-15&AWSAccessKeyId=12345&SignatureVersion=2&Timestamp=2011-04-11T23%3A09%3A00-07%3A00&SignatureMethod=HmacSHA256&DomainName=MyDomain&AttributeName.0=Color&AttributeName.1=Size&ConsistentRead=false&ItemName=Item123").
86
+ to_return(:status => 200, :body => '<GetAttributesResponse><GetAttributesResult><Attribute><Name>Color</Name><Value>Blue</Value></Attribute><Attribute><Name>Size</Name><Value>Med</Value></GetAttributesResult><ResponseMetadata><RequestId>b1e8f1f7-42e9-494c-ad09-2674e557526d</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></GetAttributesResponse>')
106
87
  @interface.get_attributes('MyDomain', 'Item123', ['Color','Size']).should == {
107
88
  'Color' => 'Blue',
108
89
  'Size' => 'Med'
109
90
  }
110
91
  end
111
92
  end
112
-
113
- it "should set a batch of attributes for items" do |variable|
114
- set_response_body '<BatchPutAttributesResponse><ResponseMetadata><RequestId>490206ce-8292-456c-a00f-61b335eb202b</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></BatchPutAttributesResponse>'
93
+
94
+ it "should set a batch of attributes for items" do
95
+ stub_request(:post, "https://sdb.amazonaws.com/").
96
+ with(:body => 'Item.1.ItemName=Shirt2&Item.1.Attribute.0.Name=Size&Item.0.Attribute.2.Value[]=0014.99&Item.0.Attribute.0.Value[]=Med&Signature=xcmuW5MVl8JdSQIJOxCG5Z92555ickp9sM1TZFwgUk4%3D&Version=2009-04-15&Item.0.Attribute.1.Value[]=Blue&Item.0.Attribute.0.Name=Size&AWSAccessKeyId=12345&Item.1.Attribute.1.Value[]=Red&Item.0.ItemName=Shirt1&ActionName=BatchPutAttributes&SignatureVersion=2&Timestamp=2011-04-11T23%3A09%3A00-07%3A00&Item.1.Attribute.2.Value[]=0019.99&SignatureMethod=HmacSHA256&Item.1.Attribute.2.Name=Price&Item.1.Attribute.1.Name=Color&Item.0.Attribute.2.Name=Price&Item.0.Attribute.1.Name=Color&DomainName=MyDomain&Item.1.Attribute.0.Value[]=Large').
97
+ to_return(:status => 200, :body => '<BatchPutAttributesResponse><ResponseMetadata><RequestId>490206ce-8292-456c-a00f-61b335eb202b</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></BatchPutAttributesResponse>')
115
98
  @interface.batch_put_attributes('MyDomain',{
116
99
  'Shirt1' => {
117
100
  'Color' => 'Blue',
@@ -139,75 +122,76 @@ describe SimplyDB::Interface do
139
122
  }
140
123
  }).should == true
141
124
  end
142
-
125
+
143
126
  it "should be able to perform a select query" do
144
- set_response_body '<SelectResponse><SelectResult><Item><Name>Item_03</Name><Attribute><Name>Category</Name><Value>Clothes</Value></Attribute><Attribute><Name>Subcategory</Name><Value>Pants</Value></Attribute><Attribute><Name>Name</Name><Value>Sweatpants</Value></Attribute><Attribute><Name>Color</Name><Value>Blue</Value></Attribute><Attribute><Name>Color</Name><Value>Yellow</Value></Attribute><Attribute><Name>Color</Name><Value>Pink</Value></Attribute><Attribute><Name>Size</Name><Value>Large</Value></Attribute></Item><Item><Name>Item_06</Name><Attribute><Name>Category</Name><Value>Motorcycle Parts</Value></Attribute><Attribute><Name>Subcategory</Name><Value>Bodywork</Value></Attribute><Attribute><Name>Name</Name><Value>Fender Eliminator</Value></Attribute><Attribute><Name>Color</Name><Value>Blue</Value></Attribute><Attribute><Name>Make</Name><Value>Yamaha</Value></Attribute><Attribute><Name>Model</Name><Value>R1</Value></Attribute></Item></SelectResult><ResponseMetadata><RequestId>b1e8f1f7-42e9-494c-ad09-2674e557526d</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></SelectResponse>'
145
- @interface.select("select Color from MyDomain where Color like 'Blue%'") do |items|
146
- items.should == {
147
- 'Item_03' => {
148
- 'Category' => 'Clothes',
149
- 'Subcategory' => 'Pants',
150
- 'Name' => 'Sweatpants',
151
- 'Color' => ['Blue','Yellow','Pink'],
152
- 'Size' => 'Large'
153
- },
154
- 'Item_06' => {
155
- 'Category' => 'Motorcycle Parts',
156
- 'Subcategory' => 'Bodywork',
157
- 'Name' => 'Fender Eliminator',
158
- 'Color' => 'Blue',
159
- 'Make' => 'Yamaha',
160
- 'Model' => 'R1'
161
- }
162
- }
163
- end
127
+ stub_request(:post, "https://sdb.amazonaws.com/").
128
+ with(:body => 'Action=Select&Signature=o%2BGcUfU%2BGkNpiAuibSfNnMyYQ2zENrqqCtRcDRW9cZo%3D&Version=2009-04-15&AWSAccessKeyId=12345&SignatureVersion=2&Timestamp=2011-04-11T23%3A09%3A00-07%3A00&SignatureMethod=HmacSHA256&SelectExpression=select%20Color%20from%20MyDomain%20where%20Color%20like%20\'Blue%25\'&ConsistentRead=false').
129
+ to_return(:status => 200, :body => '<SelectResponse><SelectResult><Item><Name>Item_03</Name><Attribute><Name>Category</Name><Value>Clothes</Value></Attribute><Attribute><Name>Subcategory</Name><Value>Pants</Value></Attribute><Attribute><Name>Name</Name><Value>Sweatpants</Value></Attribute><Attribute><Name>Color</Name><Value>Blue</Value></Attribute><Attribute><Name>Color</Name><Value>Yellow</Value></Attribute><Attribute><Name>Color</Name><Value>Pink</Value></Attribute><Attribute><Name>Size</Name><Value>Large</Value></Attribute></Item><Item><Name>Item_06</Name><Attribute><Name>Category</Name><Value>Motorcycle Parts</Value></Attribute><Attribute><Name>Subcategory</Name><Value>Bodywork</Value></Attribute><Attribute><Name>Name</Name><Value>Fender Eliminator</Value></Attribute><Attribute><Name>Color</Name><Value>Blue</Value></Attribute><Attribute><Name>Make</Name><Value>Yamaha</Value></Attribute><Attribute><Name>Model</Name><Value>R1</Value></Attribute></Item></SelectResult><ResponseMetadata><RequestId>b1e8f1f7-42e9-494c-ad09-2674e557526d</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></SelectResponse>')
130
+ @interface.select("select Color from MyDomain where Color like 'Blue%'").should == [
131
+ {
132
+ 'Item_03' => {
133
+ 'Category' => 'Clothes',
134
+ 'Subcategory' => 'Pants',
135
+ 'Name' => 'Sweatpants',
136
+ 'Color' => ['Blue','Yellow','Pink'],
137
+ 'Size' => 'Large'
138
+ }
139
+ },
140
+ {
141
+ 'Item_06' => {
142
+ 'Category' => 'Motorcycle Parts',
143
+ 'Subcategory' => 'Bodywork',
144
+ 'Name' => 'Fender Eliminator',
145
+ 'Color' => 'Blue',
146
+ 'Make' => 'Yamaha',
147
+ 'Model' => 'R1'
148
+ }
149
+ }
150
+ ]
164
151
  end
165
-
152
+
166
153
  it "should delete attributes from an item" do
167
- set_response_body '<DeleteAttributesResponse><ResponseMetadata><RequestId>05ae667c-cfac-41a8-ab37-a9c897c4c3ca</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></DeleteAttributesResponse>'
168
- @interface.delete_attributes('MyDomain', 'JumboFez', {'color'=>['red','brick','garnet']}) do |success|
169
- success.should == true
170
- end
154
+ stub_request(:post, "https://sdb.amazonaws.com/").
155
+ with(:body => "Action=DeleteAttributes&Signature=y0TiZtiCw43FcSq6gS6WzhEIgBELLm9zzX7dlNYlQn4%3D&Version=2009-04-15&AWSAccessKeyId=12345&Attribute.2.Value=garnet&Attribute.0.Value=red&SignatureVersion=2&Timestamp=2011-04-11T23%3A09%3A00-07%3A00&Attribute.1.Value=brick&SignatureMethod=HmacSHA256&Attribute.2.Name=color&Attribute.1.Name=color&Attribute.0.Name=color&DomainName=MyDomain&ItemName=JumboFez").
156
+ to_return(:status => 200, :body => '<DeleteAttributesResponse><ResponseMetadata><RequestId>05ae667c-cfac-41a8-ab37-a9c897c4c3ca</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></DeleteAttributesResponse>')
171
157
  @interface.delete_attributes('MyDomain', 'JumboFez', {'color'=>['red','brick','garnet']}).should == true
172
158
  end
173
-
159
+
174
160
  it "should be able to put attribues on an item" do
175
- set_response_body '<PutAttributesResponse><ResponseMetadata><RequestId>490206ce-8292-456c-a00f-61b335eb202b</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></PutAttributesResponse>'
176
- @interface.put_attributes('MyDomain', 'Item123', {'color'=>['red','brick','garnet']}) do |success|
177
- success.should == true
178
- end
161
+ stub_request(:post, "https://sdb.amazonaws.com/").
162
+ with(:body => "Action=PutAttributes&Signature=mTCSIWRwZiOY%2BeXLMdp9962OCSwf6Z0slBzG2caFGBM%3D&Version=2009-04-15&AWSAccessKeyId=12345&Attribute.2.Value=garnet&Attribute.0.Value=red&SignatureVersion=2&Timestamp=2011-04-11T23%3A09%3A00-07%3A00&Attribute.1.Value=brick&SignatureMethod=HmacSHA256&Attribute.2.Name=color&Attribute.1.Name=color&Attribute.0.Name=color&DomainName=MyDomain&ItemName=Item123").
163
+ to_return(:status => 200, :body => '<PutAttributesResponse><ResponseMetadata><RequestId>490206ce-8292-456c-a00f-61b335eb202b</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></PutAttributesResponse>')
179
164
  @interface.put_attributes('MyDomain', 'Item123', {'color'=>['red','brick','garnet']}).should == true
180
165
  end
181
166
  end
167
+
182
168
  describe "for domain actions" do
183
169
  it "should be able to create a domain" do
184
- set_response_body '<CreateDomainResponse><ResponseMetadata><RequestId>2a1305a2-ed1c-43fc-b7c4-e6966b5e2727</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></CreateDomainResponse>'
185
- @interface.create_domain('MyDomain') do |success|
186
- success.should == true
187
- end
170
+ stub_request(:post, "https://sdb.amazonaws.com/").
171
+ with(:body => "Action=CreateDomain&Signature=0Fwo7xWpFycQe1UHhGG4gXIZPPhtBLzTPRh7S4fzD%2BY%3D&Version=2009-04-15&AWSAccessKeyId=12345&SignatureVersion=2&Timestamp=2011-04-11T23%3A09%3A00-07%3A00&SignatureMethod=HmacSHA256&DomainName=MyDomain").
172
+ to_return(:status => 200, :body => '<CreateDomainResponse><ResponseMetadata><RequestId>2a1305a2-ed1c-43fc-b7c4-e6966b5e2727</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></CreateDomainResponse>')
188
173
  @interface.create_domain('MyDomain').should == true
189
174
  end
190
-
175
+
191
176
  it "should be able to delete a domain" do
192
- set_response_body '<DeleteDomainResponse><ResponseMetadata><RequestId>c522638b-31a2-4d69-b376-8c5428744704</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></DeleteDomainResponse>'
193
- @interface.delete_domain('MyDomain') do |success|
194
- success.should == true
195
- end
177
+ stub_request(:post, "https://sdb.amazonaws.com/").
178
+ with(:body => "Action=DeleteDomain&Signature=Kt8H72qUjUZah09u9PB3BiRP8vgbfXQIa44bsJYofXo%3D&Version=2009-04-15&AWSAccessKeyId=12345&SignatureVersion=2&Timestamp=2011-04-11T23%3A09%3A00-07%3A00&SignatureMethod=HmacSHA256&DomainName=MyDomain").
179
+ to_return(:status => 200, :body => '<DeleteDomainResponse><ResponseMetadata><RequestId>c522638b-31a2-4d69-b376-8c5428744704</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></DeleteDomainResponse>')
196
180
  @interface.delete_domain('MyDomain').should == true
197
181
  end
198
-
182
+
199
183
  it "should be able to list domains" do
200
- set_response_body '<ListDomainsResponse><ListDomainsResult><DomainName>Domain1-200706011651</DomainName><DomainName>Domain2-200706011652</DomainName><NextToken>TWV0ZXJpbmdUZXN0RG9tYWluMS0yMDA3MDYwMTE2NTY=</NextToken></ListDomainsResult><ResponseMetadata><RequestId>eb13162f-1b95-4511-8b12-489b86acfd28</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></ListDomainsResponse>'
201
- @interface.list_domains do |domains|
202
- domains.should == ['Domain1-200706011651','Domain2-200706011652']
203
- end
184
+ stub_request(:post, "https://sdb.amazonaws.com/").
185
+ with(:body => "Action=ListDomains&Signature=w2JjcUfj59tQ%2FmCyYPKDAviOaXg6WLP2Yt%2Ft9xeoTVw%3D&Version=2009-04-15&AWSAccessKeyId=12345&SignatureVersion=2&Timestamp=2011-04-11T23%3A09%3A00-07%3A00&SignatureMethod=HmacSHA256").
186
+ to_return(:status => 200, :body => '<ListDomainsResponse><ListDomainsResult><DomainName>Domain1-200706011651</DomainName><DomainName>Domain2-200706011652</DomainName><NextToken>TWV0ZXJpbmdUZXN0RG9tYWluMS0yMDA3MDYwMTE2NTY=</NextToken></ListDomainsResult><ResponseMetadata><RequestId>eb13162f-1b95-4511-8b12-489b86acfd28</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></ListDomainsResponse>')
204
187
  @interface.list_domains.should == ['Domain1-200706011651','Domain2-200706011652']
205
188
  end
206
-
189
+
207
190
  it "should be able to get the metadeta for a domain" do
208
- set_response_body '<DomainMetadataResponse xmlns="http://sdb.amazonaws.com/doc/2009-04-15/"><DomainMetadataResult><ItemCount>195078</ItemCount><ItemNamesSizeBytes>2586634</ItemNamesSizeBytes><AttributeNameCount >12</AttributeNameCount ><AttributeNamesSizeBytes>120</AttributeNamesSizeBytes><AttributeValueCount>3690416</AttributeValueCount><AttributeValuesSizeBytes>50149756</AttributeValuesSizeBytes><Timestamp>1225486466</Timestamp></DomainMetadataResult><ResponseMetadata><RequestId>b1e8f1f7-42e9-494c-ad09-2674e557526d</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></DomainMetadataResponse>'
209
- @interface.domain_metadata('Test') do |attributes|
210
- attributes.should == {
191
+ stub_request(:post, "https://sdb.amazonaws.com/").
192
+ with(:body => "Action=DomainMetadata&Signature=ds9yJy3XI8FtUmk10LoqBs%2BqDCPAS%2FWpgjvtrWe%2BdYA%3D&Version=2009-04-15&AWSAccessKeyId=12345&SignatureVersion=2&Timestamp=2011-04-11T23%3A09%3A00-07%3A00&SignatureMethod=HmacSHA256&DomainName=Test").
193
+ to_return(:status => 200, :body => '<DomainMetadataResponse xmlns="http://sdb.amazonaws.com/doc/2009-04-15/"><DomainMetadataResult><ItemCount>195078</ItemCount><ItemNamesSizeBytes>2586634</ItemNamesSizeBytes><AttributeNameCount >12</AttributeNameCount ><AttributeNamesSizeBytes>120</AttributeNamesSizeBytes><AttributeValueCount>3690416</AttributeValueCount><AttributeValuesSizeBytes>50149756</AttributeValuesSizeBytes><Timestamp>1225486466</Timestamp></DomainMetadataResult><ResponseMetadata><RequestId>b1e8f1f7-42e9-494c-ad09-2674e557526d</RequestId><BoxUsage>0.0000219907</BoxUsage></ResponseMetadata></DomainMetadataResponse>')
194
+ @interface.domain_metadata('Test').should == {
211
195
  'ItemCount' => '195078',
212
196
  'ItemNamesSizeBytes' => '2586634',
213
197
  'AttributeNameCount' => '12',
@@ -216,7 +200,6 @@ describe SimplyDB::Interface do
216
200
  'AttributeValuesSizeBytes' => '50149756',
217
201
  'Timestamp' => '1225486466'
218
202
  }
219
- end
220
203
  end
221
204
  end
222
205
  end