moki_ruby 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 56027031c39138938e7188216d06f3f69bb3ef68
4
- data.tar.gz: 8d9d2c741b7b205c7bc9486dd5297327e32ae9a8
3
+ metadata.gz: 01c8ae7261ca9359ed79b3bb5165abcec1cb84cc
4
+ data.tar.gz: a765535d108885b5a261fdbb85cf8bce1a62a7e1
5
5
  SHA512:
6
- metadata.gz: 5c033443917bd65ae79495d1b67ec5c8325f2f2c9a46fa6d48e1d698ccf0a0ae7b086bb1dfd0f93ca5497dac97d00019de50b90f37116f1afa90053d3c65123c
7
- data.tar.gz: 9d80620cf743fe3334883ee14f0e33f7195cc587c47cf86e2aa251a41eda473e2c4450f5ea8d25b5331a9cf72cbf0bd17ef58bdec08cc99382772491a94250dd
6
+ metadata.gz: 25fb57f791a4226edc76dbe22238470fd61e57abdc3566629544b6402dd394f89f5bbf2960c4d5183b443d4e42c97e1d9fa55562d1e9873def12d852ee5b52ba
7
+ data.tar.gz: f3babd1dfb161b7908e9edab9e8a1f70df6ff86fbf2ea3a45a5a97223915a07a8c5e2ad1d8d7745e00d73480e3435dd517c06a31b41218f3b7e8b37c83eec4ac
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- moki_ruby (0.2.3)
4
+ moki_ruby (0.2.5)
5
5
  celluloid
6
6
  celluloid-io
7
7
  faraday
data/README.md CHANGED
@@ -63,6 +63,10 @@ Using this device, there are several methods available:
63
63
  - `device.install_app(app)` takes in a `TenantManagedApp` object, and
64
64
  will install the given application on the device. Returns an
65
65
  `Action` object, for tracking in the future.
66
+ - `device.uninstall_app(app)` takes in a `DeviceManagedApp` object, and
67
+ will uninstall the given application on the device. Returns an
68
+ `Action` object, for tracking in the future. Note that this must be
69
+ done on a managed app.
66
70
  - `device.add_profile(profile)` takes in an `TenantIOSProfile` object, and
67
71
  will install the given profile on the device. Returns an `Action`
68
72
  object, for tracking in the future.
@@ -50,6 +50,16 @@ module MokiRuby
50
50
  Action.from_hash(data.body)
51
51
  end
52
52
 
53
+ def uninstall_app(device_managed_app)
54
+ raise "DeviceManagedApp required" unless device_managed_app && device_managed_app.is_a?(DeviceManagedApp)
55
+
56
+ data = MokiAPI.perform_action(device_id_param, device_managed_app.uninstall_hash).value
57
+ return nil unless data.status == 200
58
+ binding.pry
59
+
60
+ Action.from_hash(data.body)
61
+ end
62
+
53
63
  def add_profile(profile)
54
64
  raise "TenantIOSProfile required" unless profile && profile.is_a?(TenantIOSProfile)
55
65
 
@@ -18,5 +18,16 @@ module MokiRuby
18
18
  "ManagementFlags" => self.management_flags
19
19
  }
20
20
  end
21
+
22
+ def uninstall_hash
23
+ {
24
+ "action" => "remove_app",
25
+ "thirdPartyUser" => "moki_ruby",
26
+ "clientName" => "MokiRuby",
27
+ "itemName" => "iOS App",
28
+ "notify" => true,
29
+ "payload" => self.app_identifier
30
+ }
31
+ end
21
32
  end
22
33
  end
@@ -1,3 +1,3 @@
1
1
  module MokiRuby
2
- VERSION = "0.2.4"
2
+ VERSION = "0.2.5"
3
3
  end
@@ -7,18 +7,29 @@ describe DeviceManagedApp do
7
7
  "ManagementFlags" => 0 } }
8
8
 
9
9
  it "will load from a hash with string keys" do
10
- profile = DeviceManagedApp.from_hash(response_hash)
11
- expect(profile.status).to eq(response_hash["Status"])
12
- expect(profile.app_identifier).to eq(response_hash["appIdentifier"])
13
- expect(profile.management_flags).to eq(response_hash["ManagementFlags"])
10
+ app = DeviceManagedApp.from_hash(response_hash)
11
+ expect(app.status).to eq(response_hash["Status"])
12
+ expect(app.app_identifier).to eq(response_hash["appIdentifier"])
13
+ expect(app.management_flags).to eq(response_hash["ManagementFlags"])
14
14
  end
15
15
 
16
16
  it "will convert the response to a hash" do
17
- profile = DeviceManagedApp.new
18
- profile.status = "Managed"
19
- profile.app_identifier = "com.belly.gem.moki.enterprise"
20
- profile.management_flags = 0
17
+ app = DeviceManagedApp.new
18
+ app.status = "Managed"
19
+ app.app_identifier = "com.belly.gem.moki.enterprise"
20
+ app.management_flags = 0
21
21
 
22
- expect(profile.to_hash).to eq(response_hash)
22
+ expect(app.to_hash).to eq(response_hash)
23
+ end
24
+
25
+ it "will return a hash for removal" do
26
+ app= DeviceManagedApp.from_hash(response_hash)
27
+ expect(app.uninstall_hash).to eq({
28
+ "action" => "remove_app",
29
+ "thirdPartyUser" => "moki_ruby",
30
+ "clientName" => "MokiRuby",
31
+ "itemName" => "iOS App",
32
+ "notify" => true,
33
+ "payload" => response_hash["appIdentifier"] })
23
34
  end
24
35
  end
@@ -149,6 +149,29 @@ describe MokiRuby::Device do
149
149
  end
150
150
  end
151
151
 
152
+ describe "#uninstall_app" do
153
+ it "requires a DeviceManagedApp" do
154
+ expect { device.uninstall_app('foo') }.to raise_error
155
+ end
156
+
157
+ it "calls MokiAPI.perform with store app parameters" do
158
+ load_good_stubs
159
+
160
+ device_managed_app = DeviceManagedApp.from_hash({ "Status" => "managed",
161
+ "appIdentifier" => "com.mokimobility.mokitouch2",
162
+ "ManagementFlags" => 1 })
163
+
164
+ expect(MokiAPI).to receive(:perform_action).with(udid, device_managed_app.uninstall_hash)
165
+ .and_return(Hashie::Mash.new(value: { body: @action_stub_response }))
166
+ device.uninstall_app(device_managed_app)
167
+ end
168
+
169
+ it "returns nil if the device was not found" do
170
+ load_bad_stubs
171
+ expect(device.uninstall_app(DeviceManagedApp.new)).to be_nil
172
+ end
173
+ end
174
+
152
175
  describe "#managed_apps" do
153
176
  it "calls MokiAPI.device_managed_app_list" do
154
177
  response = []
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.2.4
4
+ version: 0.2.5
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-08-14 00:00:00.000000000 Z
11
+ date: 2015-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday