talos/internal/pkg/event/event_test.go
Andrew Rynhard 8f10647d3f fix: set extra kernel args for all platforms
This change ensures that the installer has access to the machine config
so that it can set the extra kernel arguments when installing.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-09-23 11:50:13 -07:00

67 lines
1.5 KiB
Go

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package event_test
import (
"testing"
"github.com/stretchr/testify/suite"
"github.com/talos-systems/talos/internal/pkg/event"
)
type EventSuite struct {
suite.Suite
}
func (suite *EventSuite) TestBus() {
// publish event without subscribers
event.Bus().Notify(event.Event{Type: event.Shutdown})
subscriber1 := struct {
*event.Embeddable
}{
&event.Embeddable{},
}
subscriber2 := struct {
*event.Embeddable
}{
&event.Embeddable{},
}
event.Bus().Register(subscriber1)
defer event.Bus().Unregister(subscriber1)
event.Bus().Register(subscriber2)
defer event.Bus().Unregister(subscriber2)
select {
case <-subscriber1.Channel():
suite.Require().Fail("no previous messages should be delivered")
default:
}
// test fan-out
event.Bus().Notify(event.Event{Type: event.Reboot})
suite.Assert().Equal(event.Event{Type: event.Reboot, Data: nil}, <-subscriber1.Channel())
suite.Assert().Equal(event.Event{Type: event.Reboot, Data: nil}, <-subscriber2.Channel())
event.Bus().Unregister(subscriber2)
event.Bus().Notify(event.Event{Type: event.Upgrade})
select {
case <-subscriber2.Channel():
suite.Require().Fail("message to subscriber2 should not be delivered")
default:
}
suite.Assert().Equal(event.Event{Type: event.Upgrade, Data: nil}, <-subscriber1.Channel())
}
func TestEventSuite(t *testing.T) {
suite.Run(t, new(EventSuite))
}