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.
|
||||
|
||||
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
|
||||
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", ["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|
|
||||
t.string "model"
|
||||
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
|
||||
|
||||
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"
|
||||
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