summaryrefslogtreecommitdiff
path: root/test/integration
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-11-21 15:56:27 -0700
committermo khan <mo.khan@gmail.com>2020-11-21 15:56:27 -0700
commit18992015e4275cc5f390ebd84ed416b38b87feae (patch)
tree1403e7f0e9eccf4c454c2e6527bee6986e1d6b27 /test/integration
parent41be8454a0e737e4a032a527d6fa91f118bcc40f (diff)
test: rename dir from unit to integration
Diffstat (limited to 'test/integration')
-rw-r--r--test/integration/data_storage_server_test.rb54
1 files changed, 54 insertions, 0 deletions
diff --git a/test/integration/data_storage_server_test.rb b/test/integration/data_storage_server_test.rb
new file mode 100644
index 0000000..ab814ad
--- /dev/null
+++ b/test/integration/data_storage_server_test.rb
@@ -0,0 +1,54 @@
+class DataStorageServerTest < Minitest::Test
+ include Rack::Test::Methods
+
+ def app
+ DataStorageServer.new
+ end
+
+ def test_put
+ put '/data/foo', 'some object'
+ result = JSON.parse(last_response.body)
+
+ assert_equal 201, last_response.status
+ assert_equal 11, result["size"]
+ assert result["oid"].is_a?(String)
+ assert result["oid"].length > 0
+ end
+
+ def test_get
+ put '/data/foo', 'some object'
+ res1 = JSON.parse(last_response.body)
+
+ put '/data/foo', 'other object'
+ res2 = JSON.parse(last_response.body)
+
+ refute_equal res1["oid"], res2["oid"]
+
+ get "/data/foo/#{res1["oid"]}"
+ assert_equal 'some object', last_response.body
+
+ get "/data/foo/#{res2["oid"]}"
+ assert_equal 'other object', last_response.body
+ end
+
+ def test_get_not_found
+ get '/data/foo/noooope'
+ assert_equal 404, last_response.status
+ end
+
+ def test_delete
+ put '/data/foo', 'some object'
+ res = JSON.parse(last_response.body)
+
+ delete "/data/foo/#{res["oid"]}"
+ assert_equal 200, last_response.status
+
+ get "/data/foo/#{res["oid"]}"
+ assert_equal 404, last_response.status
+ end
+
+ def test_delete_nonexistant_object
+ delete "/data/foo/nooope"
+ assert_equal 404, last_response.status
+ end
+end