  @Test
  public void state() throws Exception {

    final MockResponse mockResponse = new MockResponse()
        .setResponseCode(200)
        .setBody(loadFile("fixtures/cameraStateResponse.json"));
    server.enqueue(mockResponse);

    final Response<State> response = client.state().execute();

    assertThat(response.code(), equalTo(200));

    final State state = response.body();
    assertThat(state, notNullValue());
    assertThat(state.fingerprint, equalTo("FINGERPRINT"));
    assertThat(state.state.batteryLevel, equalTo(0.95));
    assertThat(state.state.storageChanged, CoreMatchers.is(true));
    assertThat(state.state.cameraId, equalTo("full-rear-camera"));
    assertThat(state.state.captureState, equalTo(State.CaptureState.Idle));
    assertThat(state.state.chargeState, equalTo("charging(USB)"));
    assertThat(state.state.connectionType, equalTo(SoftAp));
    assertThat(state.state.networkType, equalTo(Lte));
    assertThat(state.state.fileChanged, equalTo("X"));
    assertThat(state.state.reachData, nullValue());
    assertThat(state.state.sdCardState, equalTo(true));
    assertThat(state.state.signalLevel, equalTo(4));
    assertThat(state.state.smsCount, equalTo(0));
    assertThat(state.state.thermalWarningNotification, equalTo(false));
    assertThat(state.state.wifiLevel, equalTo(0));
  }