spec/models/simi_check_webservice_spec.rb
xdescribe "SimiCheckWebservice" do
def poll(comp_id)
is_success = false
until is_success
begin
response = SimiCheckWebService.get_similarity_nxn(comp_id)
is_success = (response.code == 200)
rescue StandardError
sleep(2)
next
end
end
end
describe ".get_all_comparisons" do
context "any time called" do
it "returns a response with code 200 and body containing all comparisons" do
response = SimiCheckWebService.all_comparisons
json_response = JSON.parse(response.body)
expect(response.code).to eql(200)
expect(json_response["comparisons"]).to be_truthy
end
end
end
describe ".new_comparison" do
context "called with a comparison_name" do
it "returns a response with code 200, and body containing the name and new id for this comparison" do
response = SimiCheckWebService.new_comparison('test new comparison')
json_response = JSON.parse(response.body)
comp_id = json_response["id"]
expect(response.code).to eql(200)
expect(json_response["id"]).to be_truthy
SimiCheckWebService.delete_comparison(comp_id)
end
end
end
describe ".delete_comparison" do
context "called with a comparison id" do
it "returns a response with code 200" do
response = SimiCheckWebService.new_comparison('test new comparison')
json_response = JSON.parse(response.body)
comp_id = json_response["id"]
response = SimiCheckWebService.delete_comparison(comp_id)
expect(response.code).to eql(200)
end
end
end
describe ".get_comparison_details" do
context "called with a comparison id" do
it "returns a response with code 200 and body containing info about the comparison" do
response = SimiCheckWebService.new_comparison('test new comparison')
json_response = JSON.parse(response.body)
comp_id = json_response["id"]
response = SimiCheckWebService.get_comparison_details(comp_id)
json_response = JSON.parse(response.body)
expect(response.code).to eql(200)
expect(json_response["name"]).to be_truthy
SimiCheckWebService.delete_comparison(comp_id)
end
end
end
describe ".update_comparison" do
context "called with a new comparison name" do
it "returns a response with code 200 and body containing info about the comparison" do
response = SimiCheckWebService.new_comparison('test new comparison')
json_response = JSON.parse(response.body)
comp_id = json_response["id"]
response = SimiCheckWebService.update_comparison(comp_id, 'updated name')
expect(response.code).to eql(200)
SimiCheckWebService.delete_comparison(comp_id)
end
end
end
describe ".upload_file" do
context "called with a comparison id and filepath" do
it "returns a response with code 200 and body containing info about the file" do
response = SimiCheckWebService.new_comparison('test new comparison')
json_response = JSON.parse(response.body)
comp_id = json_response["id"]
test_upload_text = 'This is some sample text.'
filepath = '/tmp/test_upload.txt'
File.open(filepath, "w") {|file| file.write(test_upload_text) }
response = SimiCheckWebService.upload_file(comp_id, filepath)
File.delete(filepath) if File.exist?(filepath)
expect(response.code).to eql(200)
expect(json_response["id"]).to be_truthy
SimiCheckWebService.delete_comparison(comp_id)
end
end
end
describe ".delete_files" do
context "called with a comparison id and filenames to delete" do
it "returns a response with code 200" do
response = SimiCheckWebService.new_comparison('test new comparison')
json_response = JSON.parse(response.body)
comp_id = json_response["id"]
test_upload_text = 'This is some sample text.'
filename = 'test_upload.txt'
filepath = '/tmp/test_upload.txt'
File.open(filepath, "w") {|file| file.write(test_upload_text) }
SimiCheckWebService.upload_file(comp_id, filepath)
File.delete(filepath) if File.exist?(filepath)
response = SimiCheckWebService.delete_files(comp_id, [filename])
expect(response.code).to eql(200)
SimiCheckWebService.delete_comparison(comp_id)
end
end
end
describe ".get_similarity_nxn" do
context "called with a comparison id" do
it "returns a response with code 200 and body containing info about the results" do
response = SimiCheckWebService.new_comparison('test new comparison')
json_response = JSON.parse(response.body)
comp_id = json_response["id"]
test_upload_text = 'This is some sample text.'
filepath = '/tmp/test_upload.txt'
File.open(filepath, "w") {|file| file.write(test_upload_text) }
SimiCheckWebService.upload_file(comp_id, filepath)
File.delete(filepath) if File.exist?(filepath)
test_upload_text = 'This is some more sample text.'
filepath = '/tmp/test_upload2.txt'
File.open(filepath, "w") {|file| file.write(test_upload_text) }
SimiCheckWebService.upload_file(comp_id, filepath)
File.delete(filepath) if File.exist?(filepath)
SimiCheckWebService.post_similarity_nxn(comp_id)
poll(comp_id)
response = SimiCheckWebService.get_similarity_nxn(comp_id)
expect(response.code).to eql(200)
json_response = JSON.parse(response.body)
expect(json_response["similarities"]).to be_truthy
SimiCheckWebService.delete_comparison(comp_id)
end
end
end
describe ".visualize_similarity" do
context "called with a comparison id" do
it "returns a response with code 200 and body containing the visualize url path" do
response = SimiCheckWebService.new_comparison('test new comparison')
json_response = JSON.parse(response.body)
comp_id = json_response["id"]
test_upload_text = 'This is some sample text.'
filepath = '/tmp/test_upload.txt'
File.open(filepath, "w") {|file| file.write(test_upload_text) }
SimiCheckWebService.upload_file(comp_id, filepath)
File.delete(filepath) if File.exist?(filepath)
test_upload_text = 'This is some more sample text.'
filepath = '/tmp/test_upload2.txt'
File.open(filepath, "w") {|file| file.write(test_upload_text) }
SimiCheckWebService.upload_file(comp_id, filepath)
File.delete(filepath) if File.exist?(filepath)
SimiCheckWebService.post_similarity_nxn(comp_id)
poll(comp_id)
response = SimiCheckWebService.visualize_similarity(comp_id)
expect(response.code).to eql(200)
expect(response.body).to be_truthy
SimiCheckWebService.delete_comparison(comp_id)
end
end
end
describe ".visualize_comparison" do
context "called with a comparison id and two filenames" do
it "returns a response with code 200 and body containing the visualize url path" do
response = SimiCheckWebService.new_comparison('test new comparison')
json_response = JSON.parse(response.body)
comp_id = json_response["id"]
test_upload_text = 'This is some sample text.'
filepath = '/tmp/test_upload.txt'
File.open(filepath, "w") {|file| file.write(test_upload_text) }
file1_id = JSON.parse(SimiCheckWebService.upload_file(comp_id, filepath).body)["id"]
File.delete(filepath) if File.exist?(filepath)
test_upload_text = 'This is some more sample text.'
filepath = '/tmp/test_upload2.txt'
File.open(filepath, "w") {|file| file.write(test_upload_text) }
file2_id = JSON.parse(SimiCheckWebService.upload_file(comp_id, filepath).body)["id"]
File.delete(filepath) if File.exist?(filepath)
SimiCheckWebService.post_similarity_nxn(comp_id)
poll(comp_id)
response = SimiCheckWebService.visualize_comparison(comp_id, file1_id, file2_id)
expect(response.code).to eql(200)
expect(response.body).to be_truthy
SimiCheckWebService.delete_comparison(comp_id)
end
end
end
end