Skip to content

Commit

Permalink
fix: Thermostat will have multiple states not multiple traits
Browse files Browse the repository at this point in the history
  • Loading branch information
rlperez committed Jan 20, 2022
1 parent 5bfa5e3 commit 36b323b
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 29 deletions.
12 changes: 1 addition & 11 deletions lib/providers/thermostat_provider.dart
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,6 @@ class ThermostatProvider extends DeviceProvider {
as ThermostatTrait?;
}

List<ThermostatTrait> getThermostatTraits() {
return deviceDetail?.traits
.whereType<ThermostatTrait>()
.toList(growable: false) ??
<ThermostatTrait>[];
}
Future<void> setPointAction(String deviceId, double temperature,
{SetPointActionFunction setPoint =
ThermostatRepository.setPointThermostat}) async {
Expand All @@ -46,11 +40,7 @@ class ThermostatProvider extends DeviceProvider {
() => setMode(_request, deviceId, mode));
}

double get targetTemperature => getThermostatTraits()
.firstWhere((trait) => trait.state is TargetTemperature,
orElse: () => ThermostatTrait(TargetTemperature(0.0)))
.state
.value;
double get targetTemperature => (getThermostatTrait()?.state as TargetTemperature).value ?? 0.0;

@override
String get displayName => deviceDetail?.displayName ?? _DEFAULT_DISPLAY_NAME;
Expand Down
18 changes: 0 additions & 18 deletions test/providers/thermostat_provider_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -84,24 +84,6 @@ void main() {
.called(2);
});

test(
'Calling getThermostatTraits without traits on device returns empty list',
() async {
Request request = Request('', {});
final mockGetThermostatDetailsFunction = MockGetThermostatDetails();

when(mockGetThermostatDetailsFunction.call(any, any))
.thenAnswer((_) async => Future.value(_getDevice()));

ThermostatProvider thermostatProvider = ThermostatProvider(
request, 'deviceId',
getDetails: mockGetThermostatDetailsFunction);
expect(
thermostatProvider.getThermostatTraits(), equals(<ThermostatTrait>[]));

expect(thermostatProvider.targetTemperature, equals(0.0));
});

test('Device data is set using DeviceRepository\'s return values', () async {
Request request = Request('', {});

Expand Down

0 comments on commit 36b323b

Please sign in to comment.