summaryrefslogtreecommitdiff
path: root/test/test.rb
blob: 5c4b2e7d7c80a17c283e0d79132ac0871b995a89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
require 'application'
require 'test/unit'
require 'rack/test'

set :environment, :test
@@redis.flush_db

class DatasetsTest < Test::Unit::TestCase
  include Rack::Test::Methods

  def app
    Sinatra::Application
  end

	def test_index
		get '/'
		assert last_response.ok?
	end

	def test_create_dataset
		post '/', :name => "Test dataset"
		assert last_response.ok?
		uri = last_response.body.chomp
		assert_equal "http://example.org/Test_dataset", uri
		get uri
		assert last_response.ok?
		delete "/Test_dataset"
		assert last_response.ok?
		get "/Test_dataset"
		assert !last_response.ok?
	end

	def test_create_dataset_and_insert_data
		name = "Test dataset"
		smiles = '[O-][N+](=O)C/C=C\C(=O)Cc1cc(C#N)ccc1'
		compound_uri = OpenTox::Compound.new(:smiles => smiles).uri
		feature_uri = OpenTox::Feature.new(:name => name, :values => {:classification => "true"}).uri
		post '/', :name => name
		assert last_response.ok?
		uri = last_response.body.chomp
		get uri
		assert last_response.ok?
    assert last_response.body.include?("Test_dataset")
		put uri, :compound_uri => compound_uri, :feature_uri => feature_uri
		assert last_response.ok?
		get uri + '/compounds'
		assert last_response.ok?
		assert_equal compound_uri, last_response.body
		get uri + '/features'
		assert last_response.ok?
    assert last_response.body.include?("true")
		assert_equal feature_uri, last_response.body
		get uri + '/' + compound_uri + '/features'
		assert last_response.ok?
    assert last_response.body.include?("true")
		assert_equal feature_uri, last_response.body
		delete uri
		assert last_response.ok?
		get "/Test_dataset"
		assert !last_response.ok?
	end

	def test_create_dataset_from_csv
		smiles = 'CC(=O)Nc1scc(n1)c1ccc(o1)[N+](=O)[O-]'
		compound_uri = OpenTox::Compound.new(:smiles => smiles).uri
		post '/', :name => "Hamster Carcinogenicity", :file => Rack::Test::UploadedFile.new(File.join(File.dirname(__FILE__), "hamster_carcinogenicity.csv"))
		uri = last_response.body
		get uri
		assert last_response.ok?
		get uri + '/compounds'
		assert last_response.ok?
		assert last_response.body.include?(compound_uri)
		get uri + '/' + compound_uri + '/features'
		assert last_response.ok?
    assert last_response.body.include?("Hamster%20Carcinogenicity/classification/true")
		delete uri
		assert last_response.ok?
		get uri
		assert !last_response.ok?
	end

=begin
	def test_create_large_dataset_from_csv
		post '/', :name => "Salmonella Mutagenicity", :file => Rack::Test::UploadedFile.new(File.join(File.dirname(__FILE__), "kazius.csv"))
		uri = last_response.body
		get uri
		assert last_response.ok?
	end

	def test_unauthorized_create
		post '/', :name => "Test dataset"
		assert !last_response.ok?
	end
=end

end