add new watch event type

pull/6/head
Daniel Smith 2014-09-22 16:11:43 -07:00
parent 8b6de5af83
commit 05eff2e910
2 changed files with 13 additions and 2 deletions

View File

@ -41,14 +41,18 @@ const (
Added EventType = "ADDED" Added EventType = "ADDED"
Modified EventType = "MODIFIED" Modified EventType = "MODIFIED"
Deleted EventType = "DELETED" Deleted EventType = "DELETED"
Error EventType = "ERROR"
) )
// Event represents a single event to a watched resource. // Event represents a single event to a watched resource.
type Event struct { type Event struct {
Type EventType Type EventType
// If Type == Deleted, then this is the state of the object // Object is:
// immediately before deletion. // * If Type is Added or Modified: the new state of the object.
// * If Type is Deleted: the state of the object immediately before deletion.
// * If Type is Error: *api.Status is recommended; other types may make sense
// depending on context.
Object runtime.Object Object runtime.Object
} }
@ -94,6 +98,11 @@ func (f *FakeWatcher) Delete(lastValue runtime.Object) {
f.result <- Event{Deleted, lastValue} f.result <- Event{Deleted, lastValue}
} }
// Error sends an Error event.
func (f *FakeWatcher) Error(errValue runtime.Object) {
f.result <- Event{Error, errValue}
}
// Action sends an event of the requested type, for table-based testing. // Action sends an event of the requested type, for table-based testing.
func (f *FakeWatcher) Action(action EventType, obj runtime.Object) { func (f *FakeWatcher) Action(action EventType, obj runtime.Object) {
f.result <- Event{action, obj} f.result <- Event{action, obj}

View File

@ -35,6 +35,7 @@ func TestFake(t *testing.T) {
{Modified, testType("qux")}, {Modified, testType("qux")},
{Modified, testType("bar")}, {Modified, testType("bar")},
{Deleted, testType("bar")}, {Deleted, testType("bar")},
{Error, testType("error: blah")},
} }
// Prove that f implements Interface by phrasing this as a function. // Prove that f implements Interface by phrasing this as a function.
@ -62,6 +63,7 @@ func TestFake(t *testing.T) {
f.Action(Modified, testType("qux")) f.Action(Modified, testType("qux"))
f.Modify(testType("bar")) f.Modify(testType("bar"))
f.Delete(testType("bar")) f.Delete(testType("bar"))
f.Error(testType("error: blah"))
f.Stop() f.Stop()
} }