moki_ruby 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d18fa9f0208d979d58737d1e2b635d8cbb32114f
4
- data.tar.gz: 666eb49b7a30e14fc61a307afa51830b3c5a9279
3
+ metadata.gz: d474a75dcbd7d4a9647efc8f71e9cfb95104e6f4
4
+ data.tar.gz: 47a78d25c089f12ead74db8a3f4d95004d232852
5
5
  SHA512:
6
- metadata.gz: ac00d27b093c5339c995ff8284314de1f73f8c25e5d95186d9f666775dad020e78c68c7dea48ec7f86c459cfed0ff2f106191e4ead220960508537448db9fe0e
7
- data.tar.gz: aaa2653f1443864249871a5bb2a1ef3caa49809a3335230fbe2db0d23adb5423a755d0e4c076d027b33dc5f062fe3e24df225e91fd882ac26c9e6ebe33982f4a
6
+ metadata.gz: 845fb16cbeae3dcbf444d8ca00862d56adf78e00705b04f440fc81efa35c9cc5a5e2e19e3d204b7ab29402ed7635f3420051dd1b198ad1b0b20219926de87799
7
+ data.tar.gz: 12281d8968ad005525ee9537d479b489d1887eb20dcd9901d385dc9b6a209d9cd30d9d13003f83a444ca72c78212adf8ccc6bb52210297429582c158ec13e798
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- moki_ruby (0.1.0)
4
+ moki_ruby (0.2.0)
5
5
  celluloid
6
6
  celluloid-io
7
7
  faraday
data/README.md CHANGED
@@ -53,6 +53,9 @@ MokiRuby::Device.new(udid)
53
53
 
54
54
  Using this device, there are several methods available:
55
55
 
56
+ - `device.load_details` will populate the device's nickname, title, time
57
+ it was last seen, and whether or not it is checked out. This will
58
+ return the updated `Device` object.
56
59
  - `device.profiles` returns all profiles currently installed on a
57
60
  device. This will return an array of `DeviceIOSProfile` objects.
58
61
  - `device.managed_apps` returns all managed applications installed on a
@@ -1,6 +1,7 @@
1
1
  module MokiRuby
2
2
  class Device
3
3
  attr_accessor :client_id, :token
4
+ attr_reader :nickname, :title, :last_seen, :checked_out
4
5
  attr :id, :identifier_type
5
6
 
6
7
  def initialize(identifier)
@@ -14,6 +15,18 @@ module MokiRuby
14
15
  @id = identifier
15
16
  end
16
17
 
18
+ def load_details
19
+ data = MokiAPI.device_details(device_id_param).value
20
+ return nil unless data.status == 200
21
+
22
+ @nickname = data.body["nickname"]
23
+ @title = data.body["title"]
24
+ @last_seen = Time.at(data.body["lastSeen"]/1000)
25
+ @checked_out = data.body["checkedOut"]
26
+
27
+ return self
28
+ end
29
+
17
30
  def profiles
18
31
  data = MokiAPI.device_profile_list(device_id_param).value
19
32
  return nil unless data.status == 200
@@ -13,6 +13,10 @@ module MokiRuby
13
13
  issue_request(:get, full_url('/iosprofiles'), {})
14
14
  end
15
15
 
16
+ def self.device_details(device_id)
17
+ issue_request(:get, full_url("/devices/#{ device_id }"), {})
18
+ end
19
+
16
20
  def self.device_profile_list(device_id)
17
21
  issue_request(:get, full_url("/devices/#{ device_id }/profiles"), {})
18
22
  end
@@ -1,3 +1,3 @@
1
1
  module MokiRuby
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -5,19 +5,18 @@ describe MokiRuby::Device do
5
5
  let(:sn) { "ABCDEFGHIJ12" }
6
6
  let(:udid) { "abcd1234-1234-1234-1234-abcdef123456" }
7
7
  let(:device) { MokiRuby::Device.new(udid) }
8
+ let(:serial_device) { MokiRuby::Device.new(sn) }
8
9
 
9
10
  describe 'initialization' do
10
11
  context "with serial number" do
11
12
  it "is valid" do
12
- device = MokiRuby::Device.new(sn)
13
- expect(device.id).to eq sn
14
- expect(device.identifier_type).to eq :serial
13
+ expect(serial_device.id).to eq sn
14
+ expect(serial_device.identifier_type).to eq :serial
15
15
  end
16
16
  end
17
17
 
18
18
  context "with UDID" do
19
19
  it "is valid" do
20
- device = MokiRuby::Device.new(udid)
21
20
  expect(device.id).to eq udid
22
21
  end
23
22
  end
@@ -32,19 +31,35 @@ describe MokiRuby::Device do
32
31
  describe "#device_id_param" do
33
32
  describe "Serial Number" do
34
33
  it "prepends serial number data" do
35
- device = MokiRuby::Device.new(sn)
36
- expect(device.device_id_param).to eq "sn-!-#{ sn }"
34
+ expect(serial_device.device_id_param).to eq "sn-!-#{ sn }"
37
35
  end
38
36
  end
39
37
 
40
38
  describe "UDID" do
41
39
  it "prepends serial number data" do
42
- device = MokiRuby::Device.new(udid)
43
40
  expect(device.device_id_param).to eq udid
44
41
  end
45
42
  end
46
43
  end
47
44
 
45
+ describe "#load_details" do
46
+ it "calls MokiAPI.device_details with the correct params" do
47
+ expect(MokiAPI).to receive_message_chain(:device_details, :value).and_return(Hashie::Mash.new({ body: {} }))
48
+ device.load_details
49
+ end
50
+
51
+ it "loads the details of the device info response into the object" do
52
+ load_good_stubs
53
+ current_id_param = device.device_id_param
54
+ expected_last_seen = Time.at(@device_info_stub_response["lastSeen"]/1000)
55
+ expect(device.load_details.device_id_param).to eq(current_id_param)
56
+ expect(device.nickname).to eq(@device_info_stub_response["nickname"])
57
+ expect(device.title).to eq(@device_info_stub_response["title"])
58
+ expect(device.last_seen).to eq(expected_last_seen)
59
+ expect(device.checked_out).to eq(@device_info_stub_response["checkedOut"])
60
+ end
61
+ end
62
+
48
63
  describe "#profiles" do
49
64
  it "calls MokiAPI.device_profile_list with correct params" do
50
65
  expect(MokiAPI).to receive_message_chain(:device_profile_list, :value).and_return(Hashie::Mash.new({ body: [] }))
@@ -40,9 +40,20 @@ describe MokiAPI do
40
40
  MokiAPI.ios_profiles
41
41
  end
42
42
 
43
+ describe "device details" do
44
+ it 'issues a get request using the device parameter' do
45
+ param = "sn-!-ABCDEFGHIJ12"
46
+ expect(MokiAPI).to receive(:issue_request) { |method, url, options|
47
+ expect(method).to eq(:get)
48
+ expect(url).to eq("http://localhost:9292/rest/v1/api/tenants/#{ ENV['MOKI_TENANT_ID'] }/devices/#{ param }")
49
+ }.and_return('{}')
50
+ MokiAPI.device_details(param)
51
+ end
52
+ end
53
+
43
54
  describe "device profile list" do
44
55
  it 'issues a get request using device parameter' do
45
- param = "sn-!-ABCDEFGHIJ12"
56
+ param = "sn-!-ABCDEFGHIJ12"
46
57
  expect(MokiAPI).to receive(:issue_request) { |method, url, options|
47
58
  expect(method).to eq(:get)
48
59
  expect(url).to eq("http://localhost:9292/rest/v1/api/tenants/#{ ENV['MOKI_TENANT_ID'] }/devices/#{ param }/profiles")
@@ -4,6 +4,12 @@ def load_base_stubs
4
4
  {"id"=>"462d3468-face-0300-4321-abcdef123456", "lastSeen"=>1415637997309, "name"=>"Test Profile 3", "displayName"=>"Test Profile 3", "description"=>"Test Profile 3", "identifier"=>"com.belly.1e968fa0-other03.TestProfile3"},
5
5
  {"id"=>"fcd2bfb0-face-0400-4321-abcdef123456", "lastSeen"=>1423524426266, "name"=>"Test Profile 4", "displayName"=>"Test Profile 4", "description"=>"Test Profile 4", "identifier"=>"com.belly.1e968fa0-other04.TestProfile4"}]
6
6
 
7
+ @device_info_stub_response = { "udid" => "886e136ec721b8474eb8f64a1c0f29a20881d167",
8
+ "nickname" => "Test iPad",
9
+ "title" => "iPad",
10
+ "lastSeen" => 1425073329355,
11
+ "checkedOut" => false }
12
+
7
13
  @device_managed_app_stub_response = [{ "Status" => "Managed", "appIdentifier" => "com.belly.moki.gem.enterprise", "ManagementFlags" => 1 },
8
14
  { "Status" => "Managed", "appIdentifier" => "com.belly.flop.html.enterprise", "ManagementFlags" => 0 }]
9
15
 
@@ -84,6 +90,11 @@ def load_good_stubs
84
90
  status: 200,
85
91
  headers: {}}))
86
92
 
93
+ allow(MokiAPI).to receive_message_chain(:device_details, :value).
94
+ and_return(Hashie::Mash.new({ body: @device_info_stub_response,
95
+ status: 200,
96
+ headers: {}}))
97
+
87
98
  allow(MokiAPI).to receive_message_chain(:device_profile_list, :value).
88
99
  and_return(Hashie::Mash.new({ body: @iosprofiles_stub_response,
89
100
  status: 200,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moki_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Trey Springer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-25 00:00:00.000000000 Z
11
+ date: 2015-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday