package io.evercam;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import java.util.ArrayList;
import static junit.framework.Assert.*;
public class ModelTest {
private static final String TEST_VENDOR_ID = "hikvision";
private static final String TEST_MODEL_THUMBNAIL_URL = "http://evercam-public-assets.s3.amazonaws" +
".com/hikvision/hikvision_default/thumbnail.jpg";
@Rule
public ExpectedException exception = ExpectedException.none();
@BeforeClass
public static void setUpClass() {
//TODO: Uncomment this to send test request to the test server
//API.URL = TestURL.URL;
}
@Test
public void testGetModelById() throws EvercamException {
Model model = Model.getById(TEST_VENDOR_ID + Model.DEFAULT_MODEL_SUFFIX);
assertEquals(TEST_VENDOR_ID, model.getVendorId());
assertEquals(Model.DEFAULT_MODEL_NAME, model.getName());
assertEquals("admin", model.getDefaults().getAuth(Auth.TYPE_BASIC).getUsername());
assertEquals("12345", model.getDefaults().getAuth(Auth.TYPE_BASIC).getPassword());
assertEquals("Streaming/Channels/1/picture", model.getDefaults().getJpgURL());
assertEquals("h264/ch1/main/av_stream", model.getDefaults().getH264URL());
assertEquals("", model.getDefaults().getLowresURL());
assertEquals("mpeg4/ch1/main/av_stream", model.getDefaults().getMpeg4URL());
assertEquals("", model.getDefaults().getMobileURL());
assertEquals("", model.getDefaults().getMjpgURL());
assertEquals(TEST_MODEL_THUMBNAIL_URL, model.getThumbnailUrl());
assertTrue(model.isOnvif());
assertFalse(model.isPTZ());
//Test the static model thumbnail URL method
assertEquals(TEST_MODEL_THUMBNAIL_URL,
Model.getThumbnailUrl(TEST_VENDOR_ID, TEST_VENDOR_ID + Model.DEFAULT_MODEL_SUFFIX));
}
@Test
public void testGetAllModelByVendor() throws EvercamException {
ArrayList<Model> modelList = Model.getAllByVendorId(TEST_VENDOR_ID);
assertEquals(148, modelList.size());
}
@Test
public void testGetAllModelByName() throws EvercamException {
ArrayList<Model> modelList = Model.getAllByName("Default");
assertEquals(61, modelList.size());
}
@Test
public void testGetAllWithVendorAndModel() throws EvercamException {
ArrayList<Model> modelList = Model.getAll("Default", TEST_VENDOR_ID);
assertEquals(1, modelList.size());
assertEquals("hikvision" + Model.DEFAULT_MODEL_SUFFIX, modelList.get(0).getId());
}
@Test
public void testGetDefaultModelByVendorId() throws EvercamException {
Model defaultModel = Model.getDefaultModelByVendorId(TEST_VENDOR_ID);
assertNotNull(defaultModel);
Defaults hikvisionDefaults = defaultModel.getDefaults();
assertEquals("admin", hikvisionDefaults.getAuth(Auth.TYPE_BASIC).getUsername());
assertEquals("12345", hikvisionDefaults.getAuth(Auth.TYPE_BASIC).getPassword());
assertEquals("Streaming/Channels/1/picture", hikvisionDefaults.getJpgURL());
assertEquals("h264/ch1/main/av_stream", hikvisionDefaults.getH264URL());
assertEquals("", hikvisionDefaults.getLowresURL());
assertEquals("mpeg4/ch1/main/av_stream", hikvisionDefaults.getMpeg4URL());
assertEquals("", hikvisionDefaults.getMobileURL());
assertEquals("", hikvisionDefaults.getMjpgURL());
}
@Test
public void testModelNotExists() throws EvercamException {
exception.expect(EvercamException.class);
Model.getAllByVendorId("no_model");
}
@AfterClass
public static void destroyClass() {
}
}