rspec-openhab-scripting 0.0.17-java → 0.0.18-java
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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ea44768dd3bccdfc7276944f329030e21182d161126e433126970f096543f46
|
4
|
+
data.tar.gz: 81be4550cd3ab271f43e15616959709bb9e5d1cf14a999dd8565e0b148d3a8d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4d70a68375f21fab304d05b620125cf79b5767f3522d5e22a0608301b56e4ed3b2f6baba7942bdfcdb9ffed742378452720b79b7bfc5d7523544087a0bcb15bc
|
7
|
+
data.tar.gz: d2ce66901858dc37eb7c76b5f37f82da6147f1b471b8fc70097037099d677eb01c6e4e25d77e12105847e28156a919e059d5420271f9ce5cfcb0c9af933b4383
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# rubocop:disable Naming have to follow java interface names
|
4
|
+
module RSpec
|
5
|
+
module OpenHAB
|
6
|
+
module Core
|
7
|
+
module Mocks
|
8
|
+
class ThingHandler
|
9
|
+
include org.openhab.core.thing.binding.BridgeHandler
|
10
|
+
|
11
|
+
attr_reader :thing, :callback
|
12
|
+
|
13
|
+
def initialize(thing = nil)
|
14
|
+
# have to handle the interface method
|
15
|
+
if thing.nil?
|
16
|
+
status_info = org.openhab.core.thing.binding.builder.ThingStatusInfoBuilder
|
17
|
+
.create(org.openhab.core.thing.ThingStatus::ONLINE).build
|
18
|
+
@callback.status_updated(self.thing, status_info)
|
19
|
+
return
|
20
|
+
end
|
21
|
+
|
22
|
+
# ruby initializer here
|
23
|
+
@thing = thing
|
24
|
+
end
|
25
|
+
|
26
|
+
def handle_command(channel, command); end
|
27
|
+
|
28
|
+
def set_callback(callback)
|
29
|
+
@callback = callback
|
30
|
+
end
|
31
|
+
|
32
|
+
def child_handler_initialized(child_handler, child_thing); end
|
33
|
+
end
|
34
|
+
|
35
|
+
class ThingHandlerFactory < org.openhab.core.thing.binding.BaseThingHandlerFactory
|
36
|
+
def supportsThingType(_type)
|
37
|
+
true
|
38
|
+
end
|
39
|
+
|
40
|
+
def createHandler(thing)
|
41
|
+
ThingHandler.new(thing)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
# rubocop:enable Naming
|
@@ -71,7 +71,17 @@ module OpenHAB
|
|
71
71
|
class BundleResolver
|
72
72
|
include org.openhab.core.util.BundleResolver
|
73
73
|
|
74
|
-
def
|
74
|
+
def initialize
|
75
|
+
@bundles = {}
|
76
|
+
end
|
77
|
+
|
78
|
+
def register(klass, bundle)
|
79
|
+
@bundles[klass] = bundle
|
80
|
+
end
|
81
|
+
|
82
|
+
def resolve_bundle(klass)
|
83
|
+
@bundles[klass]
|
84
|
+
end
|
75
85
|
end
|
76
86
|
|
77
87
|
# don't depend on org.openhab.core.test
|
@@ -104,13 +114,15 @@ module OpenHAB
|
|
104
114
|
INSTALLED = 2
|
105
115
|
|
106
116
|
def initialize(*jar_args)
|
117
|
+
return if jar_args.empty?
|
118
|
+
|
107
119
|
file = Jars.find_jar(*jar_args)
|
108
120
|
@jar = java.util.jar.JarFile.new(file)
|
109
121
|
@symbolic_name = jar_args[1]
|
110
122
|
@version = org.osgi.framework.Version.new(jar_args[2].tr("-", "."))
|
111
123
|
end
|
112
124
|
|
113
|
-
|
125
|
+
attr_accessor :symbolic_name, :version
|
114
126
|
|
115
127
|
def state
|
116
128
|
INSTALLED
|
@@ -313,6 +325,7 @@ module OpenHAB
|
|
313
325
|
bc = BundleContext.new(em)
|
314
326
|
cc = ComponentContext.new(bc)
|
315
327
|
cc.properties["measurementSystem"] = api.measurement_system if api
|
328
|
+
resolver = BundleResolver.new
|
316
329
|
|
317
330
|
# the registries!
|
318
331
|
ss = VolatileStorageService.new
|
@@ -346,6 +359,7 @@ module OpenHAB
|
|
346
359
|
ttr = org.openhab.core.thing.type.ThingTypeRegistry.new(ctr)
|
347
360
|
OpenHAB::Core::OSGI.register_service(ttr)
|
348
361
|
ttr.add_thing_type_provider(RSpec::OpenHAB::Core::Mocks::ThingTypeProvider.instance)
|
362
|
+
cgtr = org.openhab.core.thing.type.ChannelGroupTypeRegistry.new
|
349
363
|
|
350
364
|
safe_emf = org.openhab.core.model.core.internal.SafeEMFImpl.new
|
351
365
|
model_repository = org.openhab.core.model.core.internal.ModelRepositoryImpl.new(safe_emf)
|
@@ -410,18 +424,18 @@ module OpenHAB
|
|
410
424
|
|
411
425
|
# link up event bus infrastructure
|
412
426
|
iu = org.openhab.core.internal.items.ItemUpdater.new(ir)
|
413
|
-
ief = org.openhab.core.items.events.ItemEventFactory.new
|
414
427
|
|
415
428
|
sc = SafeCaller.new
|
416
429
|
aum = org.openhab.core.thing.internal.AutoUpdateManager.new(
|
417
430
|
{ "enabled" => true, "sendOptimisticUpdates" => true }, ctr, ep, iclr, mr, tr
|
418
431
|
)
|
419
|
-
spf = org.openhab.core.thing.internal.profiles.SystemProfileFactory.new(ctr, nil,
|
432
|
+
spf = org.openhab.core.thing.internal.profiles.SystemProfileFactory.new(ctr, nil, resolver)
|
420
433
|
cm = org.openhab.core.thing.internal.CommunicationManager.new(aum, ctr, spf, iclr, ir, isc, ep, sc, tr)
|
421
434
|
|
422
435
|
em.add_event_subscriber(iu)
|
423
436
|
em.add_event_subscriber(cm)
|
424
|
-
em.add_event_factory(
|
437
|
+
em.add_event_factory(org.openhab.core.items.events.ItemEventFactory.new)
|
438
|
+
em.add_event_factory(org.openhab.core.thing.events.ThingEventFactory.new)
|
425
439
|
|
426
440
|
# set up the rules engine part 2
|
427
441
|
k = org.openhab.core.automation.internal.module.factory.CoreModuleHandlerFactory
|
@@ -464,6 +478,31 @@ module OpenHAB
|
|
464
478
|
pm = org.openhab.core.persistence.internal.PersistenceManagerImpl.new(nil, ir, sc, rs)
|
465
479
|
pm.add_persistence_service(ps)
|
466
480
|
pm.on_ready_marker_added(nil)
|
481
|
+
|
482
|
+
# set up ThingManager so we can trigger channels
|
483
|
+
localizer = org.openhab.core.thing.i18n.ThingStatusInfoI18nLocalizationService.new
|
484
|
+
tm = org.openhab.core.thing.internal.ThingManagerImpl.new(
|
485
|
+
resolver,
|
486
|
+
cgtr,
|
487
|
+
ctr,
|
488
|
+
cm,
|
489
|
+
nil,
|
490
|
+
nil,
|
491
|
+
ep,
|
492
|
+
iclr,
|
493
|
+
rs,
|
494
|
+
sc,
|
495
|
+
ss,
|
496
|
+
tr,
|
497
|
+
localizer,
|
498
|
+
ttr
|
499
|
+
)
|
500
|
+
thf = RSpec::OpenHAB::Core::Mocks::ThingHandlerFactory.new
|
501
|
+
this_bundle = Bundle.new
|
502
|
+
this_bundle.symbolic_name = "org.openhab.automation.jrubyscripting.rspec"
|
503
|
+
resolver.register(thf.class.java_class, this_bundle)
|
504
|
+
tm.add_thing_handler_factory(thf)
|
505
|
+
tm.on_ready_marker_added(org.openhab.core.service.ReadyMarker.new(nil, this_bundle.symbolic_name))
|
467
506
|
end
|
468
507
|
end
|
469
508
|
end
|
@@ -24,6 +24,13 @@ module RSpec
|
|
24
24
|
@rules.fetch(rule_name).execute(nil, { "event" => event })
|
25
25
|
end
|
26
26
|
|
27
|
+
def trigger_channel(channel, event)
|
28
|
+
channel = org.openhab.core.thing.ChannelUID.new(channel) if channel.is_a?(String)
|
29
|
+
channel = channel.uid if channel.is_a?(org.openhab.core.thing.Channel)
|
30
|
+
thing = channel.thing
|
31
|
+
thing.handler.callback.channel_triggered(nil, channel, event)
|
32
|
+
end
|
33
|
+
|
27
34
|
private
|
28
35
|
|
29
36
|
def restore_autoupdate_items
|
data/lib/rspec/openhab/items.rb
CHANGED
@@ -3,18 +3,6 @@
|
|
3
3
|
module RSpec
|
4
4
|
module OpenHAB
|
5
5
|
module Items
|
6
|
-
class ThingHandler
|
7
|
-
include org.openhab.core.thing.binding.ThingHandler
|
8
|
-
|
9
|
-
attr_reader :thing
|
10
|
-
|
11
|
-
def initialize(thing)
|
12
|
-
@thing = thing
|
13
|
-
end
|
14
|
-
|
15
|
-
def handle_command(channel, command); end
|
16
|
-
end
|
17
|
-
|
18
6
|
class << self
|
19
7
|
def populate_items_from_api(api)
|
20
8
|
all_items = api.items
|
@@ -103,14 +91,7 @@ module RSpec
|
|
103
91
|
end
|
104
92
|
end
|
105
93
|
|
106
|
-
|
107
|
-
# pretend everything is online so that AutoUpdateManager won't reject updates
|
108
|
-
# to items linked to offline channels
|
109
|
-
thing.status_info = org.openhab.core.thing.binding.builder.ThingStatusInfoBuilder
|
110
|
-
.create(org.openhab.core.thing.ThingStatus::ONLINE).build
|
111
|
-
handler = ThingHandler.new(thing)
|
112
|
-
thing.handler = handler
|
113
|
-
$things.add(thing)
|
94
|
+
$things.add(builder.build)
|
114
95
|
end
|
115
96
|
end
|
116
97
|
|
@@ -70,6 +70,7 @@ OpenHAB::Log.logger("org.openhab.automation.jruby.logger").level = :warn
|
|
70
70
|
require "rspec/openhab/core/mocks/channel_type_provider"
|
71
71
|
require "rspec/openhab/core/mocks/item_channel_link_provider"
|
72
72
|
require "rspec/openhab/core/mocks/persistence_service"
|
73
|
+
require "rspec/openhab/core/mocks/thing_handler"
|
73
74
|
require "rspec/openhab/core/mocks/thing_type_provider"
|
74
75
|
require "openhab/dsl/imports"
|
75
76
|
OpenHAB::DSL::Imports.api = api
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-openhab-scripting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.18
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Cody Cutrer
|
@@ -195,6 +195,7 @@ files:
|
|
195
195
|
- lib/rspec/openhab/core/mocks/channel_type_provider.rb
|
196
196
|
- lib/rspec/openhab/core/mocks/item_channel_link_provider.rb
|
197
197
|
- lib/rspec/openhab/core/mocks/persistence_service.rb
|
198
|
+
- lib/rspec/openhab/core/mocks/thing_handler.rb
|
198
199
|
- lib/rspec/openhab/core/mocks/thing_type_provider.rb
|
199
200
|
- lib/rspec/openhab/core/openhab_setup.rb
|
200
201
|
- lib/rspec/openhab/core/osgi.rb
|