ducky/devices
11:683050b4546b Browse Files
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/memstore.go Fri Nov 27 10:37:27 2015 -0800 1.2 +++ b/memstore.go Fri Nov 27 11:32:15 2015 -0800 1.3 @@ -40,7 +40,7 @@ 1.4 1.5 device, ok := m.devices[change.DeviceID.String()] 1.6 if !ok { 1.7 - return nil // TODO: return an error 1.8 + return ErrDeviceNotFound 1.9 } 1.10 1.11 device = ApplyChange(device, change)
2.1 --- a/storer_test.go Fri Nov 27 10:37:27 2015 -0800 2.2 +++ b/storer_test.go Fri Nov 27 11:32:15 2015 -0800 2.3 @@ -327,3 +327,35 @@ 2.4 } 2.5 } 2.6 } 2.7 + 2.8 +func TestUpdateDeviceNotFound(t *testing.T) { 2.9 + for _, factory := range storerFactories { 2.10 + ctx := context.Background() 2.11 + storer, err := factory.NewStorer(ctx) 2.12 + if err != nil { 2.13 + t.Fatalf("Fatal error creating Storer from %T: %+v\n", factory, err) 2.14 + } 2.15 + 2.16 + deviceID := uuid.NewID() 2.17 + name := "my new name" 2.18 + change := DeviceChange{DeviceID: deviceID, Name: &name} 2.19 + 2.20 + err = storer.UpdateDevice(change, ctx) 2.21 + if err != ErrDeviceNotFound { 2.22 + t.Errorf("Expected error to be ErrDeviceNotFound, %T returned %+v\n", storer, err) 2.23 + } 2.24 + 2.25 + results, err := storer.GetDevices([]uuid.ID{deviceID}, ctx) 2.26 + if err != nil { 2.27 + t.Errorf("Error retrieving devices from %T: %+v\n", storer, err) 2.28 + } 2.29 + if len(results) != 0 { 2.30 + t.Errorf("Expected no devices in %T, got %+v\n", storer, results) 2.31 + } 2.32 + 2.33 + err = factory.TeardownStorer(storer, ctx) 2.34 + if err != nil { 2.35 + t.Errorf("Error cleaning up after %T: %+v\n", storer, err) 2.36 + } 2.37 + } 2.38 +}