summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-11-21 15:45:48 -0700
committermo khan <mo.khan@gmail.com>2020-11-21 15:45:48 -0700
commit0e1c311754b5ba477f5afef688d2f58d982dc1f6 (patch)
treeadc700545c4543756ff05464933f3a2ebfb8fb8b /test
parent1c288926fdbb649601822120411cfd019cde9a24 (diff)
refactor: move test.rb to test/unit/
Diffstat (limited to 'test')
-rw-r--r--test/unit/data_storage_server_test.rb58
1 files changed, 58 insertions, 0 deletions
diff --git a/test/unit/data_storage_server_test.rb b/test/unit/data_storage_server_test.rb
new file mode 100644
index 0000000..8ef44d7
--- /dev/null
+++ b/test/unit/data_storage_server_test.rb
@@ -0,0 +1,58 @@
+require 'minitest/autorun'
+require 'rack/test'
+require 'server'
+
+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