mirror of
http://ghproxy.cn/https://github.com/multunus/onemdm-server
synced 2025-12-06 02:04:57 +00:00
Added Models App, Installation Batch Installation
This commit is contained in:
4
app/models/app.rb
Normal file
4
app/models/app.rb
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
class App < ActiveRecord::Base
|
||||||
|
|
||||||
|
validates :name, :package_name, presence: true
|
||||||
|
end
|
||||||
3
app/models/batch_installation.rb
Normal file
3
app/models/batch_installation.rb
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
class BatchInstallation < ActiveRecord::Base
|
||||||
|
belongs_to :app
|
||||||
|
end
|
||||||
9
app/models/installation.rb
Normal file
9
app/models/installation.rb
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
class Installation < ActiveRecord::Base
|
||||||
|
enum status: [:pushed, :downloaded, :cancelled, :installed]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
belongs_to :device
|
||||||
|
belongs_to :batch_installation
|
||||||
|
|
||||||
|
end
|
||||||
10
db/migrate/20151113123015_create_applications.rb
Normal file
10
db/migrate/20151113123015_create_applications.rb
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
class CreateApplications < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :applications do |t|
|
||||||
|
t.string :name
|
||||||
|
t.string :package_name
|
||||||
|
|
||||||
|
t.timestamps null: false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
5
db/migrate/20151113124226_rename_application_to_app.rb
Normal file
5
db/migrate/20151113124226_rename_application_to_app.rb
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
class RenameApplicationToApp < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
rename_table :applications, :apps
|
||||||
|
end
|
||||||
|
end
|
||||||
9
db/migrate/20151113131647_create_batch_installations.rb
Normal file
9
db/migrate/20151113131647_create_batch_installations.rb
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
class CreateBatchInstallations < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :batch_installations do |t|
|
||||||
|
t.integer :app_id
|
||||||
|
|
||||||
|
t.timestamps null: false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
11
db/migrate/20151113132152_create_installations.rb
Normal file
11
db/migrate/20151113132152_create_installations.rb
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
class CreateInstallations < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :installations do |t|
|
||||||
|
t.integer :device_id
|
||||||
|
t.integer :batch_installation_id
|
||||||
|
t.integer :status
|
||||||
|
|
||||||
|
t.timestamps null: false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
class ChangeStatusDataTypeFromStringToIntegerInInstallation < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
change_column :installations, :status, :integer
|
||||||
|
end
|
||||||
|
end
|
||||||
23
db/schema.rb
23
db/schema.rb
@@ -11,7 +11,7 @@
|
|||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20151113095735) do
|
ActiveRecord::Schema.define(version: 20151113140645) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
@@ -49,6 +49,19 @@ ActiveRecord::Schema.define(version: 20151113095735) do
|
|||||||
add_index "admin_users", ["email"], name: "index_admin_users_on_email", unique: true, using: :btree
|
add_index "admin_users", ["email"], name: "index_admin_users_on_email", unique: true, using: :btree
|
||||||
add_index "admin_users", ["reset_password_token"], name: "index_admin_users_on_reset_password_token", unique: true, using: :btree
|
add_index "admin_users", ["reset_password_token"], name: "index_admin_users_on_reset_password_token", unique: true, using: :btree
|
||||||
|
|
||||||
|
create_table "apps", force: :cascade do |t|
|
||||||
|
t.string "name"
|
||||||
|
t.string "package_name"
|
||||||
|
t.datetime "created_at", null: false
|
||||||
|
t.datetime "updated_at", null: false
|
||||||
|
end
|
||||||
|
|
||||||
|
create_table "batch_installations", force: :cascade do |t|
|
||||||
|
t.integer "app_id"
|
||||||
|
t.datetime "created_at", null: false
|
||||||
|
t.datetime "updated_at", null: false
|
||||||
|
end
|
||||||
|
|
||||||
create_table "devices", force: :cascade do |t|
|
create_table "devices", force: :cascade do |t|
|
||||||
t.string "model"
|
t.string "model"
|
||||||
t.string "unique_id"
|
t.string "unique_id"
|
||||||
@@ -69,5 +82,13 @@ ActiveRecord::Schema.define(version: 20151113095735) do
|
|||||||
|
|
||||||
add_index "heartbeats", ["device_id"], name: "index_heartbeats_on_device_id", using: :btree
|
add_index "heartbeats", ["device_id"], name: "index_heartbeats_on_device_id", using: :btree
|
||||||
|
|
||||||
|
create_table "installations", force: :cascade do |t|
|
||||||
|
t.integer "device_id"
|
||||||
|
t.integer "batch_installation_id"
|
||||||
|
t.integer "status"
|
||||||
|
t.datetime "created_at", null: false
|
||||||
|
t.datetime "updated_at", null: false
|
||||||
|
end
|
||||||
|
|
||||||
add_foreign_key "heartbeats", "devices"
|
add_foreign_key "heartbeats", "devices"
|
||||||
end
|
end
|
||||||
|
|||||||
7
spec/factories/app.rb
Normal file
7
spec/factories/app.rb
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
FactoryGirl.define do
|
||||||
|
factory :app do
|
||||||
|
name "My Ultimate Application"
|
||||||
|
package_name "my.ultimate.application"
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
6
spec/factories/batch_installations.rb
Normal file
6
spec/factories/batch_installations.rb
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
FactoryGirl.define do
|
||||||
|
factory :batch_installation do
|
||||||
|
app_id 1
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
8
spec/factories/installations.rb
Normal file
8
spec/factories/installations.rb
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
FactoryGirl.define do
|
||||||
|
factory :installation do
|
||||||
|
device_id 1
|
||||||
|
batch_installation_id 1
|
||||||
|
status 1
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
11
spec/models/app.rb
Normal file
11
spec/models/app.rb
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe App, type: :model do
|
||||||
|
pending "add some examples to (or delete) #{__FILE__}"
|
||||||
|
|
||||||
|
let!(:app) { create(:app) }
|
||||||
|
|
||||||
|
it { should validate_presence_of :name }
|
||||||
|
it { should validate_presence_of :package_name }
|
||||||
|
|
||||||
|
end
|
||||||
5
spec/models/batch_installation_spec.rb
Normal file
5
spec/models/batch_installation_spec.rb
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe BatchInstallation, type: :model do
|
||||||
|
it {should belong_to(:app)}
|
||||||
|
end
|
||||||
32
spec/models/installation_spec.rb
Normal file
32
spec/models/installation_spec.rb
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe Installation, type: :model do
|
||||||
|
it { should belong_to(:device) }
|
||||||
|
it { should belong_to(:batch_installation) }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Create Installation Model [Device ID, batch installation ID, status(Pushed, Downloaded, Cancelled, Installed)]
|
||||||
|
describe "Installation status" do
|
||||||
|
let!(:installation){FactoryGirl.create(:installation)}
|
||||||
|
it "Pushed" do
|
||||||
|
installation.pushed!
|
||||||
|
expect(installation.status).to eql Installation.statuses.keys[0]
|
||||||
|
end
|
||||||
|
it "Downloaded" do
|
||||||
|
installation.downloaded!
|
||||||
|
expect(installation.status).to eql Installation.statuses.keys[1]
|
||||||
|
end
|
||||||
|
it "Cancelled" do
|
||||||
|
installation.cancelled!
|
||||||
|
expect(installation.status).to eql Installation.statuses.keys[2]
|
||||||
|
end
|
||||||
|
|
||||||
|
it "Installed" do
|
||||||
|
installation.installed!
|
||||||
|
expect(installation.status).to eql Installation.statuses.keys[3]
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user