apidae 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
2
+
3
+ one:
4
+ status: MyString
5
+ oneshot: false
6
+ reset: false
7
+ file_url: MyString
8
+ project_id: 1
9
+
10
+ two:
11
+ status: MyString
12
+ oneshot: false
13
+ reset: false
14
+ file_url: MyString
15
+ project_id: 1
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ module Apidae
4
+ class ExportTest < ActiveSupport::TestCase
5
+ # test "the truth" do
6
+ # assert true
7
+ # end
8
+ end
9
+ end
@@ -2,8 +2,87 @@ require 'test_helper'
2
2
 
3
3
  module Apidae
4
4
  class FileImportTest < ActiveSupport::TestCase
5
- # test "the truth" do
6
- # assert true
7
- # end
8
- end
5
+ setup do
6
+ Apidae::Object.delete_all
7
+ Apidae::Selection.delete_all
8
+ @result = {created: 0, updated: 0, deleted: 0, selections: []}
9
+ end
10
+
11
+ test "new object insertion" do
12
+ objects_json = File.read('test/data/structure.json')
13
+ FileImport.add_or_update_objects(objects_json, @result)
14
+ assert_equal 1, Apidae::Object.count
15
+ new_obj = Apidae::Object.first
16
+ assert_equal 504, new_obj.apidae_id
17
+ assert_equal({created: 1, updated: 0, deleted: 0, selections: []}, @result)
18
+ end
19
+
20
+ test "existing object update" do
21
+ Apidae::Object.create(apidae_id: 504, title: 'Société des contrebassistes aixois')
22
+ objects_json = File.read('test/data/structure.json')
23
+ FileImport.add_or_update_objects(objects_json, @result)
24
+ assert_equal 1, Apidae::Object.count
25
+ updated_obj = Apidae::Object.first
26
+ assert_equal 504, updated_obj.apidae_id
27
+ assert_equal 'Société des accordéonistes aixois', updated_obj.title
28
+ assert_equal({created: 0, updated: 1, deleted: 0, selections: []}, @result)
29
+ end
30
+
31
+ test "existing object deletion" do
32
+ Apidae::Object.create(apidae_id: 504, title: 'Société des contrebassistes aixois')
33
+ objects_json = File.read('test/data/deletion.json')
34
+ FileImport.delete_objects(objects_json, @result)
35
+ assert_equal 0, Apidae::Object.count
36
+ assert_equal({created: 0, updated: 0, deleted: 1, selections: []}, @result)
37
+ end
38
+
39
+ test "new selection insertion" do
40
+ Apidae::Object.create(apidae_id: 504, title: 'Société des contrebassistes aixois')
41
+ objects_json = File.read('test/data/selections.json')
42
+ FileImport.add_or_update_selections(objects_json, @result)
43
+ assert_equal 1, Apidae::Selection.count
44
+ new_sel = Apidae::Selection.first
45
+ assert_equal 49063, new_sel.apidae_id
46
+ assert_equal 'Sélection 1', new_sel.label
47
+ assert_equal 'selection-1', new_sel.reference
48
+ assert_equal({created: 0, updated: 0, deleted: 0,
49
+ selections: [{apidae_id: 49063, reference: 'selection-1', objects: 1}]}, @result)
50
+ end
51
+
52
+ test "existing selection update" do
53
+ obj = Apidae::Object.create(apidae_id: 503, title: 'Société des contrebassistes aixois')
54
+ Apidae::Object.create(apidae_id: 504, title: 'Société des contrebassistes aixois')
55
+ sel = Apidae::Selection.create(apidae_id: 49063, label: 'Sélection 2', reference: 'selection-2')
56
+ sel.objects << obj
57
+ assert_equal 1, sel.objects.count
58
+ objects_json = File.read('test/data/update_selections.json')
59
+ FileImport.add_or_update_selections(objects_json, @result)
60
+ assert_equal 1, Apidae::Selection.count
61
+ assert_equal 49063, sel.apidae_id
62
+ assert_equal 'Sélection 2', sel.label
63
+ assert_equal 'selection-2', sel.reference
64
+ assert_equal({created: 0, updated: 0, deleted: 0,
65
+ selections: [{apidae_id: 49063, reference: 'selection-2', objects: 2}]}, @result)
66
+ end
67
+
68
+ test "existing selection deletion" do
69
+ Apidae::Selection.create(apidae_id: 49063, label: 'Sélection 3', reference: 'selection-3')
70
+ objects_json = File.read('test/data/delete_selections.json')
71
+ assert_equal 1, Apidae::Selection.count
72
+ FileImport.add_or_update_selections(objects_json, @result)
73
+ assert_equal 0, Apidae::Selection.count
74
+ end
75
+
76
+ test "full import process" do
77
+ Apidae::Object.create(apidae_id: 123, title: 'Objet à supprimer')
78
+ Apidae::Object.create(apidae_id: 4826186, title: 'Objet à mettre à jour')
79
+ result = FileImport.import('test/data/json_export.zip')
80
+ assert_equal 2, Apidae::Selection.all.count
81
+ assert_equal 5, Apidae::Object.all.count
82
+ assert_equal({created: 4, updated: 1, deleted: 1, selections: [
83
+ {apidae_id: 49063, reference: 'selection-1', objects: 2},
84
+ {apidae_id: 49073, reference: 'selection-2', objects: 3}
85
+ ]}, result)
86
+ end
87
+ end
9
88
  end
data/test/test_helper.rb CHANGED
@@ -17,5 +17,6 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
17
17
  if ActiveSupport::TestCase.respond_to?(:fixture_path=)
18
18
  ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
19
19
  ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
20
- ActiveSupport::TestCase.fixtures :all
20
+ # ActiveSupport::TestCase.fixtures :all
21
+ ActiveSupport::TestCase.fixtures []
21
22
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apidae
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Baptiste Vilain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-30 00:00:00.000000000 Z
11
+ date: 2017-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.20'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubyzip
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.0.0
55
69
  description: To be completed
56
70
  email:
57
71
  - jbvilain@gmail.com
@@ -62,19 +76,27 @@ files:
62
76
  - MIT-LICENSE
63
77
  - README.rdoc
64
78
  - Rakefile
79
+ - app/assets/images/apidae/logo-apidae-grey.svg
65
80
  - app/assets/javascripts/apidae/application.js
66
81
  - app/assets/stylesheets/apidae/application.css
67
82
  - app/controllers/apidae/application_controller.rb
83
+ - app/controllers/apidae/dashboard_controller.rb
84
+ - app/controllers/apidae/import_controller.rb
68
85
  - app/controllers/apidae/objects_controller.rb
69
86
  - app/controllers/apidae/selections_controller.rb
70
87
  - app/helpers/apidae/application_helper.rb
88
+ - app/helpers/apidae/dashboard_helper.rb
89
+ - app/helpers/apidae/import_helper.rb
71
90
  - app/helpers/apidae/objects_helper.rb
72
91
  - app/helpers/apidae/selections_helper.rb
73
92
  - app/models/apidae/attached_file.rb
93
+ - app/models/apidae/export.rb
74
94
  - app/models/apidae/file_import.rb
75
95
  - app/models/apidae/object.rb
76
96
  - app/models/apidae/selection.rb
77
97
  - app/models/apidae/town.rb
98
+ - app/views/apidae/dashboard/index.html.erb
99
+ - app/views/apidae/import/callback.html.erb
78
100
  - app/views/apidae/objects/_form.html.erb
79
101
  - app/views/apidae/objects/edit.html.erb
80
102
  - app/views/apidae/objects/index.html.erb
@@ -97,13 +119,22 @@ files:
97
119
  - db/migrate/20170513205932_rename_objects_selections_table.rb
98
120
  - db/migrate/20170720161134_add_entity_data_to_objects.rb
99
121
  - db/migrate/20170730102424_create_apidae_file_imports.rb
122
+ - db/migrate/20171025075304_create_apidae_exports.rb
100
123
  - lib/apidae.rb
101
124
  - lib/apidae/engine.rb
102
125
  - lib/apidae/version.rb
103
126
  - lib/tasks/apidae_tasks.rake
104
127
  - test/apidae_test.rb
128
+ - test/controllers/apidae/dashboard_controller_test.rb
129
+ - test/controllers/apidae/import_controller_test.rb
105
130
  - test/controllers/apidae/objects_controller_test.rb
106
131
  - test/controllers/apidae/selections_controller_test.rb
132
+ - test/data/delete_selections.json
133
+ - test/data/deletion.json
134
+ - test/data/json_export.zip
135
+ - test/data/selections.json
136
+ - test/data/structure.json
137
+ - test/data/update_selections.json
107
138
  - test/dummy/README.rdoc
108
139
  - test/dummy/Rakefile
109
140
  - test/dummy/app/assets/javascripts/application.js
@@ -143,11 +174,13 @@ files:
143
174
  - test/dummy/public/500.html
144
175
  - test/dummy/public/favicon.ico
145
176
  - test/fixtures/apidae/attached_files.yml
177
+ - test/fixtures/apidae/exports.yml
146
178
  - test/fixtures/apidae/objects.yml
147
179
  - test/fixtures/apidae/selections.yml
148
180
  - test/fixtures/apidae/towns.yml
149
181
  - test/integration/navigation_test.rb
150
182
  - test/models/apidae/attached_file_test.rb
183
+ - test/models/apidae/export_test.rb
151
184
  - test/models/apidae/file_import_test.rb
152
185
  - test/models/apidae/object_test.rb
153
186
  - test/models/apidae/selection_test.rb
@@ -179,8 +212,16 @@ specification_version: 4
179
212
  summary: A Ruby on Rails engine for projects that involve Apidae data
180
213
  test_files:
181
214
  - test/apidae_test.rb
215
+ - test/controllers/apidae/dashboard_controller_test.rb
216
+ - test/controllers/apidae/import_controller_test.rb
182
217
  - test/controllers/apidae/objects_controller_test.rb
183
218
  - test/controllers/apidae/selections_controller_test.rb
219
+ - test/data/delete_selections.json
220
+ - test/data/deletion.json
221
+ - test/data/json_export.zip
222
+ - test/data/selections.json
223
+ - test/data/structure.json
224
+ - test/data/update_selections.json
184
225
  - test/dummy/app/assets/javascripts/application.js
185
226
  - test/dummy/app/assets/stylesheets/application.css
186
227
  - test/dummy/app/controllers/application_controller.rb
@@ -220,11 +261,13 @@ test_files:
220
261
  - test/dummy/Rakefile
221
262
  - test/dummy/README.rdoc
222
263
  - test/fixtures/apidae/attached_files.yml
264
+ - test/fixtures/apidae/exports.yml
223
265
  - test/fixtures/apidae/objects.yml
224
266
  - test/fixtures/apidae/selections.yml
225
267
  - test/fixtures/apidae/towns.yml
226
268
  - test/integration/navigation_test.rb
227
269
  - test/models/apidae/attached_file_test.rb
270
+ - test/models/apidae/export_test.rb
228
271
  - test/models/apidae/file_import_test.rb
229
272
  - test/models/apidae/object_test.rb
230
273
  - test/models/apidae/selection_test.rb