/**
* Copyright (c) 2010-2016 by the respective copyright holders.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.openhab.binding.netatmo.internal.camera;
import static junit.framework.Assert.*;
import java.util.List;
import org.junit.Test;
import org.openhab.binding.netatmo.internal.camera.GetHomeDataResponse.Camera;
import org.openhab.binding.netatmo.internal.camera.GetHomeDataResponse.Event;
import org.openhab.binding.netatmo.internal.camera.GetHomeDataResponse.Face;
import org.openhab.binding.netatmo.internal.camera.GetHomeDataResponse.Home;
import org.openhab.binding.netatmo.internal.camera.GetHomeDataResponse.Person;
import org.openhab.binding.netatmo.internal.camera.GetHomeDataResponse.Place;
import org.openhab.binding.netatmo.internal.camera.GetHomeDataResponse.Snapshot;
import org.openhab.binding.netatmo.internal.camera.GetHomeDataResponse.User;
/**
* @author Ing. Peter Weiss
* @since 1.9.0
*/
public class GetHomeDataTest {
protected static final String ACCESS_TOKEN = "000000000000000000000000|11111111111111111111111111111111";
public static GetHomeDataRequestStub createRequest(final String resource) throws Exception {
return new GetHomeDataRequestStub(resource);
}
@Test
public void testError() throws Exception {
final GetHomeDataRequestStub request = createRequest("/error-2.json");
final GetHomeDataResponse response = request.execute();
assertTrue(response.isError());
}
@Test
public void testSuccess() throws Exception {
final GetHomeDataRequestStub request = createRequest("/gethomedata.json");
final GetHomeDataResponse response = request.execute();
assertFalse(response.isError());
assertEquals("access_token=" + ACCESS_TOKEN, request.getContent());
assertEquals("ok", response.getStatus());
List<Home> myHomes = response.getHomes();
assertEquals(1, myHomes.size());
assertEquals(myHomes.get(0).getName(), "Home Tom");
Place myPlace = myHomes.get(0).getPlace();
assertEquals(myPlace.getTimezone(), "Europe/Stockholm");
List<Person> myPersons = myHomes.get(0).getPersons();
assertEquals(4, myPersons.size());
assertEquals("13e843a4-2bcb-4d52-855c-1c5570663f76", myPersons.get(2).getId());
assertEquals("Tom", myPersons.get(3).getPseudo());
Face myFace = myPersons.get(0).getFace();
assertEquals("55e598250a6e6e6170cf7cfb", myFace.getId());
List<Event> myEvents = myHomes.get(0).getEvents();
assertEquals(1, myEvents.size());
assertEquals("70:ee:50:13:8b:35", myEvents.get(0).getCamera_id());
Snapshot mySnapshot = myEvents.get(0).getSnapshot();
assertEquals("8bbbe58c7b4fba061e8c29c2b7a57e6d16956b06c6ebd992e01267e755f7df72", mySnapshot.getKey());
List<Camera> myCameras = myHomes.get(0).getCameras();
assertEquals(2, myCameras.size());
assertEquals("disconnected", myCameras.get(1).getStatus());
User myUsr = response.getUser();
assertEquals("en-US", myUsr.getLang());
}
}