Feature: An indoor blackout Curtain.
It should be closed at sunset or when some user is asleep.
It should be opened when the user is awake after sunrise.
It could be forced opened or forced closed.
Scenario Outline: The Curtain react to sun twilight and user sleepiness events.
Examples:
sleepiness |
sun_twilight |
from_state |
event |
to_state |
---|---|---|---|---|
Awake |
Sunrise |
curtain.indoor.blackout.state.opened |
event.sun.twilight.civil.Event.Sunrise |
curtain.indoor.blackout.state.opened |
Awake |
Sunrise |
curtain.indoor.blackout.state.opened |
event.sun.twilight.civil.Event.Sunset |
curtain.indoor.blackout.state.closed |
Awake |
Sunrise |
curtain.indoor.blackout.state.opened |
event.sleepiness.Event.Awake |
curtain.indoor.blackout.state.opened |
Awake |
Sunrise |
curtain.indoor.blackout.state.opened |
event.sleepiness.Event.Asleep |
curtain.indoor.blackout.state.closed |
Awake |
Sunrise |
curtain.indoor.blackout.state.opened |
event.sleepiness.Event.Sleepy |
curtain.indoor.blackout.state.opened |
Awake |
Sunset |
curtain.indoor.blackout.state.closed |
event.sun.twilight.civil.Event.Sunrise |
curtain.indoor.blackout.state.opened |
Awake |
Sunset |
curtain.indoor.blackout.state.closed |
event.sun.twilight.civil.Event.Sunset |
curtain.indoor.blackout.state.closed |
Awake |
Sunset |
curtain.indoor.blackout.state.closed |
event.sleepiness.Event.Awake |
curtain.indoor.blackout.state.closed |
Awake |
Sunset |
curtain.indoor.blackout.state.closed |
event.sleepiness.Event.Asleep |
curtain.indoor.blackout.state.closed |
Awake |
Sunset |
curtain.indoor.blackout.state.closed |
event.sleepiness.Event.Sleepy |
curtain.indoor.blackout.state.closed |
Asleep |
Sunrise |
curtain.indoor.blackout.state.closed |
event.sun.twilight.civil.Event.Sunrise |
curtain.indoor.blackout.state.closed |
Asleep |
Sunrise |
curtain.indoor.blackout.state.closed |
event.sun.twilight.civil.Event.Sunset |
curtain.indoor.blackout.state.closed |
Asleep |
Sunrise |
curtain.indoor.blackout.state.closed |
event.sleepiness.Event.Awake |
curtain.indoor.blackout.state.opened |
Asleep |
Sunrise |
curtain.indoor.blackout.state.closed |
event.sleepiness.Event.Asleep |
curtain.indoor.blackout.state.closed |
Asleep |
Sunrise |
curtain.indoor.blackout.state.closed |
event.sleepiness.Event.Sleepy |
curtain.indoor.blackout.state.opened |
Asleep |
Sunset |
curtain.indoor.blackout.state.closed |
event.sun.twilight.civil.Event.Sunrise |
curtain.indoor.blackout.state.closed |
Asleep |
Sunset |
curtain.indoor.blackout.state.closed |
event.sun.twilight.civil.Event.Sunset |
curtain.indoor.blackout.state.closed |
Asleep |
Sunset |
curtain.indoor.blackout.state.closed |
event.sleepiness.Event.Awake |
curtain.indoor.blackout.state.closed |
Asleep |
Sunset |
curtain.indoor.blackout.state.closed |
event.sleepiness.Event.Asleep |
curtain.indoor.blackout.state.closed |
Asleep |
Sunset |
curtain.indoor.blackout.state.closed |
event.sleepiness.Event.Sleepy |
curtain.indoor.blackout.state.closed |
Sleepy |
Sunrise |
curtain.indoor.blackout.state.opened |
event.sun.twilight.civil.Event.Sunrise |
curtain.indoor.blackout.state.opened |
Sleepy |
Sunrise |
curtain.indoor.blackout.state.opened |
event.sun.twilight.civil.Event.Sunset |
curtain.indoor.blackout.state.closed |
Sleepy |
Sunrise |
curtain.indoor.blackout.state.opened |
event.sleepiness.Event.Awake |
curtain.indoor.blackout.state.opened |
Sleepy |
Sunrise |
curtain.indoor.blackout.state.opened |
event.sleepiness.Event.Asleep |
curtain.indoor.blackout.state.closed |
Sleepy |
Sunrise |
curtain.indoor.blackout.state.opened |
event.sleepiness.Event.Sleepy |
curtain.indoor.blackout.state.opened |
Sleepy |
Sunset |
curtain.indoor.blackout.state.closed |
event.sun.twilight.civil.Event.Sunrise |
curtain.indoor.blackout.state.opened |
Sleepy |
Sunset |
curtain.indoor.blackout.state.closed |
event.sun.twilight.civil.Event.Sunset |
curtain.indoor.blackout.state.closed |
Sleepy |
Sunset |
curtain.indoor.blackout.state.closed |
event.sleepiness.Event.Awake |
curtain.indoor.blackout.state.closed |
Sleepy |
Sunset |
curtain.indoor.blackout.state.closed |
event.sleepiness.Event.Asleep |
curtain.indoor.blackout.state.closed |
Sleepy |
Sunset |
curtain.indoor.blackout.state.closed |
event.sleepiness.Event.Sleepy |
curtain.indoor.blackout.state.closed |
Scenario Outline: The Curtain react to forced opened/closed events
Examples:
sleepiness |
sun_twilight |
from_state |
event |
to_state |
---|---|---|---|---|
Awake |
Sunrise |
curtain.indoor.blackout.state.opened |
appliance.curtain.event.forced.Event.Opened |
curtain.indoor.blackout.state.opened |
Awake |
Sunrise |
curtain.indoor.blackout.state.opened |
appliance.curtain.event.forced.Event.Closed |
curtain.indoor.blackout.state.forced.closed |
Awake |
Sunset |
curtain.indoor.blackout.state.closed |
appliance.curtain.event.forced.Event.Opened |
curtain.indoor.blackout.state.forced.opened |
Awake |
Sunset |
curtain.indoor.blackout.state.closed |
appliance.curtain.event.forced.Event.Closed |
curtain.indoor.blackout.state.closed |
Scenario Outline: The Curtain react to forced opened/closed events from a forced opened state
Examples:
sleepiness |
sun_twilight |
from_state |
event |
to_state |
---|---|---|---|---|
Awake |
Sunrise |
curtain.indoor.blackout.state.opened |
appliance.curtain.event.forced.Event.Opened |
curtain.indoor.blackout.state.opened |
Awake |
Sunrise |
curtain.indoor.blackout.state.opened |
appliance.curtain.event.forced.Event.Closed |
curtain.indoor.blackout.state.forced.closed |
Awake |
Sunset |
curtain.indoor.blackout.state.forced.opened |
appliance.curtain.event.forced.Event.Opened |
curtain.indoor.blackout.state.forced.opened |
Awake |
Sunset |
curtain.indoor.blackout.state.forced.opened |
appliance.curtain.event.forced.Event.Closed |
curtain.indoor.blackout.state.closed |
Scenario Outline: The Curtain react to forced opened/closed events from a forced closed state
Examples:
sleepiness |
sun_twilight |
from_state |
event |
to_state |
---|---|---|---|---|
Awake |
Sunrise |
curtain.indoor.blackout.state.forced.closed |
appliance.curtain.event.forced.Event.Opened |
curtain.indoor.blackout.state.opened |
Awake |
Sunrise |
curtain.indoor.blackout.state.forced.closed |
appliance.curtain.event.forced.Event.Closed |
curtain.indoor.blackout.state.forced.closed |
Awake |
Sunset |
curtain.indoor.blackout.state.closed |
appliance.curtain.event.forced.Event.Opened |
curtain.indoor.blackout.state.forced.opened |
Awake |
Sunset |
curtain.indoor.blackout.state.closed |
appliance.curtain.event.forced.Event.Closed |
curtain.indoor.blackout.state.closed |
Scenario Outline: The Curtain shows its state
Examples:
sleepiness |
sun_twilight |
forced |
state |
response |
---|---|---|---|---|
Awake |
Sunrise |
Not |
curtain.indoor.blackout.state.opened |
True |
Awake |
Sunset |
Not |
curtain.indoor.blackout.state.closed |
False |
Awake |
Sunrise |
Closed |
curtain.indoor.blackout.state.forced.closed |
False |
Awake |
Sunset |
Opened |
curtain.indoor.blackout.state.forced.opened |
True |