win32-service 0.5.2 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,83 @@
1
+ ########################################################################
2
+ # tc_service_create.rb
3
+ #
4
+ # Test case for the Service.create method. This test case will create
5
+ # a dummy (notepad) service. It won't actually run of course.
6
+ ########################################################################
7
+ require 'win32/service'
8
+ require 'test/unit'
9
+
10
+ class TC_Service_Create < Test::Unit::TestCase
11
+ def setup
12
+ @notepad = "C:\\windows\\system32\\notepad.exe"
13
+ @service = 'notepad'
14
+ @info = nil
15
+ end
16
+
17
+ def test_create_basic
18
+ assert_respond_to(Win32::Service, :new)
19
+ assert_respond_to(Win32::Service, :create)
20
+ end
21
+
22
+ def test_create_with_minimal_options
23
+ assert_nothing_raised{
24
+ Win32::Service.new(@service, nil, :binary_path_name => @notepad)
25
+ }
26
+
27
+ assert_equal(true, Win32::Service.exists?(@service))
28
+ assert_nothing_raised{ @info = Win32::Service.config_info(@service) }
29
+
30
+ assert_equal('own process, interactive', @info.service_type)
31
+ assert_equal('demand start', @info.start_type)
32
+ assert_equal('normal', @info.error_control)
33
+ assert_equal(@notepad, @info.binary_path_name)
34
+ assert_equal('', @info.load_order_group)
35
+ assert_equal(0, @info.tag_id)
36
+ assert_equal([], @info.dependencies)
37
+ assert_equal('LocalSystem', @info.service_start_name)
38
+ assert_equal('notepad', @info.display_name)
39
+ end
40
+
41
+ def test_create_with_most_options
42
+ assert_nothing_raised{
43
+ Win32::Service.new(@service, nil,
44
+ :display_name => 'Notepad Test',
45
+ :desired_access => Win32::Service::ALL_ACCESS,
46
+ :service_type => Win32::Service::WIN32_OWN_PROCESS,
47
+ :start_type => Win32::Service::DISABLED,
48
+ :error_control => Win32::Service::ERROR_IGNORE,
49
+ :binary_path_name => @notepad,
50
+ :load_order_group => 'Network',
51
+ :dependencies => 'W32Time',
52
+ :description => 'Test service. Please delete me'
53
+ )
54
+ }
55
+ assert_equal(true, Win32::Service.exists?(@service))
56
+ assert_nothing_raised{ @info = Win32::Service.config_info(@service) }
57
+
58
+ assert_equal('own process', @info.service_type)
59
+ assert_equal('disabled', @info.start_type)
60
+ assert_equal('ignore', @info.error_control)
61
+ assert_equal(@notepad, @info.binary_path_name)
62
+ assert_equal('Network', @info.load_order_group)
63
+ assert_equal(0, @info.tag_id)
64
+ assert_equal(['W32Time'], @info.dependencies)
65
+ assert_equal('LocalSystem', @info.service_start_name)
66
+ assert_equal('Notepad Test', @info.display_name)
67
+ end
68
+
69
+ def test_create_expected_errors
70
+ assert_raise(ArgumentError){ Win32::Service.new }
71
+ assert_raise(ArgumentError){ Win32::Service.new(@service) }
72
+ assert_raise(ArgumentError){ Win32::Service.new(@service, 'bogus') }
73
+ end
74
+
75
+ def teardown
76
+ Win32::Service.delete(@service) if Win32::Service.exists?(@service)
77
+ sleep 1 while Win32::Service.exists?(@service)
78
+
79
+ @notepad = nil
80
+ @service = nil
81
+ @status = nil
82
+ end
83
+ end
@@ -0,0 +1,170 @@
1
+ ########################################################################
2
+ # tc_service_info.rb
3
+ #
4
+ # Test case for the Struct::ServiceInfo structure.
5
+ ########################################################################
6
+ require 'win32/service'
7
+ require 'test/unit'
8
+
9
+ class TC_Struct_ServiceInfo < Test::Unit::TestCase
10
+ def setup
11
+ @services = Win32::Service.services
12
+ @service_info = @services[0]
13
+
14
+ @error_controls = [
15
+ 'critical',
16
+ 'ignore',
17
+ 'normal',
18
+ 'severe',
19
+ nil
20
+ ]
21
+
22
+ @start_types = [
23
+ 'auto start',
24
+ 'boot start',
25
+ 'demand start',
26
+ 'disabled',
27
+ 'system start',
28
+ nil
29
+ ]
30
+
31
+ @types = [
32
+ 'file system driver',
33
+ 'kernel driver',
34
+ 'own process',
35
+ 'share process',
36
+ 'recognizer token',
37
+ 'driver',
38
+ 'win32',
39
+ 'all',
40
+ 'own process, interactive',
41
+ 'share process, interactive',
42
+ nil
43
+ ]
44
+
45
+ @states = [
46
+ 'continue pending',
47
+ 'pause pending',
48
+ 'paused',
49
+ 'running',
50
+ 'start pending',
51
+ 'stop pending',
52
+ 'stopped',
53
+ nil
54
+ ]
55
+
56
+ @controls = [
57
+ 'netbind change',
58
+ 'param change',
59
+ 'pause continue',
60
+ 'shutdown',
61
+ 'stop',
62
+ 'hardware profile change',
63
+ 'power event',
64
+ 'session change',
65
+ nil
66
+ ]
67
+ end
68
+
69
+ def test_service_info_info_service_name
70
+ assert_respond_to(@service_info, :service_name)
71
+ assert_kind_of(String, @service_info.service_name)
72
+ end
73
+
74
+ def test_service_info_info_display_name
75
+ assert_respond_to(@service_info, :display_name)
76
+ assert_kind_of(String, @service_info.display_name)
77
+ end
78
+
79
+ def test_service_info_info_service_type
80
+ assert_respond_to(@service_info, :service_type)
81
+ assert(@types.include?(@service_info.service_type))
82
+ end
83
+
84
+ def test_service_info_current_state
85
+ assert_respond_to(@service_info, :current_state)
86
+ assert(@states.include?(@service_info.current_state))
87
+ end
88
+
89
+ def test_service_info_controls_accepted
90
+ assert_respond_to(@service_info, :controls_accepted)
91
+ assert(@controls.include?(@service_info.controls_accepted))
92
+ end
93
+
94
+ def test_service_info_win32_exit_code
95
+ assert_respond_to(@service_info, :win32_exit_code)
96
+ assert_kind_of(Fixnum, @service_info.win32_exit_code)
97
+ end
98
+
99
+ def test_service_info_service_specific_exit_code
100
+ assert_respond_to(@service_info, :service_specific_exit_code)
101
+ assert_kind_of(Fixnum, @service_info.service_specific_exit_code)
102
+ end
103
+
104
+ def test_service_info_check_point
105
+ assert_respond_to(@service_info, :check_point)
106
+ assert_kind_of(Fixnum, @service_info.check_point)
107
+ end
108
+
109
+ def test_service_info_wait_hint
110
+ assert_respond_to(@service_info, :wait_hint)
111
+ assert_kind_of(Fixnum, @service_info.wait_hint)
112
+ end
113
+
114
+ def test_service_info_binary_path_name
115
+ assert_respond_to(@service_info, :binary_path_name)
116
+ assert_kind_of(String, @service_info.binary_path_name)
117
+ end
118
+
119
+ def test_service_info_start_type
120
+ assert_respond_to(@service_info, :start_type)
121
+ assert(@start_types.include?(@service_info.start_type))
122
+ end
123
+
124
+ def test_service_info_error_control
125
+ assert_respond_to(@service_info, :error_control)
126
+ assert(@error_controls.include?(@service_info.error_control))
127
+ end
128
+
129
+ def test_service_info_load_order_group
130
+ assert_respond_to(@service_info, :load_order_group)
131
+ assert_kind_of(String, @service_info.load_order_group)
132
+ end
133
+
134
+ def test_service_info_tag_id
135
+ assert_respond_to(@service_info, :tag_id)
136
+ assert_kind_of(Fixnum, @service_info.tag_id)
137
+ end
138
+
139
+ def test_service_info_start_name
140
+ assert_respond_to(@service_info, :start_name)
141
+ assert_kind_of(String, @service_info.start_name)
142
+ end
143
+
144
+ def test_service_info_dependencies
145
+ assert_respond_to(@service_info, :dependencies)
146
+ assert_kind_of(Array, @service_info.dependencies)
147
+ end
148
+
149
+ def test_service_info_description
150
+ assert_respond_to(@service_info, :description)
151
+ assert_kind_of(String, @service_info.description)
152
+ end
153
+
154
+ def test_service_info_interactive
155
+ assert_respond_to(@service_info, :interactive)
156
+ assert([true, false].include?(@service_info.interactive))
157
+ end
158
+
159
+ def test_service_info_service_flags
160
+ assert_respond_to(@service_info, :service_flags)
161
+ assert([0,1].include?(@service_info.service_flags))
162
+ end
163
+
164
+ def teardown
165
+ @services = nil
166
+ @types = nil
167
+ @states = nil
168
+ @controls = nil
169
+ end
170
+ end
@@ -0,0 +1,108 @@
1
+ ########################################################################
2
+ # tc_service_status.rb
3
+ #
4
+ # Test case for the Struct::ServiceStatus struct.
5
+ ########################################################################
6
+ require 'win32/service'
7
+ require 'test/unit'
8
+
9
+ class TC_Struct_ServiceStatus < Test::Unit::TestCase
10
+ def setup
11
+ @service_name = 'Schedule'
12
+ @service_stat = Win32::Service.status(@service_name)
13
+
14
+ @types = [
15
+ 'file system driver',
16
+ 'kernel driver',
17
+ 'own process',
18
+ 'share process',
19
+ 'recognizer token',
20
+ 'driver',
21
+ 'win32',
22
+ 'all',
23
+ 'own process, interactive',
24
+ 'share process, interactive',
25
+ nil
26
+ ]
27
+
28
+ @states = [
29
+ 'continue pending',
30
+ 'pause pending',
31
+ 'paused',
32
+ 'running',
33
+ 'start pending',
34
+ 'stop pending',
35
+ 'stopped',
36
+ nil
37
+ ]
38
+
39
+ @controls = [
40
+ 'netbind change',
41
+ 'param change',
42
+ 'pause continue',
43
+ 'shutdown',
44
+ 'stop',
45
+ 'hardware profile change',
46
+ 'power event',
47
+ 'session change',
48
+ nil
49
+ ]
50
+ end
51
+
52
+ def test_service_status_service_type
53
+ assert_respond_to(@service_stat, :service_type)
54
+ assert(@types.include?(@service_stat.service_type))
55
+ end
56
+
57
+ def test_service_status_current_state
58
+ assert_respond_to(@service_stat, :current_state)
59
+ assert(@states.include?(@service_stat.current_state))
60
+ end
61
+
62
+ def test_service_status_controls_accepted
63
+ assert_respond_to(@service_stat, :controls_accepted)
64
+ assert(@controls.include?(@service_stat.controls_accepted))
65
+ end
66
+
67
+ def test_service_status_win32_exit_code
68
+ assert_respond_to(@service_stat, :win32_exit_code)
69
+ assert_kind_of(Fixnum, @service_stat.win32_exit_code)
70
+ end
71
+
72
+ def test_service_status_service_specific_exit_code
73
+ assert_respond_to(@service_stat, :service_specific_exit_code)
74
+ assert_kind_of(Fixnum, @service_stat.service_specific_exit_code)
75
+ end
76
+
77
+ def test_service_status_check_point
78
+ assert_respond_to(@service_stat, :check_point)
79
+ assert_kind_of(Fixnum, @service_stat.check_point)
80
+ end
81
+
82
+ def test_service_status_wait_hint
83
+ assert_respond_to(@service_stat, :wait_hint)
84
+ assert_kind_of(Fixnum, @service_stat.wait_hint)
85
+ end
86
+
87
+ def test_service_status_interactive
88
+ assert_respond_to(@service_stat, :interactive)
89
+ assert([true, false].include?(@service_stat.interactive))
90
+ end
91
+
92
+ def test_service_status_pid
93
+ assert_respond_to(@service_stat, :pid)
94
+ assert_kind_of(Fixnum, @service_stat.pid)
95
+ end
96
+
97
+ def test_service_status_service_flags
98
+ assert_respond_to(@service_stat, :service_flags)
99
+ assert_kind_of(Fixnum, @service_stat.service_flags)
100
+ end
101
+
102
+ def teardown
103
+ @service_stat = nil
104
+ @types = nil
105
+ @states = nil
106
+ @controls = nil
107
+ end
108
+ end
metadata CHANGED
@@ -1,58 +1,81 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.0
3
- specification_version: 1
4
2
  name: win32-service
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.5.2
7
- date: 2006-11-25 00:00:00 -07:00
8
- summary: An interface for MS Windows services
9
- require_paths:
10
- - lib
11
- email: djberg96@gmail.com
12
- homepage: http://www.rubyforge.org/projects/win32utils
13
- rubyforge_project: win32utils
14
- description: An interface for MS Windows services
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 1.8.2
24
- version:
4
+ version: 0.6.0
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Daniel J. Berger
31
- files:
32
- - doc/daemon.txt
33
- - doc/service.txt
34
- - test/tc_daemon.rb
35
- - test/tc_service.rb
36
- - lib/win32/service.c
37
- - lib/win32/service.h
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2007-11-25 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: windows-pr
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.7.3
23
+ version:
24
+ description: An library for controlling and creating MS Windows services
25
+ email: djberg96@gmail.com
26
+ executables: []
27
+
28
+ extensions:
29
+ - ext/extconf.rb
30
+ extra_rdoc_files:
38
31
  - CHANGES
39
32
  - README
40
33
  - MANIFEST
41
- test_files:
34
+ - ext/win32/daemon.c
35
+ - doc/service.txt
36
+ - doc/daemon.txt
37
+ files:
38
+ - test/tc_daemon.rb
42
39
  - test/tc_service.rb
43
- rdoc_options: []
44
-
45
- extra_rdoc_files:
40
+ - test/tc_service_create.rb
41
+ - test/tc_service_info.rb
42
+ - test/tc_service_status.rb
43
+ - lib/win32/service.rb
46
44
  - CHANGES
47
45
  - README
48
46
  - MANIFEST
47
+ - ext/win32/daemon.c
49
48
  - doc/service.txt
50
49
  - doc/daemon.txt
51
- executables: []
50
+ has_rdoc: true
51
+ homepage: http://www.rubyforge.org/projects/win32utils
52
+ post_install_message:
53
+ rdoc_options: []
52
54
 
53
- extensions:
54
- - extconf.rb
55
+ require_paths:
56
+ - lib
57
+ required_ruby_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 1.8.2
62
+ version:
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: "0"
68
+ version:
55
69
  requirements: []
56
70
 
57
- dependencies: []
58
-
71
+ rubyforge_project: win32utils
72
+ rubygems_version: 0.9.5
73
+ signing_key:
74
+ specification_version: 2
75
+ summary: An library for controlling and creating MS Windows services
76
+ test_files:
77
+ - test/tc_daemon.rb
78
+ - test/tc_service.rb
79
+ - test/tc_service_create.rb
80
+ - test/tc_service_info.rb
81
+ - test/tc_service_status.rb