/** * 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.lightwaverf.internal.command; import static org.junit.Assert.*; import java.util.Calendar; import java.util.Date; import org.junit.Test; import org.openhab.binding.lightwaverf.internal.LightwaveRfType; import org.openhab.binding.lightwaverf.internal.message.LightwaveRfJsonMessageId; import org.openhab.core.library.types.DateTimeType; import org.openhab.core.library.types.DecimalType; import org.openhab.core.library.types.StringType; public class LightwaveRfWifiLinkStatusMessageTest { private String messageString = "*!{\"trans\":452,\"mac\":\"ab:cd:ef\",\"time\":1447712274,\"type\":\"hub\",\"prod\":\"wfl\",\"fw\":\"U2.91Y\"," + "\"uptime\":1386309,\"timeZone\":0,\"lat\":52.48,\"long\":-87.89,\"duskTime\":1447690400," + "\"dawnTime\":1447659083,\"tmrs\":0,\"evns\":1,\"run\":0,\"macs\":8,\"ip\":\"192.168.0.1\",\"devs\":0}"; @Test public void testDecodingMessage() throws Exception { LightwaveRfWifiLinkStatusMessage message = new LightwaveRfWifiLinkStatusMessage(messageString); assertEquals(new LightwaveRfJsonMessageId(452), message.getMessageId()); assertEquals("ab:cd:ef", message.getMac()); assertEquals(new Date(1447712274000L), message.getTime()); assertEquals("hub", message.getType()); assertEquals("wfl", message.getProd()); assertEquals("U2.91Y", message.getFirmware()); assertEquals(1386309, message.getUptime()); assertEquals("0", message.getTimeZone()); assertEquals("52.48", message.getLatitude()); assertEquals("-87.89", message.getLongitude()); assertEquals(new Date(1447690400000L), message.getDuskTime()); assertEquals(new Date(1447659083000L), message.getDawnTime()); assertEquals("0", message.getTmrs()); assertEquals("1", message.getEnvs()); assertEquals("0", message.getRun()); assertEquals("8", message.getMacs()); assertEquals("192.168.0.1", message.getIp()); assertEquals("0", message.getDevs()); assertEquals("wifilink", message.getSerial()); } @Test public void testMatches() { boolean matches = LightwaveRfWifiLinkStatusMessage.matches(messageString); assertTrue(matches); } @Test public void testGetState() throws Exception { LightwaveRfWifiLinkStatusMessage message = new LightwaveRfWifiLinkStatusMessage(messageString); Calendar dawnTime = Calendar.getInstance(); dawnTime.setTime(new Date(1447659083000L)); Calendar duskTime = Calendar.getInstance(); duskTime.setTime(new Date(1447690400000L)); assertEquals(new DateTimeType(dawnTime), message.getState(LightwaveRfType.WIFILINK_DAWN_TIME)); assertEquals(new DateTimeType(duskTime), message.getState(LightwaveRfType.WIFILINK_DUSK_TIME)); assertEquals(new StringType("52.48"), message.getState(LightwaveRfType.WIFILINK_LATITUDE)); assertEquals(new StringType("-87.89"), message.getState(LightwaveRfType.WIFILINK_LONGITUDE)); assertEquals(new StringType("U2.91Y"), message.getState(LightwaveRfType.WIFILINK_FIRMWARE)); assertEquals(new StringType("192.168.0.1"), message.getState(LightwaveRfType.WIFILINK_IP)); assertEquals(new DecimalType(1386309), message.getState(LightwaveRfType.WIFILINK_UPTIME)); } }