/**
* Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT
* All rights reserved. Use is subject to license terms. See LICENSE.TXT
*/
package org.diirt.support.ca;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.instanceOf;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import org.diirt.datasource.ValueCache;
import org.diirt.datasource.ValueCacheImpl;
import org.diirt.util.array.CollectionNumbers;
import org.diirt.vtype.AlarmSeverity;
import org.diirt.vtype.VByte;
import org.diirt.vtype.VByteArray;
import org.diirt.vtype.VDouble;
import org.diirt.vtype.VDoubleArray;
import org.diirt.vtype.VEnum;
import org.diirt.vtype.VFloat;
import org.diirt.vtype.VFloatArray;
import org.diirt.vtype.VInt;
import org.diirt.vtype.VIntArray;
import org.diirt.vtype.VShort;
import org.diirt.vtype.VShortArray;
import org.diirt.vtype.VString;
import org.diirt.vtype.VStringArray;
import org.diirt.vtype.VTypeToString;
import org.junit.Test;
import gov.aps.jca.CAStatus;
import gov.aps.jca.Channel;
import gov.aps.jca.Channel.ConnectionState;
import gov.aps.jca.dbr.DBRType;
import gov.aps.jca.dbr.DBR_Byte;
import gov.aps.jca.dbr.DBR_CTRL_Double;
import gov.aps.jca.dbr.DBR_Double;
import gov.aps.jca.dbr.DBR_Enum;
import gov.aps.jca.dbr.DBR_Float;
import gov.aps.jca.dbr.DBR_Int;
import gov.aps.jca.dbr.DBR_LABELS_Enum;
import gov.aps.jca.dbr.DBR_Short;
import gov.aps.jca.dbr.DBR_String;
import gov.aps.jca.dbr.DBR_TIME_Byte;
import gov.aps.jca.dbr.DBR_TIME_Double;
import gov.aps.jca.dbr.DBR_TIME_Enum;
import gov.aps.jca.dbr.DBR_TIME_Float;
import gov.aps.jca.dbr.DBR_TIME_Int;
import gov.aps.jca.dbr.DBR_TIME_Short;
import gov.aps.jca.dbr.DBR_TIME_String;
import gov.aps.jca.dbr.Severity;
import gov.aps.jca.dbr.Status;
import gov.aps.jca.dbr.TimeStamp;
import gov.aps.jca.event.MonitorEvent;
/**
*
* @author carcassi
*/
public class JCAVTypeAdapterSetTest {
// Create a Zone specific string representation of epoc 0
private final String testTimeString = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss.SSS")
.format(LocalDateTime.ofInstant(Instant.ofEpochSecond(1234567,1234), ZoneId.systemDefault()));
public JCAVTypeAdapterSetTest() {
}
public static JCAConnectionPayload mockJCAConnectionPayload(final DBRType dbrType, final int count, final ConnectionState connState) {
return mockJCAConnectionPayload("default", dbrType, count, connState);
}
public static JCAConnectionPayload mockJCAConnectionPayload(final String name, final DBRType dbrType, final int count, final ConnectionState connState) {
return mockJCAConnectionPayload(name, dbrType, count, connState, false);
}
public static JCAConnectionPayload mockJCAConnectionPayload(final String name, final DBRType dbrType, final int count, final ConnectionState connState, final boolean longString) {
Channel channel = mock(Channel.class);
when(channel.getName()).thenReturn(name);
when(channel.getFieldType()).thenReturn(dbrType);
when(channel.getElementCount()).thenReturn(count);
when(channel.getConnectionState()).thenReturn(connState);
JCADataSource dataSource = mock(JCADataSource.class);
JCAChannelHandler handler = mock(JCAChannelHandler.class);
when(handler.getJcaDataSource()).thenReturn(dataSource);
when(handler.isLongString()).thenReturn(longString);
return new JCAConnectionPayload(handler, channel, null);
}
@Test
public void DBRFloatToVFloat1() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRFloatToVFloat;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRFloatToVFloat2() {
ValueCache<VFloat> cache = new ValueCacheImpl<VFloat>(VFloat.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRFloatToVFloat;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRFloatToVFloat3() {
ValueCache<String> cache = new ValueCacheImpl<String>(String.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRFloatToVFloat;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRFloatToVFloat4() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRFloatToVFloat;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.CONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Float value = createDBRTimeFloat(new float[]{3.25F}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VFloat.class));
VFloat converted = (VFloat) cache.readValue();
assertThat(converted.getValue(), equalTo(3.25F));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.MINOR));
assertThat(converted.getAlarmName(), equalTo("HIGH_ALARM"));
assertThat(converted.getTimestamp(), equalTo(timestamp));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo("VFloat[3.25, MINOR(HIGH_ALARM), "+testTimeString+"]"));
}
@Test
public void DBRFloatToVFloat5() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRFloatToVFloat;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.DISCONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Float value = createDBRTimeFloat(new float[]{3.25F}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VFloat.class));
VFloat converted = (VFloat) cache.readValue();
assertThat(converted.getValue(), equalTo(3.25F));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.UNDEFINED));
assertThat(converted.getAlarmName(), equalTo("Disconnected"));
assertThat(converted.getTimestamp(), equalTo(connPayload.getEventTime()));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo(VTypeToString.toString(converted)));
}
@Test
public void DBRDoubleToVDouble1() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRDoubleToVDouble;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRDoubleToVDouble2() {
ValueCache<VDouble> cache = new ValueCacheImpl<VDouble>(VDouble.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRDoubleToVDouble;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRDoubleToVDouble3() {
ValueCache<String> cache = new ValueCacheImpl<String>(String.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRDoubleToVDouble;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRDoubleToVDouble4() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRDoubleToVDouble;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Double value = createDBRTimeDouble(new double[]{3.25F}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VDouble.class));
VDouble converted = (VDouble) cache.readValue();
assertThat(converted.getValue(), equalTo(3.25));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.MINOR));
assertThat(converted.getAlarmName(), equalTo("HIGH_ALARM"));
assertThat(converted.getTimestamp(), equalTo(timestamp));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo("VDouble[3.25, MINOR(HIGH_ALARM), "+testTimeString+"]"));
}
@Test
public void DBRDoubleToVDouble5() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRDoubleToVDouble;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.DISCONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Double value = createDBRTimeDouble(new double[]{3.25F}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VDouble.class));
VDouble converted = (VDouble) cache.readValue();
assertThat(converted.getValue(), equalTo(3.25));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.UNDEFINED));
assertThat(converted.getAlarmName(), equalTo("Disconnected"));
assertThat(converted.getTimestamp(), equalTo(connPayload.getEventTime()));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo(VTypeToString.toString(converted)));
}
@Test
public void DBRByteToVByte1() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRByteToVByte;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Byte.TYPE, 1, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Byte.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRByteToVByte2() {
ValueCache<VByte> cache = new ValueCacheImpl<VByte>(VByte.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRByteToVByte;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Byte.TYPE, 1, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Byte.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRByteToVByte3() {
ValueCache<String> cache = new ValueCacheImpl<String>(String.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRByteToVByte;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Byte.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Byte.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRByteToVByte4() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRByteToVByte;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Byte.TYPE, 1, ConnectionState.CONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Byte value = createDBRTimeByte(new byte[]{32}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VByte.class));
VByte converted = (VByte) cache.readValue();
assertThat(converted.getValue(), equalTo((byte) 32));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.MINOR));
assertThat(converted.getAlarmName(), equalTo("HIGH_ALARM"));
assertThat(converted.getTimestamp(), equalTo(timestamp));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo("VByte[32, MINOR(HIGH_ALARM), "+testTimeString+"]"));
}
@Test
public void DBRByteToVByte5() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRByteToVByte;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Byte.TYPE, 1, ConnectionState.DISCONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Byte value = createDBRTimeByte(new byte[]{32}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VByte.class));
VByte converted = (VByte) cache.readValue();
assertThat(converted.getValue(), equalTo((byte) 32));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.UNDEFINED));
assertThat(converted.getAlarmName(), equalTo("Disconnected"));
assertThat(converted.getTimestamp(), equalTo(connPayload.getEventTime()));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo(VTypeToString.toString(converted)));
}
@Test
public void DBRShortToVShort1() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRShortToVShort;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Short.TYPE, 1, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Short.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRShortToVShort2() {
ValueCache<VShort> cache = new ValueCacheImpl<VShort>(VShort.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRShortToVShort;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Short.TYPE, 1, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Short.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRShortToVShort3() {
ValueCache<String> cache = new ValueCacheImpl<String>(String.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRShortToVShort;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Short.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Short.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRShortToVShort4() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRShortToVShort;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Short.TYPE, 1, ConnectionState.CONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Short value = createDBRTimeShort(new short[]{32}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VShort.class));
VShort converted = (VShort) cache.readValue();
assertThat(converted.getValue(), equalTo((short) 32));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.MINOR));
assertThat(converted.getAlarmName(), equalTo("HIGH_ALARM"));
assertThat(converted.getTimestamp(), equalTo(timestamp));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo("VShort[32, MINOR(HIGH_ALARM), "+testTimeString+"]"));
}
@Test
public void DBRShortToVShort5() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRShortToVShort;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Short.TYPE, 1, ConnectionState.DISCONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Short value = createDBRTimeShort(new short[]{32}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VShort.class));
VShort converted = (VShort) cache.readValue();
assertThat(converted.getValue(), equalTo((short) 32));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.UNDEFINED));
assertThat(converted.getAlarmName(), equalTo("Disconnected"));
assertThat(converted.getTimestamp(), equalTo(connPayload.getEventTime()));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo(VTypeToString.toString(converted)));
}
@Test
public void DBRIntToVInt1() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRIntToVInt;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Int.TYPE, 1, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Int.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRIntToVInt2() {
ValueCache<VInt> cache = new ValueCacheImpl<VInt>(VInt.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRIntToVInt;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Int.TYPE, 1, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Int.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRIntToVInt3() {
ValueCache<String> cache = new ValueCacheImpl<String>(String.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRIntToVInt;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Int.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Int.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRIntToVInt4() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRIntToVInt;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Int.TYPE, 1, ConnectionState.CONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Int value = createDBRTimeInt(new int[]{32}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VInt.class));
VInt converted = (VInt) cache.readValue();
assertThat(converted.getValue(), equalTo(32));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.MINOR));
assertThat(converted.getAlarmName(), equalTo("HIGH_ALARM"));
assertThat(converted.getTimestamp(), equalTo(timestamp));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo("VInt[32, MINOR(HIGH_ALARM), "+testTimeString+"]"));
}
@Test
public void DBRIntToVInt5() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRIntToVInt;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Int.TYPE, 1, ConnectionState.DISCONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Int value = createDBRTimeInt(new int[]{32}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VInt.class));
VInt converted = (VInt) cache.readValue();
assertThat(converted.getValue(), equalTo(32));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.UNDEFINED));
assertThat(converted.getAlarmName(), equalTo("Disconnected"));
assertThat(converted.getTimestamp(), equalTo(connPayload.getEventTime()));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo(VTypeToString.toString(converted)));
}
@Test
public void DBRStringToVString1() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRStringToVString;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_String.TYPE, 1, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_String.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRStringToVString2() {
ValueCache<VString> cache = new ValueCacheImpl<VString>(VString.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRStringToVString;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_String.TYPE, 1, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_String.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRStringToVString3() {
ValueCache<String> cache = new ValueCacheImpl<String>(String.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRStringToVString;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_String.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_String.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRStringToVString4() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRStringToVString;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_String.TYPE, 1, ConnectionState.CONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_String value = createDBRTimeString(new String[]{"32"}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(null, event));
assertThat(cache.readValue(), instanceOf(VString.class));
VString converted = (VString) cache.readValue();
assertThat(converted.getValue(), equalTo("32"));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.MINOR));
assertThat(converted.getAlarmName(), equalTo("HIGH_ALARM"));
assertThat(converted.getTimestamp(), equalTo(timestamp));
assertThat(converted.toString(), equalTo("VString[32, MINOR(HIGH_ALARM), "+testTimeString+"]"));
}
@Test
public void DBRStringToVString5() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRStringToVString;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_String.TYPE, 1, ConnectionState.DISCONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_String value = createDBRTimeString(new String[]{"32"}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(null, event));
assertThat(cache.readValue(), instanceOf(VString.class));
VString converted = (VString) cache.readValue();
assertThat(converted.getValue(), equalTo("32"));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.UNDEFINED));
assertThat(converted.getAlarmName(), equalTo("Disconnected"));
assertThat(converted.getTimestamp(), equalTo(connPayload.getEventTime()));
assertThat(converted.toString(), equalTo(VTypeToString.toString(converted)));
}
@Test
public void DBRByteToVString1() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRByteToVString;
assertThat(adapter.match(cache, mockJCAConnectionPayload("mypv.NAME$", DBR_Byte.TYPE, 1, ConnectionState.CONNECTED, true)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload("mypv", DBR_Byte.TYPE, 1, ConnectionState.CONNECTED, true)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload("mypv.NAME", DBR_Byte.TYPE, 1, ConnectionState.CONNECTED, false)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload("mypv$", DBR_Byte.TYPE, 1, ConnectionState.CONNECTED, false)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload("mypv.$", DBR_Byte.TYPE, 1, ConnectionState.CONNECTED, true)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload("mypv.NAME$", DBR_Byte.TYPE, 5, ConnectionState.CONNECTED, true)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload("mypv.NAME$", DBR_Double.TYPE, 1, ConnectionState.CONNECTED, true)), equalTo(0));
}
@Test
public void DBRByteToVString2() {
ValueCache<VString> cache = new ValueCacheImpl<VString>(VString.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRByteToVString;
assertThat(adapter.match(cache, mockJCAConnectionPayload("mypv.NAME$", DBR_Byte.TYPE, 1, ConnectionState.CONNECTED, true)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload("mypv.NAME$", DBR_Byte.TYPE, 5, ConnectionState.CONNECTED, true)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload("mypv.NAME$", DBR_Double.TYPE, 1, ConnectionState.CONNECTED, true)), equalTo(0));
}
@Test
public void DBRByteToVString3() {
ValueCache<VByteArray> cache = new ValueCacheImpl<VByteArray>(VByteArray.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRByteToVString;
assertThat(adapter.match(cache, mockJCAConnectionPayload("mypv.NAME$", DBR_String.TYPE, 1, ConnectionState.CONNECTED, true)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload("mypv.NAME$", DBR_String.TYPE, 5, ConnectionState.CONNECTED, true)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload("mypv.NAME$", DBR_Double.TYPE, 1, ConnectionState.CONNECTED, true)), equalTo(0));
}
@Test
public void DBRByteToVString4() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRByteToVString;
JCAConnectionPayload connPayload = mockJCAConnectionPayload("mypv.NAME$", DBR_Byte.TYPE, 20, ConnectionState.CONNECTED, true);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
byte[] data = "Testing".getBytes();
data = Arrays.copyOf(data, data.length + 1);
DBR_TIME_Byte value = createDBRTimeByte(data, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(null, event));
assertThat(cache.readValue(), instanceOf(VString.class));
VString converted = (VString) cache.readValue();
assertThat(converted.getValue(), equalTo("Testing"));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.MINOR));
assertThat(converted.getAlarmName(), equalTo("HIGH_ALARM"));
assertThat(converted.getTimestamp(), equalTo(timestamp));
assertThat(converted.toString(), equalTo("VString[Testing, MINOR(HIGH_ALARM), "+testTimeString+"]"));
}
@Test
public void DBRByteToVString5() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRByteToVString;
JCAConnectionPayload connPayload = mockJCAConnectionPayload("mypv.NAME$", DBR_String.TYPE, 1, ConnectionState.DISCONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
byte[] data = "Testing".getBytes();
data = Arrays.copyOf(data, data.length + 1);
DBR_TIME_Byte value = createDBRTimeByte(data, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(null, event));
assertThat(cache.readValue(), instanceOf(VString.class));
VString converted = (VString) cache.readValue();
assertThat(converted.getValue(), equalTo("Testing"));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.UNDEFINED));
assertThat(converted.getAlarmName(), equalTo("Disconnected"));
assertThat(converted.getTimestamp(), equalTo(connPayload.getEventTime()));
assertThat(converted.toString(), equalTo(VTypeToString.toString(converted)));
}
@Test
public void DBREnumToVEnum1() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBREnumToVEnum;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Enum.TYPE, 1, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Enum.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBREnumToVEnum2() {
ValueCache<VEnum> cache = new ValueCacheImpl<VEnum>(VEnum.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBREnumToVEnum;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Enum.TYPE, 1, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Enum.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBREnumToVEnum3() {
ValueCache<String> cache = new ValueCacheImpl<String>(String.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBREnumToVEnum;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Enum.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Enum.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBREnumToVEnum4() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBREnumToVEnum;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Enum.TYPE, 1, ConnectionState.CONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Enum value = createDBRTimeEnum(new short[]{2}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_LABELS_Enum meta = createMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VEnum.class));
VEnum converted = (VEnum) cache.readValue();
assertThat(converted.getValue(), equalTo("Two"));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.MINOR));
assertThat(converted.getAlarmName(), equalTo("HIGH_ALARM"));
assertThat(converted.getTimestamp(), equalTo(timestamp));
assertThat(converted.toString(), equalTo("VEnum[Two(2), MINOR(HIGH_ALARM), "+testTimeString+"]"));
}
@Test
public void DBREnumToVEnum5() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBREnumToVEnum;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Enum.TYPE, 1, ConnectionState.DISCONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Enum value = createDBRTimeEnum(new short[]{2}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_LABELS_Enum meta = createMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VEnum.class));
VEnum converted = (VEnum) cache.readValue();
assertThat(converted.getValue(), equalTo("Two"));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.UNDEFINED));
assertThat(converted.getAlarmName(), equalTo("Disconnected"));
assertThat(converted.getTimestamp(), equalTo(connPayload.getEventTime()));
assertThat(converted.toString(), equalTo(VTypeToString.toString(converted)));
}
@Test
public void DBRFloatToVFloatArray1() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRFloatToVFloatArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 5, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRFloatToVFloatArray2() {
ValueCache<VFloatArray> cache = new ValueCacheImpl<VFloatArray>(VFloatArray.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRFloatToVFloatArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 5, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRFloatToVFloatArray3() {
ValueCache<String> cache = new ValueCacheImpl<String>(String.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRFloatToVFloatArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRFloatToVFloatArray4() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRFloatToVFloatArray;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.CONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Float value = createDBRTimeFloat(new float[]{3.25F, 3.75F, 4.25F}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VFloatArray.class));
VFloatArray converted = (VFloatArray) cache.readValue();
assertThat(CollectionNumbers.doubleArrayCopyOf(converted.getData()), equalTo(new double[]{3.25, 3.75, 4.25}));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.MINOR));
assertThat(converted.getAlarmName(), equalTo("HIGH_ALARM"));
assertThat(converted.getTimestamp(), equalTo(timestamp));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo("VFloatArray[[3.25, 3.75, 4.25], size 3, MINOR(HIGH_ALARM), "+testTimeString+"]"));
}
@Test
public void DBRFloatToVFloatArray5() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRFloatToVFloatArray;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.DISCONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Float value = createDBRTimeFloat(new float[]{3.25F}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VFloatArray.class));
VFloatArray converted = (VFloatArray) cache.readValue();
assertThat(CollectionNumbers.doubleArrayCopyOf(converted.getData()), equalTo(new double[]{3.25}));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.UNDEFINED));
assertThat(converted.getAlarmName(), equalTo("Disconnected"));
assertThat(converted.getTimestamp(), equalTo(connPayload.getEventTime()));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo(VTypeToString.toString(converted)));
}
@Test
public void DBRDoubleToVDoubleArray1() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRDoubleToVDoubleArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 5, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRDoubleToVDoubleArray2() {
ValueCache<VDoubleArray> cache = new ValueCacheImpl<VDoubleArray>(VDoubleArray.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRDoubleToVDoubleArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 5, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRDoubleToVDoubleArray3() {
ValueCache<String> cache = new ValueCacheImpl<String>(String.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRDoubleToVDoubleArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Float.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRDoubleToVDoubleArray4() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRDoubleToVDoubleArray;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Double value = createDBRTimeDouble(new double[]{3.25, 3.75, 4.25}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VDoubleArray.class));
VDoubleArray converted = (VDoubleArray) cache.readValue();
assertThat(CollectionNumbers.doubleArrayCopyOf(converted.getData()), equalTo(new double[]{3.25, 3.75, 4.25}));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.MINOR));
assertThat(converted.getAlarmName(), equalTo("HIGH_ALARM"));
assertThat(converted.getTimestamp(), equalTo(timestamp));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo("VDoubleArray[[3.25, 3.75, 4.25], size 3, MINOR(HIGH_ALARM), "+testTimeString+"]"));
}
@Test
public void DBRDoubleToVDoubleArray5() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRDoubleToVDoubleArray;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.DISCONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Double value = createDBRTimeDouble(new double[]{3.25F}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VDoubleArray.class));
VDoubleArray converted = (VDoubleArray) cache.readValue();
assertThat(CollectionNumbers.doubleArrayCopyOf(converted.getData()), equalTo(new double[]{3.25}));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.UNDEFINED));
assertThat(converted.getAlarmName(), equalTo("Disconnected"));
assertThat(converted.getTimestamp(), equalTo(connPayload.getEventTime()));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo(VTypeToString.toString(converted)));
}
@Test
public void DBRByteToVByteArray1() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRByteToVByteArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Byte.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Byte.TYPE, 5, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload("mypv.NAME$", DBR_Byte.TYPE, 5, ConnectionState.CONNECTED, true)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRByteToVByteArray2() {
ValueCache<VByteArray> cache = new ValueCacheImpl<VByteArray>(VByteArray.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRByteToVByteArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Byte.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Byte.TYPE, 5, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRByteToVByteArray3() {
ValueCache<String> cache = new ValueCacheImpl<String>(String.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRByteToVByteArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Byte.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Byte.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRByteToVByteArray4() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRByteToVByteArray;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Byte.TYPE, 1, ConnectionState.CONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Byte value = createDBRTimeByte(new byte[]{3, 4, 5}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VByteArray.class));
VByteArray converted = (VByteArray) cache.readValue();
assertThat(CollectionNumbers.doubleArrayCopyOf(converted.getData()), equalTo(new double[]{3, 4, 5}));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.MINOR));
assertThat(converted.getAlarmName(), equalTo("HIGH_ALARM"));
assertThat(converted.getTimestamp(), equalTo(timestamp));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo("VByteArray[[3, 4, 5], size 3, MINOR(HIGH_ALARM), "+testTimeString+"]"));
}
@Test
public void DBRByteToVByteArray5() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRByteToVByteArray;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Byte.TYPE, 1, ConnectionState.DISCONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Byte value = createDBRTimeByte(new byte[]{3}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VByteArray.class));
VByteArray converted = (VByteArray) cache.readValue();
assertThat(CollectionNumbers.doubleArrayCopyOf(converted.getData()), equalTo(new double[]{3}));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.UNDEFINED));
assertThat(converted.getAlarmName(), equalTo("Disconnected"));
assertThat(converted.getTimestamp(), equalTo(connPayload.getEventTime()));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo(VTypeToString.toString(converted)));
}
@Test
public void DBRShortToVShortArray1() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRShortToVShortArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Short.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Short.TYPE, 5, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRShortToVShortArray2() {
ValueCache<VShortArray> cache = new ValueCacheImpl<VShortArray>(VShortArray.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRShortToVShortArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Short.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Short.TYPE, 5, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRShortToVShortArray3() {
ValueCache<String> cache = new ValueCacheImpl<String>(String.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRShortToVShortArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Short.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Short.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRShortToVShortArray4() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRShortToVShortArray;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Short.TYPE, 1, ConnectionState.CONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Short value = createDBRTimeShort(new short[]{3, 4, 5}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VShortArray.class));
VShortArray converted = (VShortArray) cache.readValue();
assertThat(CollectionNumbers.doubleArrayCopyOf(converted.getData()), equalTo(new double[]{3, 4, 5}));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.MINOR));
assertThat(converted.getAlarmName(), equalTo("HIGH_ALARM"));
assertThat(converted.getTimestamp(), equalTo(timestamp));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
}
@Test
public void DBRShortToVShortArray5() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRShortToVShortArray;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Short.TYPE, 1, ConnectionState.DISCONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Short value = createDBRTimeShort(new short[]{3}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VShortArray.class));
VShortArray converted = (VShortArray) cache.readValue();
assertThat(CollectionNumbers.doubleArrayCopyOf(converted.getData()), equalTo(new double[]{3}));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.UNDEFINED));
assertThat(converted.getAlarmName(), equalTo("Disconnected"));
assertThat(converted.getTimestamp(), equalTo(connPayload.getEventTime()));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo(VTypeToString.toString(converted)));
}
@Test
public void DBRIntToVIntArray1() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRIntToVIntArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Int.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Int.TYPE, 5, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRIntToVIntArray2() {
ValueCache<VIntArray> cache = new ValueCacheImpl<VIntArray>(VIntArray.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRIntToVIntArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Int.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Int.TYPE, 5, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRIntToVIntArray3() {
ValueCache<String> cache = new ValueCacheImpl<String>(String.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRIntToVIntArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Int.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Int.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRIntToVIntArray4() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRIntToVIntArray;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Int.TYPE, 1, ConnectionState.CONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Int value = createDBRTimeInt(new int[]{3, 4, 5}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VIntArray.class));
VIntArray converted = (VIntArray) cache.readValue();
assertThat(CollectionNumbers.doubleArrayCopyOf(converted.getData()), equalTo(new double[]{3, 4, 5}));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.MINOR));
assertThat(converted.getAlarmName(), equalTo("HIGH_ALARM"));
assertThat(converted.getTimestamp(), equalTo(timestamp));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo("VIntArray[[3, 4, 5], size 3, MINOR(HIGH_ALARM), "+testTimeString+"]"));
}
@Test
public void DBRIntToVIntArray5() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRIntToVIntArray;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_Int.TYPE, 1, ConnectionState.DISCONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_Int value = createDBRTimeInt(new int[]{3}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VIntArray.class));
VIntArray converted = (VIntArray) cache.readValue();
assertThat(CollectionNumbers.doubleArrayCopyOf(converted.getData()), equalTo(new double[]{3}));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.UNDEFINED));
assertThat(converted.getAlarmName(), equalTo("Disconnected"));
assertThat(converted.getTimestamp(), equalTo(connPayload.getEventTime()));
assertThat(converted.getUpperDisplayLimit(), equalTo(10.0));
assertThat(converted.getUpperCtrlLimit(), equalTo(8.0));
assertThat(converted.getUpperAlarmLimit(), equalTo(6.0));
assertThat(converted.getUpperWarningLimit(), equalTo(4.0));
assertThat(converted.getLowerWarningLimit(), equalTo(-4.0));
assertThat(converted.getLowerAlarmLimit(), equalTo(-6.0));
assertThat(converted.getLowerCtrlLimit(), equalTo(-8.0));
assertThat(converted.getLowerDisplayLimit(), equalTo(-10.0));
assertThat(converted.toString(), equalTo(VTypeToString.toString(converted)));
}
@Test
public void DBRStringToVStringArray1() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRStringToVStringArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_String.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_String.TYPE, 5, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRStringToVStringArray2() {
ValueCache<VStringArray> cache = new ValueCacheImpl<VStringArray>(VStringArray.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRStringToVStringArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_String.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_String.TYPE, 5, ConnectionState.CONNECTED)), equalTo(1));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRStringToVStringArray3() {
ValueCache<String> cache = new ValueCacheImpl<String>(String.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRStringToVStringArray;
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_String.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_String.TYPE, 5, ConnectionState.CONNECTED)), equalTo(0));
assertThat(adapter.match(cache, mockJCAConnectionPayload(DBR_Double.TYPE, 1, ConnectionState.CONNECTED)), equalTo(0));
}
@Test
public void DBRStringToVStringArray4() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRStringToVStringArray;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_String.TYPE, 1, ConnectionState.CONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_String value = createDBRTimeString(new String[]{"Zero", "One", "Two"}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VStringArray.class));
VStringArray converted = (VStringArray) cache.readValue();
assertThat(converted.getData(), equalTo(Arrays.asList("Zero", "One", "Two")));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.MINOR));
assertThat(converted.getAlarmName(), equalTo("HIGH_ALARM"));
assertThat(converted.getTimestamp(), equalTo(timestamp));
assertThat(converted.toString(), equalTo("VStringArray[[Zero, One, Two], size 3, MINOR(HIGH_ALARM), "+testTimeString+"]"));
}
@Test
public void DBRStringToVStringArray5() {
ValueCache<Object> cache = new ValueCacheImpl<Object>(Object.class);
JCATypeAdapter adapter = JCAVTypeAdapterSet.DBRStringToVStringArray;
JCAConnectionPayload connPayload = mockJCAConnectionPayload(DBR_String.TYPE, 1, ConnectionState.DISCONNECTED);
Instant timestamp = Instant.ofEpochSecond(1234567,1234);
DBR_TIME_String value = createDBRTimeString(new String[]{"Only"}, Severity.MINOR_ALARM, Status.HIGH_ALARM, timestamp);
DBR_CTRL_Double meta = createNumericMetadata();
MonitorEvent event = new MonitorEvent(connPayload.getChannel(), value, CAStatus.NORMAL);
adapter.updateCache(cache, connPayload, new JCAMessagePayload(meta, event));
assertThat(cache.readValue(), instanceOf(VStringArray.class));
VStringArray converted = (VStringArray) cache.readValue();
assertThat(converted.getData(), equalTo(Arrays.asList("Only")));
assertThat(converted.getAlarmSeverity(), equalTo(AlarmSeverity.UNDEFINED));
assertThat(converted.getAlarmName(), equalTo("Disconnected"));
assertThat(converted.getTimestamp(), equalTo(connPayload.getEventTime()));
assertThat(converted.toString(), equalTo(VTypeToString.toString(converted)));
}
public static DBR_CTRL_Double createNumericMetadata() {
DBR_CTRL_Double meta = new DBR_CTRL_Double();
meta.setUpperDispLimit(10);
meta.setUpperCtrlLimit(8);
meta.setUpperAlarmLimit(6);
meta.setUpperWarningLimit(4);
meta.setLowerWarningLimit(-4);
meta.setLowerAlarmLimit(-6);
meta.setLowerCtrlLimit(-8);
meta.setLowerDispLimit(-10);
return meta;
}
public static DBR_LABELS_Enum createMetadata() {
DBR_LABELS_Enum meta = new DBR_LABELS_Enum();
meta.setLabels(new String[] {"Zero", "One", "Two", "Three"});
return meta;
}
public static DBR_TIME_Float createDBRTimeFloat(float[] data, gov.aps.jca.dbr.Severity severity, gov.aps.jca.dbr.Status status, java.time.Instant timestamp) {
DBR_TIME_Float value = new DBR_TIME_Float(data);
value.setSeverity(severity);
value.setStatus(status);
value.setTimeStamp(new TimeStamp(timestamp.getEpochSecond() - DataUtils.TS_EPOCH_SEC_PAST_1970, timestamp.getNano()));
return value;
}
public static DBR_TIME_Double createDBRTimeDouble(double[] data, gov.aps.jca.dbr.Severity severity, gov.aps.jca.dbr.Status status, java.time.Instant timestamp) {
DBR_TIME_Double value = new DBR_TIME_Double(data);
value.setSeverity(severity);
value.setStatus(status);
value.setTimeStamp(new TimeStamp(timestamp.getEpochSecond() - DataUtils.TS_EPOCH_SEC_PAST_1970, timestamp.getNano()));
return value;
}
public static DBR_TIME_Byte createDBRTimeByte(byte[] data, gov.aps.jca.dbr.Severity severity, gov.aps.jca.dbr.Status status, java.time.Instant timestamp) {
DBR_TIME_Byte value = new DBR_TIME_Byte(data);
value.setSeverity(severity);
value.setStatus(status);
value.setTimeStamp(new TimeStamp(timestamp.getEpochSecond() - DataUtils.TS_EPOCH_SEC_PAST_1970, timestamp.getNano()));
return value;
}
public static DBR_TIME_Short createDBRTimeShort(short[] data, gov.aps.jca.dbr.Severity severity, gov.aps.jca.dbr.Status status, java.time.Instant timestamp) {
DBR_TIME_Short value = new DBR_TIME_Short(data);
value.setSeverity(severity);
value.setStatus(status);
value.setTimeStamp(new TimeStamp(timestamp.getEpochSecond() - DataUtils.TS_EPOCH_SEC_PAST_1970, timestamp.getNano()));
return value;
}
public static DBR_TIME_Int createDBRTimeInt(int[] data, gov.aps.jca.dbr.Severity severity, gov.aps.jca.dbr.Status status, java.time.Instant timestamp) {
DBR_TIME_Int value = new DBR_TIME_Int(data);
value.setSeverity(severity);
value.setStatus(status);
value.setTimeStamp(new TimeStamp(timestamp.getEpochSecond() - DataUtils.TS_EPOCH_SEC_PAST_1970, timestamp.getNano()));
return value;
}
public static DBR_TIME_String createDBRTimeString(String[] data, gov.aps.jca.dbr.Severity severity, gov.aps.jca.dbr.Status status, java.time.Instant timestamp) {
DBR_TIME_String value = new DBR_TIME_String(data);
value.setSeverity(severity);
value.setStatus(status);
value.setTimeStamp(new TimeStamp(timestamp.getEpochSecond() - DataUtils.TS_EPOCH_SEC_PAST_1970, timestamp.getNano()));
return value;
}
public static DBR_TIME_Enum createDBRTimeEnum(short[] data, gov.aps.jca.dbr.Severity severity, gov.aps.jca.dbr.Status status, java.time.Instant timestamp) {
DBR_TIME_Enum value = new DBR_TIME_Enum(data);
value.setSeverity(severity);
value.setStatus(status);
value.setTimeStamp(new TimeStamp(timestamp.getEpochSecond() - DataUtils.TS_EPOCH_SEC_PAST_1970, timestamp.getNano()));
return value;
}
}