azure_application_insights 0.5.7

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.
Files changed (86) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/gem-push.yml +34 -0
  3. data/.gitignore +40 -0
  4. data/.travis.yml +22 -0
  5. data/CHANGELOG.md +17 -0
  6. data/CONTRIBUTING.md +68 -0
  7. data/Gemfile +4 -0
  8. data/LICENSE.txt +11 -0
  9. data/README.md +161 -0
  10. data/Rakefile +15 -0
  11. data/application_insights.gemspec +30 -0
  12. data/lib/application_insights/channel/asynchronous_queue.rb +58 -0
  13. data/lib/application_insights/channel/asynchronous_sender.rb +133 -0
  14. data/lib/application_insights/channel/contracts/application.rb +14 -0
  15. data/lib/application_insights/channel/contracts/cloud.rb +14 -0
  16. data/lib/application_insights/channel/contracts/data.rb +14 -0
  17. data/lib/application_insights/channel/contracts/data_point.rb +24 -0
  18. data/lib/application_insights/channel/contracts/data_point_type.rb +7 -0
  19. data/lib/application_insights/channel/contracts/dependency_kind.rb +9 -0
  20. data/lib/application_insights/channel/contracts/dependency_source_type.rb +9 -0
  21. data/lib/application_insights/channel/contracts/device.rb +28 -0
  22. data/lib/application_insights/channel/contracts/envelope.rb +40 -0
  23. data/lib/application_insights/channel/contracts/event_data.rb +28 -0
  24. data/lib/application_insights/channel/contracts/exception_data.rb +37 -0
  25. data/lib/application_insights/channel/contracts/exception_details.rb +28 -0
  26. data/lib/application_insights/channel/contracts/internal.rb +14 -0
  27. data/lib/application_insights/channel/contracts/json_serializable.rb +59 -0
  28. data/lib/application_insights/channel/contracts/location.rb +16 -0
  29. data/lib/application_insights/channel/contracts/message_data.rb +24 -0
  30. data/lib/application_insights/channel/contracts/metric_data.rb +27 -0
  31. data/lib/application_insights/channel/contracts/operation.rb +19 -0
  32. data/lib/application_insights/channel/contracts/page_view_data.rb +30 -0
  33. data/lib/application_insights/channel/contracts/remote_dependency_data.rb +56 -0
  34. data/lib/application_insights/channel/contracts/request_data.rb +36 -0
  35. data/lib/application_insights/channel/contracts/session.rb +15 -0
  36. data/lib/application_insights/channel/contracts/severity_level.rb +13 -0
  37. data/lib/application_insights/channel/contracts/stack_frame.rb +17 -0
  38. data/lib/application_insights/channel/contracts/user.rb +19 -0
  39. data/lib/application_insights/channel/event.rb +68 -0
  40. data/lib/application_insights/channel/queue_base.rb +73 -0
  41. data/lib/application_insights/channel/sender_base.rb +88 -0
  42. data/lib/application_insights/channel/synchronous_queue.rb +45 -0
  43. data/lib/application_insights/channel/synchronous_sender.rb +17 -0
  44. data/lib/application_insights/channel/telemetry_channel.rb +131 -0
  45. data/lib/application_insights/channel/telemetry_context.rb +85 -0
  46. data/lib/application_insights/rack/track_request.rb +158 -0
  47. data/lib/application_insights/telemetry_client.rb +229 -0
  48. data/lib/application_insights/unhandled_exception.rb +49 -0
  49. data/lib/application_insights/version.rb +3 -0
  50. data/lib/application_insights.rb +9 -0
  51. data/test/application_insights/channel/contracts/test_application.rb +44 -0
  52. data/test/application_insights/channel/contracts/test_cloud.rb +44 -0
  53. data/test/application_insights/channel/contracts/test_data.rb +44 -0
  54. data/test/application_insights/channel/contracts/test_data_point.rb +109 -0
  55. data/test/application_insights/channel/contracts/test_device.rb +200 -0
  56. data/test/application_insights/channel/contracts/test_envelope.rb +209 -0
  57. data/test/application_insights/channel/contracts/test_event_data.rb +62 -0
  58. data/test/application_insights/channel/contracts/test_exception_data.rb +111 -0
  59. data/test/application_insights/channel/contracts/test_exception_details.rb +106 -0
  60. data/test/application_insights/channel/contracts/test_internal.rb +44 -0
  61. data/test/application_insights/channel/contracts/test_location.rb +70 -0
  62. data/test/application_insights/channel/contracts/test_message_data.rb +66 -0
  63. data/test/application_insights/channel/contracts/test_metric_data.rb +50 -0
  64. data/test/application_insights/channel/contracts/test_operation.rb +109 -0
  65. data/test/application_insights/channel/contracts/test_page_view_data.rb +88 -0
  66. data/test/application_insights/channel/contracts/test_remote_dependency_data.rb +209 -0
  67. data/test/application_insights/channel/contracts/test_request_data.rb +153 -0
  68. data/test/application_insights/channel/contracts/test_session.rb +57 -0
  69. data/test/application_insights/channel/contracts/test_stack_frame.rb +83 -0
  70. data/test/application_insights/channel/contracts/test_user.rb +96 -0
  71. data/test/application_insights/channel/test_asynchronous_queue.rb +47 -0
  72. data/test/application_insights/channel/test_asynchronous_sender.rb +81 -0
  73. data/test/application_insights/channel/test_event.rb +53 -0
  74. data/test/application_insights/channel/test_queue_base.rb +89 -0
  75. data/test/application_insights/channel/test_sender_base.rb +94 -0
  76. data/test/application_insights/channel/test_synchronous_queue.rb +28 -0
  77. data/test/application_insights/channel/test_synchronous_sender.rb +11 -0
  78. data/test/application_insights/channel/test_telemetry_channel.rb +167 -0
  79. data/test/application_insights/channel/test_telemetry_context.rb +83 -0
  80. data/test/application_insights/mock_sender.rb +37 -0
  81. data/test/application_insights/rack/test_track_request.rb +182 -0
  82. data/test/application_insights/test_logger.rb +10 -0
  83. data/test/application_insights/test_telemetry_client.rb +138 -0
  84. data/test/application_insights/test_unhandled_exception.rb +23 -0
  85. data/test/application_insights.rb +8 -0
  86. metadata +247 -0
@@ -0,0 +1,44 @@
1
+ require_relative '../../../../lib/application_insights/channel/contracts/internal'
2
+ require 'test/unit'
3
+
4
+ include ApplicationInsights::Channel
5
+
6
+ class TestInternal < Test::Unit::TestCase
7
+ def test_initialize
8
+ item = Contracts::Internal.new
9
+ assert_not_nil item
10
+ end
11
+
12
+ def test_sdk_version_works_as_expected
13
+ expected = 'Test string'
14
+ item = Contracts::Internal.new
15
+ item.sdk_version = expected
16
+ actual = item.sdk_version
17
+ assert_equal expected, actual
18
+ expected = 'Other string'
19
+ item.sdk_version = expected
20
+ actual = item.sdk_version
21
+ assert_equal expected, actual
22
+ end
23
+
24
+ def test_agent_version_works_as_expected
25
+ expected = 'Test string'
26
+ item = Contracts::Internal.new
27
+ item.agent_version = expected
28
+ actual = item.agent_version
29
+ assert_equal expected, actual
30
+ expected = 'Other string'
31
+ item.agent_version = expected
32
+ actual = item.agent_version
33
+ assert_equal expected, actual
34
+ end
35
+
36
+ def test_to_json_works_as_expected
37
+ item = Contracts::Internal.new
38
+ item.sdk_version = 'Test string'
39
+ item.agent_version = 'Test string'
40
+ actual = item.to_json
41
+ expected = '{"ai.internal.sdkVersion":"Test string","ai.internal.agentVersion":"Test string"}'
42
+ assert_equal expected, actual
43
+ end
44
+ end
@@ -0,0 +1,70 @@
1
+ require_relative '../../../../lib/application_insights/channel/contracts/location'
2
+ require 'test/unit'
3
+
4
+ include ApplicationInsights::Channel
5
+
6
+ class TestLocation < Test::Unit::TestCase
7
+ def test_initialize
8
+ item = Contracts::Location.new
9
+ assert_not_nil item
10
+ end
11
+
12
+ def test_ip_works_as_expected
13
+ expected = 'Test string'
14
+ item = Contracts::Location.new
15
+ item.ip = expected
16
+ actual = item.ip
17
+ assert_equal expected, actual
18
+ expected = 'Other string'
19
+ item.ip = expected
20
+ actual = item.ip
21
+ assert_equal expected, actual
22
+ end
23
+
24
+ def test_country_works_as_expected
25
+ expected = 'Test string'
26
+ item = Contracts::Location.new
27
+ item.country = expected
28
+ actual = item.country
29
+ assert_equal expected, actual
30
+ expected = 'Other string'
31
+ item.country = expected
32
+ actual = item.country
33
+ assert_equal expected, actual
34
+ end
35
+
36
+ def test_province_works_as_expected
37
+ expected = 'Test string'
38
+ item = Contracts::Location.new
39
+ item.province = expected
40
+ actual = item.province
41
+ assert_equal expected, actual
42
+ expected = 'Other string'
43
+ item.province = expected
44
+ actual = item.province
45
+ assert_equal expected, actual
46
+ end
47
+
48
+ def test_city_works_as_expected
49
+ expected = 'Test string'
50
+ item = Contracts::Location.new
51
+ item.city = expected
52
+ actual = item.city
53
+ assert_equal expected, actual
54
+ expected = 'Other string'
55
+ item.city = expected
56
+ actual = item.city
57
+ assert_equal expected, actual
58
+ end
59
+
60
+ def test_to_json_works_as_expected
61
+ item = Contracts::Location.new
62
+ item.ip = 'Test string'
63
+ item.country = 'US'
64
+ item.province = 'WA'
65
+ item.city = 'Redmond'
66
+ actual = item.to_json
67
+ expected = '{"ai.location.ip":"Test string","ai.location.country":"US","ai.location.province":"WA","ai.location.city":"Redmond"}'
68
+ assert_equal expected, actual
69
+ end
70
+ end
@@ -0,0 +1,66 @@
1
+ require_relative '../../../../lib/application_insights/channel/contracts/message_data'
2
+ require 'test/unit'
3
+
4
+ include ApplicationInsights::Channel
5
+
6
+ class TestMessageData < Test::Unit::TestCase
7
+ def test_initialize
8
+ item = Contracts::MessageData.new
9
+ assert_not_nil item
10
+ end
11
+
12
+ def test_ver_works_as_expected
13
+ expected = 42
14
+ item = Contracts::MessageData.new
15
+ item.ver = expected
16
+ actual = item.ver
17
+ assert_equal expected, actual
18
+ expected = 13
19
+ item.ver = expected
20
+ actual = item.ver
21
+ assert_equal expected, actual
22
+ end
23
+
24
+ def test_message_works_as_expected
25
+ expected = 'Test string'
26
+ item = Contracts::MessageData.new
27
+ item.message = expected
28
+ actual = item.message
29
+ assert_equal expected, actual
30
+ expected = 'Other string'
31
+ item.message = expected
32
+ actual = item.message
33
+ assert_equal expected, actual
34
+ end
35
+
36
+ def test_severity_level_works_as_expected
37
+ expected = 5
38
+ item = Contracts::MessageData.new
39
+ item.severity_level = expected
40
+ actual = item.severity_level
41
+ assert_equal expected, actual
42
+ expected = 3
43
+ item.severity_level = expected
44
+ actual = item.severity_level
45
+ assert_equal expected, actual
46
+ end
47
+
48
+ def test_properties_works_as_expected
49
+ item = Contracts::MessageData.new
50
+ actual = item.properties
51
+ assert_not_nil actual
52
+ end
53
+
54
+ def test_to_json_works_as_expected
55
+ item = Contracts::MessageData.new
56
+ item.ver = 42
57
+ item.message = 'Test string'
58
+ item.severity_level = 5
59
+ { 'key1' => 'test value 1' , 'key2' => 'test value 2' }.each do |key, value|
60
+ item.properties[key] = value
61
+ end
62
+ actual = item.to_json
63
+ expected = '{"ver":42,"message":"Test string","severityLevel":5,"properties":{"key1":"test value 1","key2":"test value 2"}}'
64
+ assert_equal expected, actual
65
+ end
66
+ end
@@ -0,0 +1,50 @@
1
+ require_relative '../../../../lib/application_insights/channel/contracts/metric_data'
2
+ require 'test/unit'
3
+
4
+ include ApplicationInsights::Channel
5
+
6
+ class TestMetricData < Test::Unit::TestCase
7
+ def test_initialize
8
+ item = Contracts::MetricData.new
9
+ assert_not_nil item
10
+ end
11
+
12
+ def test_ver_works_as_expected
13
+ expected = 42
14
+ item = Contracts::MetricData.new
15
+ item.ver = expected
16
+ actual = item.ver
17
+ assert_equal expected, actual
18
+ expected = 13
19
+ item.ver = expected
20
+ actual = item.ver
21
+ assert_equal expected, actual
22
+ end
23
+
24
+ def test_metrics_works_as_expected
25
+ item = Contracts::MetricData.new
26
+ actual = item.metrics
27
+ assert_not_nil actual
28
+ end
29
+
30
+ def test_properties_works_as_expected
31
+ item = Contracts::MetricData.new
32
+ actual = item.properties
33
+ assert_not_nil actual
34
+ end
35
+
36
+ def test_to_json_works_as_expected
37
+ item = Contracts::MetricData.new
38
+ item.ver = 42
39
+ [ { 'key' => 'value' } ].each do |value|
40
+ item.metrics.push value
41
+ end
42
+
43
+ { 'key1' => 'test value 1' , 'key2' => 'test value 2' }.each do |key, value|
44
+ item.properties[key] = value
45
+ end
46
+ actual = item.to_json
47
+ expected = '{"ver":42,"metrics":[{"key":"value"}],"properties":{"key1":"test value 1","key2":"test value 2"}}'
48
+ assert_equal expected, actual
49
+ end
50
+ end
@@ -0,0 +1,109 @@
1
+ require_relative '../../../../lib/application_insights/channel/contracts/operation'
2
+ require 'test/unit'
3
+
4
+ include ApplicationInsights::Channel
5
+
6
+ class TestOperation < Test::Unit::TestCase
7
+ def test_initialize
8
+ item = Contracts::Operation.new
9
+ assert_not_nil item
10
+ end
11
+
12
+ def test_id_works_as_expected
13
+ expected = 'Test string'
14
+ item = Contracts::Operation.new
15
+ item.id = expected
16
+ actual = item.id
17
+ assert_equal expected, actual
18
+ expected = 'Other string'
19
+ item.id = expected
20
+ actual = item.id
21
+ assert_equal expected, actual
22
+ end
23
+
24
+ def test_name_works_as_expected
25
+ expected = 'Test string'
26
+ item = Contracts::Operation.new
27
+ item.name = expected
28
+ actual = item.name
29
+ assert_equal expected, actual
30
+ expected = 'Other string'
31
+ item.name = expected
32
+ actual = item.name
33
+ assert_equal expected, actual
34
+ end
35
+
36
+ def test_parent_id_works_as_expected
37
+ expected = 'Test string'
38
+ item = Contracts::Operation.new
39
+ item.parent_id = expected
40
+ actual = item.parent_id
41
+ assert_equal expected, actual
42
+ expected = 'Other string'
43
+ item.parent_id = expected
44
+ actual = item.parent_id
45
+ assert_equal expected, actual
46
+ end
47
+
48
+ def test_root_id_works_as_expected
49
+ expected = 'Test string'
50
+ item = Contracts::Operation.new
51
+ item.root_id = expected
52
+ actual = item.root_id
53
+ assert_equal expected, actual
54
+ expected = 'Other string'
55
+ item.root_id = expected
56
+ actual = item.root_id
57
+ assert_equal expected, actual
58
+ end
59
+
60
+ def test_synthetic_source_works_as_expected
61
+ expected = 'Test string'
62
+ item = Contracts::Operation.new
63
+ item.synthetic_source = expected
64
+ actual = item.synthetic_source
65
+ assert_equal expected, actual
66
+ expected = 'Other string'
67
+ item.synthetic_source = expected
68
+ actual = item.synthetic_source
69
+ assert_equal expected, actual
70
+ end
71
+
72
+ def test_is_synthetic_works_as_expected
73
+ expected = 'Test string'
74
+ item = Contracts::Operation.new
75
+ item.is_synthetic = expected
76
+ actual = item.is_synthetic
77
+ assert_equal expected, actual
78
+ expected = 'Other string'
79
+ item.is_synthetic = expected
80
+ actual = item.is_synthetic
81
+ assert_equal expected, actual
82
+ end
83
+
84
+ def test_correlation_vector_works_as_expected
85
+ expected = 'Test string'
86
+ item = Contracts::Operation.new
87
+ item.correlation_vector = expected
88
+ actual = item.correlation_vector
89
+ assert_equal expected, actual
90
+ expected = 'Other string'
91
+ item.correlation_vector = expected
92
+ actual = item.correlation_vector
93
+ assert_equal expected, actual
94
+ end
95
+
96
+ def test_to_json_works_as_expected
97
+ item = Contracts::Operation.new
98
+ item.id = 'Test string'
99
+ item.name = 'Test string'
100
+ item.parent_id = 'Test string'
101
+ item.root_id = 'Test string'
102
+ item.synthetic_source = 'Test string'
103
+ item.is_synthetic = 'Test string'
104
+ item.correlation_vector = 'Test string'
105
+ actual = item.to_json
106
+ expected = '{"ai.operation.id":"Test string","ai.operation.name":"Test string","ai.operation.parentId":"Test string","ai.operation.rootId":"Test string","ai.operation.syntheticSource":"Test string","ai.operation.isSynthetic":"Test string","ai.operation.correlationVector":"Test string"}'
107
+ assert_equal expected, actual
108
+ end
109
+ end
@@ -0,0 +1,88 @@
1
+ require_relative '../../../../lib/application_insights/channel/contracts/page_view_data'
2
+ require 'test/unit'
3
+
4
+ include ApplicationInsights::Channel
5
+
6
+ class TestPageViewData < Test::Unit::TestCase
7
+ def test_initialize
8
+ item = Contracts::PageViewData.new
9
+ assert_not_nil item
10
+ end
11
+
12
+ def test_ver_works_as_expected
13
+ expected = 42
14
+ item = Contracts::PageViewData.new
15
+ item.ver = expected
16
+ actual = item.ver
17
+ assert_equal expected, actual
18
+ expected = 13
19
+ item.ver = expected
20
+ actual = item.ver
21
+ assert_equal expected, actual
22
+ end
23
+
24
+ def test_url_works_as_expected
25
+ expected = 'Test string'
26
+ item = Contracts::PageViewData.new
27
+ item.url = expected
28
+ actual = item.url
29
+ assert_equal expected, actual
30
+ expected = 'Other string'
31
+ item.url = expected
32
+ actual = item.url
33
+ assert_equal expected, actual
34
+ end
35
+
36
+ def test_name_works_as_expected
37
+ expected = 'Test string'
38
+ item = Contracts::PageViewData.new
39
+ item.name = expected
40
+ actual = item.name
41
+ assert_equal expected, actual
42
+ expected = 'Other string'
43
+ item.name = expected
44
+ actual = item.name
45
+ assert_equal expected, actual
46
+ end
47
+
48
+ def test_duration_works_as_expected
49
+ expected = 'Test string'
50
+ item = Contracts::PageViewData.new
51
+ item.duration = expected
52
+ actual = item.duration
53
+ assert_equal expected, actual
54
+ expected = 'Other string'
55
+ item.duration = expected
56
+ actual = item.duration
57
+ assert_equal expected, actual
58
+ end
59
+
60
+ def test_properties_works_as_expected
61
+ item = Contracts::PageViewData.new
62
+ actual = item.properties
63
+ assert_not_nil actual
64
+ end
65
+
66
+ def test_measurements_works_as_expected
67
+ item = Contracts::PageViewData.new
68
+ actual = item.measurements
69
+ assert_not_nil actual
70
+ end
71
+
72
+ def test_to_json_works_as_expected
73
+ item = Contracts::PageViewData.new
74
+ item.ver = 42
75
+ item.url = 'Test string'
76
+ item.name = 'Test string'
77
+ item.duration = 'Test string'
78
+ { 'key1' => 'test value 1' , 'key2' => 'test value 2' }.each do |key, value|
79
+ item.properties[key] = value
80
+ end
81
+ { 'key1' => 3.1415 , 'key2' => 42.2 }.each do |key, value|
82
+ item.measurements[key] = value
83
+ end
84
+ actual = item.to_json
85
+ expected = '{"ver":42,"url":"Test string","name":"Test string","duration":"Test string","properties":{"key1":"test value 1","key2":"test value 2"},"measurements":{"key1":3.1415,"key2":42.2}}'
86
+ assert_equal expected, actual
87
+ end
88
+ end
@@ -0,0 +1,209 @@
1
+ require_relative '../../../../lib/application_insights/channel/contracts/remote_dependency_data'
2
+ require 'test/unit'
3
+
4
+ include ApplicationInsights::Channel
5
+
6
+ class TestRemoteDependencyData < Test::Unit::TestCase
7
+ def test_initialize
8
+ item = Contracts::RemoteDependencyData.new
9
+ assert_not_nil item
10
+ end
11
+
12
+ def test_ver_works_as_expected
13
+ expected = 42
14
+ item = Contracts::RemoteDependencyData.new
15
+ item.ver = expected
16
+ actual = item.ver
17
+ assert_equal expected, actual
18
+ expected = 13
19
+ item.ver = expected
20
+ actual = item.ver
21
+ assert_equal expected, actual
22
+ end
23
+
24
+ def test_name_works_as_expected
25
+ expected = 'Test string'
26
+ item = Contracts::RemoteDependencyData.new
27
+ item.name = expected
28
+ actual = item.name
29
+ assert_equal expected, actual
30
+ expected = 'Other string'
31
+ item.name = expected
32
+ actual = item.name
33
+ assert_equal expected, actual
34
+ end
35
+
36
+ def test_kind_works_as_expected
37
+ expected = 5
38
+ item = Contracts::RemoteDependencyData.new
39
+ item.kind = expected
40
+ actual = item.kind
41
+ assert_equal expected, actual
42
+ expected = 3
43
+ item.kind = expected
44
+ actual = item.kind
45
+ assert_equal expected, actual
46
+ end
47
+
48
+ def test_value_works_as_expected
49
+ expected = 1.5
50
+ item = Contracts::RemoteDependencyData.new
51
+ item.value = expected
52
+ actual = item.value
53
+ assert_equal expected, actual
54
+ expected = 4.8
55
+ item.value = expected
56
+ actual = item.value
57
+ assert_equal expected, actual
58
+ end
59
+
60
+ def test_count_works_as_expected
61
+ expected = 42
62
+ item = Contracts::RemoteDependencyData.new
63
+ item.count = expected
64
+ actual = item.count
65
+ assert_equal expected, actual
66
+ expected = 13
67
+ item.count = expected
68
+ actual = item.count
69
+ assert_equal expected, actual
70
+ end
71
+
72
+ def test_min_works_as_expected
73
+ expected = 1.5
74
+ item = Contracts::RemoteDependencyData.new
75
+ item.min = expected
76
+ actual = item.min
77
+ assert_equal expected, actual
78
+ expected = 4.8
79
+ item.min = expected
80
+ actual = item.min
81
+ assert_equal expected, actual
82
+ end
83
+
84
+ def test_max_works_as_expected
85
+ expected = 1.5
86
+ item = Contracts::RemoteDependencyData.new
87
+ item.max = expected
88
+ actual = item.max
89
+ assert_equal expected, actual
90
+ expected = 4.8
91
+ item.max = expected
92
+ actual = item.max
93
+ assert_equal expected, actual
94
+ end
95
+
96
+ def test_std_dev_works_as_expected
97
+ expected = 1.5
98
+ item = Contracts::RemoteDependencyData.new
99
+ item.std_dev = expected
100
+ actual = item.std_dev
101
+ assert_equal expected, actual
102
+ expected = 4.8
103
+ item.std_dev = expected
104
+ actual = item.std_dev
105
+ assert_equal expected, actual
106
+ end
107
+
108
+ def test_dependency_kind_works_as_expected
109
+ expected = 5
110
+ item = Contracts::RemoteDependencyData.new
111
+ item.dependency_kind = expected
112
+ actual = item.dependency_kind
113
+ assert_equal expected, actual
114
+ expected = 3
115
+ item.dependency_kind = expected
116
+ actual = item.dependency_kind
117
+ assert_equal expected, actual
118
+ end
119
+
120
+ def test_success_works_as_expected
121
+ expected = true
122
+ item = Contracts::RemoteDependencyData.new
123
+ item.success = expected
124
+ actual = item.success
125
+ assert_equal expected, actual
126
+ expected = false
127
+ item.success = expected
128
+ actual = item.success
129
+ assert_equal expected, actual
130
+ end
131
+
132
+ def test_async_works_as_expected
133
+ expected = true
134
+ item = Contracts::RemoteDependencyData.new
135
+ item.async = expected
136
+ actual = item.async
137
+ assert_equal expected, actual
138
+ expected = false
139
+ item.async = expected
140
+ actual = item.async
141
+ assert_equal expected, actual
142
+ end
143
+
144
+ def test_dependency_source_works_as_expected
145
+ expected = 5
146
+ item = Contracts::RemoteDependencyData.new
147
+ item.dependency_source = expected
148
+ actual = item.dependency_source
149
+ assert_equal expected, actual
150
+ expected = 3
151
+ item.dependency_source = expected
152
+ actual = item.dependency_source
153
+ assert_equal expected, actual
154
+ end
155
+
156
+ def test_command_name_works_as_expected
157
+ expected = 'Test string'
158
+ item = Contracts::RemoteDependencyData.new
159
+ item.command_name = expected
160
+ actual = item.command_name
161
+ assert_equal expected, actual
162
+ expected = 'Other string'
163
+ item.command_name = expected
164
+ actual = item.command_name
165
+ assert_equal expected, actual
166
+ end
167
+
168
+ def test_dependency_type_name_works_as_expected
169
+ expected = 'Test string'
170
+ item = Contracts::RemoteDependencyData.new
171
+ item.dependency_type_name = expected
172
+ actual = item.dependency_type_name
173
+ assert_equal expected, actual
174
+ expected = 'Other string'
175
+ item.dependency_type_name = expected
176
+ actual = item.dependency_type_name
177
+ assert_equal expected, actual
178
+ end
179
+
180
+ def test_properties_works_as_expected
181
+ item = Contracts::RemoteDependencyData.new
182
+ actual = item.properties
183
+ assert_not_nil actual
184
+ end
185
+
186
+ def test_to_json_works_as_expected
187
+ item = Contracts::RemoteDependencyData.new
188
+ item.ver = 42
189
+ item.name = 'Test string'
190
+ item.kind = 5
191
+ item.value = 1.5
192
+ item.count = 42
193
+ item.min = 1.5
194
+ item.max = 1.5
195
+ item.std_dev = 1.5
196
+ item.dependency_kind = 5
197
+ item.success = true
198
+ item.async = true
199
+ item.dependency_source = 5
200
+ item.command_name = 'Test string'
201
+ item.dependency_type_name = 'Test string'
202
+ { 'key1' => 'test value 1' , 'key2' => 'test value 2' }.each do |key, value|
203
+ item.properties[key] = value
204
+ end
205
+ actual = item.to_json
206
+ expected = '{"ver":42,"name":"Test string","kind":5,"value":1.5,"count":42,"min":1.5,"max":1.5,"stdDev":1.5,"dependencyKind":5,"success":true,"async":true,"dependencySource":5,"commandName":"Test string","dependencyTypeName":"Test string","properties":{"key1":"test value 1","key2":"test value 2"}}'
207
+ assert_equal expected, actual
208
+ end
209
+ end