allscripts_unity_client 3.3.0 → 3.3.1

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: 318d72c20fb76dddb339df2816c74e13ff94e212
4
- data.tar.gz: cf380ce84440281cb5474214fea46b24b43705f8
3
+ metadata.gz: 26d2a1e44edd1f0566f998f0d6a0a458be686621
4
+ data.tar.gz: 8a8e6d47cdcba9fe7cd5bcf775d40055eca85d13
5
5
  SHA512:
6
- metadata.gz: 296d617eead2d1cc0e638ae8ea4247bf6f4c4d0bb033ebc4c551dff6d84f8040d118f7990bbf26686c2c4b41c367a1efd9aafe2f5f3a822b31a98ec656a1fe59
7
- data.tar.gz: 630a7653aaf3f9d99ba477bdf275e31581a177ed6995bdd90fa6388f556a20911a4a21ecfb9f1002fef88ae0163461ceb0895d3a611eba7ae314db1db9dae382
6
+ metadata.gz: 7caa5e1b1a0e0bc6fd40f5331cc48bbe4b4ba8421d795a873670cacd2742270889b611d5e0604a96ca09a3027324d771043036b18373e762b856af5376de14a6
7
+ data.tar.gz: 9115bca3320748180f5c39423763fc75e9c7e45c7032e3ebb45657795d7d899a0aacb51155147e4850afcfada554f0a2bd40ed7f3c502512670837a978adda5c
@@ -1,7 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.3
4
- - 2.0.0
5
3
  - 2.1.2
6
4
  - 2.2.2
7
5
  before_install:
@@ -49,17 +49,21 @@ module AllscriptsUnityClient
49
49
 
50
50
  def magic(parameters = {})
51
51
  request = JSONUnityRequest.new(parameters, @options.timezone, @options.appname, @security_token)
52
- log_magic(request)
53
-
54
52
  request_hash = request.to_hash
55
- log_info("Request Data: #{request_hash}")
56
53
  request_data = MultiJson.dump(request_hash)
57
54
 
58
55
  start_timer
59
56
  response = @connection.post(build_uri('MagicJson'), request_data)
60
- log_info("Response Status: #{response.status}")
61
57
  end_timer
62
58
 
59
+ # NOTE: ClientDriver#log_magic uses ClientDriver#log_info, which
60
+ # appends timing info (if end_timer has been called previously),
61
+ # and then resets the timer.
62
+ #
63
+ # It would be nice if future work made this less stateful.
64
+ log_magic(request)
65
+ log_info("Response Status: #{response.status}")
66
+
63
67
  response = MultiJson.load(response.body)
64
68
  raise_if_response_error(response)
65
69
 
@@ -83,8 +87,10 @@ module AllscriptsUnityClient
83
87
  response = @connection.post(build_uri('GetToken'), MultiJson.dump(request_data.to_hash))
84
88
  end_timer
85
89
 
86
- raise_if_response_error(response.body)
87
90
  log_get_security_token
91
+ log_info("Response Status: #{response.status}")
92
+
93
+ raise_if_response_error(response.body)
88
94
 
89
95
  @security_token = response.body
90
96
  end
@@ -1,3 +1,3 @@
1
1
  module AllscriptsUnityClient
2
- VERSION = '3.3.0'
2
+ VERSION = '3.3.1'
3
3
  end
@@ -3,8 +3,16 @@ require 'spec_helper'
3
3
  describe AllscriptsUnityClient::JSONClientDriver do
4
4
  it_behaves_like 'a client driver'
5
5
 
6
+ let(:fake_logger) do
7
+ double(Logger)
8
+ end
9
+
10
+ before do
11
+ allow(fake_logger).to receive(:info)
12
+ end
13
+
6
14
  subject do
7
- client_driver = build(:json_client_driver)
15
+ client_driver = build(:json_client_driver, logger: fake_logger)
8
16
  client_driver.security_token = SecureRandom.uuid
9
17
  client_driver
10
18
  end
@@ -42,11 +50,6 @@ describe AllscriptsUnityClient::JSONClientDriver do
42
50
  before do
43
51
  stub_request(:post, "http://www.example.com/Unity/UnityService.svc/json/MagicJson").
44
52
  to_return(status: 200, body: get_server_info, headers: {})
45
-
46
- allow(subject).to receive(:start_timer)
47
- allow(subject).to receive(:end_timer)
48
- allow(subject).to receive(:log_magic)
49
- allow(subject).to receive(:log_info).twice
50
53
  end
51
54
 
52
55
  it 'should POST to /Unity/UnityService.svc/json/MagicJson' do
@@ -65,33 +68,22 @@ describe AllscriptsUnityClient::JSONClientDriver do
65
68
  )
66
69
  end
67
70
 
68
- it 'should call start_timer' do
69
- subject.magic
70
- expect(subject).to have_received(:start_timer)
71
- end
71
+ it 'should log the request duration' do
72
+ expect(fake_logger).to receive(:info).with(/Unity API Magic request to [^ ]+ \[SomeRequest\] [0-9.]+ seconds/)
72
73
 
73
- it 'should call end_timer' do
74
- subject.magic
75
- expect(subject).to have_received(:start_timer)
74
+ subject.magic(action: 'SomeRequest')
76
75
  end
77
76
 
78
- it 'should call log_magic' do
79
- subject.magic
80
- expect(subject).to have_received(:log_magic)
81
- end
77
+ it 'should log the response code' do
78
+ expect(fake_logger).to receive(:info).with(/Response Status: 200/)
82
79
 
83
- it 'should call log_info for recording request data and response status' do
84
- subject.magic
85
- expect(subject).to have_received(:log_info).twice
80
+ subject.magic(action: 'SomeRequest')
86
81
  end
87
82
  end
88
83
 
89
84
  describe '#get_security_token!' do
90
85
  before(:each) {
91
86
  stub_request(:post, 'http://www.example.com/Unity/UnityService.svc/json/GetToken').to_return(body: get_security_token)
92
- allow(subject).to receive(:start_timer)
93
- allow(subject).to receive(:end_timer)
94
- allow(subject).to receive(:log_get_security_token)
95
87
  }
96
88
 
97
89
  it 'should POST to /Unity/UnityService.svc/json/GetToken with username, password, and appname' do
@@ -99,27 +91,22 @@ describe AllscriptsUnityClient::JSONClientDriver do
99
91
  expect(WebMock).to have_requested(:post, 'http://www.example.com/Unity/UnityService.svc/json/GetToken').with(body: /\{"Username":"[^"]+","Password":"[^"]+","Appname":"[^"]+"\}/, headers: { 'Content-Type' => 'application/json' })
100
92
  end
101
93
 
102
- it 'should call start_timer' do
103
- subject.get_security_token!
104
- expect(subject).to have_received(:start_timer)
105
- end
94
+ it 'log the request to get a security token' do
95
+ expect(fake_logger).to receive(:info).with(/Unity API GetSecurityToken request to [^ ]+ [0-9.]+ seconds/)
106
96
 
107
- it 'should call end_timer' do
108
97
  subject.get_security_token!
109
- expect(subject).to have_received(:start_timer)
110
98
  end
111
99
 
112
- it 'should call log_get_security_token' do
100
+ it 'logs the response code from getting a security token' do
101
+ expect(fake_logger).to receive(:info).with(/Response Status: 200/)
102
+
113
103
  subject.get_security_token!
114
- expect(subject).to have_received(:log_get_security_token)
115
104
  end
116
105
  end
117
106
 
118
107
  describe '#retire_security_token!' do
119
108
  before(:each) {
120
109
  stub_request(:post, 'http://www.example.com/Unity/UnityService.svc/json/RetireSecurityToken').to_return(body: retire_security_token)
121
- allow(subject).to receive(:start_timer)
122
- allow(subject).to receive(:end_timer)
123
110
  allow(subject).to receive(:log_retire_security_token)
124
111
  }
125
112
 
@@ -128,16 +115,6 @@ describe AllscriptsUnityClient::JSONClientDriver do
128
115
  expect(WebMock).to have_requested(:post, 'http://www.example.com/Unity/UnityService.svc/json/RetireSecurityToken').with(body: /\{"Token":"[^"]+","Appname":"[^"]+"\}/, headers: { 'Content-Type' => 'application/json' })
129
116
  end
130
117
 
131
- it 'should call start_timer' do
132
- subject.retire_security_token!
133
- expect(subject).to have_received(:start_timer)
134
- end
135
-
136
- it 'should call end_timer' do
137
- subject.retire_security_token!
138
- expect(subject).to have_received(:start_timer)
139
- end
140
-
141
118
  it 'should call log_retire_security_token' do
142
119
  subject.retire_security_token!
143
120
  expect(subject).to have_received(:log_retire_security_token)
@@ -81,7 +81,8 @@ shared_examples 'a unity request' do
81
81
 
82
82
  context 'when given a UTC date time string' do
83
83
  it 'returns an ISO8601 string' do
84
- now_iso8601 = DateTime.now.utc.iso8601
84
+ now = DateTime.now.utc
85
+ now_iso8601 = now.strftime('%Y-%m-%dT%H:%M:%S%:z')
85
86
  expect(subject.send(:process_date, now_iso8601)).to eq(now_iso8601)
86
87
  end
87
88
  end
@@ -97,7 +98,7 @@ shared_examples 'a unity request' do
97
98
  context 'when given a UTC Time' do
98
99
  it 'returns an ISO8601 string' do
99
100
  now = Time.now.utc
100
- now_iso8601 = now.strftime('%Y-%m-%dT%H:%M:%S+00:00')
101
+ now_iso8601 = now.strftime('%Y-%m-%dT%H:%M:%S%:z')
101
102
  expect(subject.send(:process_date, now)).to eq(now_iso8601)
102
103
  end
103
104
  end
@@ -105,9 +106,9 @@ shared_examples 'a unity request' do
105
106
  context 'when given a UTC DateTime' do
106
107
  it 'returns an ISO8601 string' do
107
108
  now = DateTime.now.utc
108
- now_iso8601 = now.iso8601
109
+ now_iso8601 = now.strftime('%Y-%m-%dT%H:%M:%S%:z')
109
110
  expect(subject.send(:process_date, now)).to eq(now_iso8601)
110
111
  end
111
112
  end
112
113
  end
113
- end
114
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allscripts_unity_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 3.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - healthfinch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-18 00:00:00.000000000 Z
11
+ date: 2017-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient