ducky/devices
2015-11-14
Parent:600326d50e74
ducky/devices/device_type.go
Add more interface tests. Add a test to ensure that, when retrieving Devices, no error is returned if a Device cannot be found. Add a test to ensure that, when adding Devices, adding a Device that shares an ID with a Device already in the Storer returns an ErrDeviceAlreadyExists error. This involved creating the ErrDeviceAlreadyExists error, and modifying the in-memory implementation to properly return it. Fix a go vet issue in our previous test, wherein we forgot to pass the storer to a log message, resulting in a mismatch between the number of variables expected and the number of variables provided. Rename our tests to be better reflective of what they actually test.
| paddy@1 | 1 package devices |
| paddy@1 | 2 |
| paddy@1 | 3 const ( |
| paddy@1 | 4 // TypeAndroidTablet is used to designate a Device as an |
| paddy@1 | 5 // Android tablet, usually for display purposes. |
| paddy@1 | 6 TypeAndroidTablet = DeviceType("android_tablet") |
| paddy@1 | 7 // TypeAndroidPhone is used to designate a Device as an |
| paddy@1 | 8 // Android phone, usually for display purposes. |
| paddy@1 | 9 TypeAndroidPhone = DeviceType("android_phone") |
| paddy@1 | 10 // TypeChromeExtension is used to designate a device as a |
| paddy@1 | 11 // Chrome extension, usually for display purposes. |
| paddy@1 | 12 TypeChromeExtension = DeviceType("chrome_extension") |
| paddy@1 | 13 ) |
| paddy@1 | 14 |
| paddy@1 | 15 // DeviceType is an enum specifying which type of Device it is. Usually, |
| paddy@1 | 16 // this is something like `android_phone` or `android_tablet`. |
| paddy@1 | 17 type DeviceType string |
| paddy@1 | 18 |
| paddy@1 | 19 // IsValidDeviceType validates the DeviceType against a list of |
| paddy@1 | 20 // DeviceTypes that have been whitelisted as "valid". |
| paddy@1 | 21 func IsValidDeviceType(d DeviceType) bool { |
| paddy@1 | 22 switch d { |
| paddy@1 | 23 case TypeAndroidTablet: |
| paddy@1 | 24 return true |
| paddy@1 | 25 case TypeAndroidPhone: |
| paddy@1 | 26 return true |
| paddy@1 | 27 case TypeChromeExtension: |
| paddy@1 | 28 return true |
| paddy@1 | 29 default: |
| paddy@1 | 30 return false |
| paddy@1 | 31 } |
| paddy@1 | 32 } |