simplydb 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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