ducky/devices
ducky/devices/storer_test.go
Return ErrDeviceNotFound when updating devices. If we can't find the Device we're supposed to update, return an ErrDeviceNotFound error. Write a unit test that tests for this behaviour.
1.1 --- a/storer_test.go Fri Nov 27 10:37:27 2015 -0800 1.2 +++ b/storer_test.go Fri Nov 27 11:32:15 2015 -0800 1.3 @@ -327,3 +327,35 @@ 1.4 } 1.5 } 1.6 } 1.7 + 1.8 +func TestUpdateDeviceNotFound(t *testing.T) { 1.9 + for _, factory := range storerFactories { 1.10 + ctx := context.Background() 1.11 + storer, err := factory.NewStorer(ctx) 1.12 + if err != nil { 1.13 + t.Fatalf("Fatal error creating Storer from %T: %+v\n", factory, err) 1.14 + } 1.15 + 1.16 + deviceID := uuid.NewID() 1.17 + name := "my new name" 1.18 + change := DeviceChange{DeviceID: deviceID, Name: &name} 1.19 + 1.20 + err = storer.UpdateDevice(change, ctx) 1.21 + if err != ErrDeviceNotFound { 1.22 + t.Errorf("Expected error to be ErrDeviceNotFound, %T returned %+v\n", storer, err) 1.23 + } 1.24 + 1.25 + results, err := storer.GetDevices([]uuid.ID{deviceID}, ctx) 1.26 + if err != nil { 1.27 + t.Errorf("Error retrieving devices from %T: %+v\n", storer, err) 1.28 + } 1.29 + if len(results) != 0 { 1.30 + t.Errorf("Expected no devices in %T, got %+v\n", storer, results) 1.31 + } 1.32 + 1.33 + err = factory.TeardownStorer(storer, ctx) 1.34 + if err != nil { 1.35 + t.Errorf("Error cleaning up after %T: %+v\n", storer, err) 1.36 + } 1.37 + } 1.38 +}