package org.yamcs.parameterarchive; import static org.junit.Assert.*; import org.yamcs.parameter.ParameterValue; import org.yamcs.parameter.Value; import org.yamcs.protobuf.Pvalue.ParameterStatus; import org.yamcs.protobuf.Yamcs.Value.Type; import org.yamcs.utils.ValueUtility; import org.yamcs.xtce.Parameter; public class TestUtils { static ParameterValue getParameterValue(Parameter p, long instant, int intv) { ParameterValue pv = new ParameterValue(p); pv.setAcquisitionTime(instant); Value v = ValueUtility.getSint32Value(intv); pv.setEngineeringValue(v); return pv; } static ParameterValue getParameterValue(Parameter p, long instant, String sv) { ParameterValue pv = new ParameterValue(p); pv.setAcquisitionTime(instant); Value v = ValueUtility.getStringValue(sv); pv.setEngineeringValue(v); return pv; } public static void checkEquals( ParameterValueArray pva, ParameterValue...pvs) { checkEquals(true, true, true, pva, pvs); } public static void checkEquals(boolean shouldHaveEngValues, boolean shouldHaveRawValues, boolean shouldHaveParameterStatus, ParameterValueArray actualPva, ParameterValue...expectedPvs) { assertEquals(expectedPvs.length, actualPva.timestamps.length); for(int i=0; i<expectedPvs.length; i++) { ParameterValue pv = expectedPvs[i]; assertEquals(pv.getGenerationTime(), actualPva.timestamps[i]); } if(shouldHaveEngValues) { Value v = expectedPvs[0].getEngValue(); if(v.getType()==Type.STRING) { assertTrue(actualPva.engValues instanceof String[]); String[] s = (String[]) actualPva.engValues; for(int i=0; i<expectedPvs.length; i++) { v = expectedPvs[i].getEngValue(); assertEquals(v.getStringValue(), s[i]); } } else { fail("check for "+v.getType()+" not implemented"); } } else { assertNull(actualPva.engValues); } if(shouldHaveRawValues) { Value rv = expectedPvs[0].getRawValue(); if(rv!=null) { if(rv.getType()==Type.UINT32) { assertTrue(actualPva.rawValues instanceof int[]); int[] s = (int[]) actualPva.rawValues; for(int i=0; i<expectedPvs.length; i++) { rv = expectedPvs[i].getRawValue(); assertEquals(rv.getUint32Value(), s[i]); } } else if(rv.getType()==Type.STRING) { assertTrue(actualPva.rawValues instanceof String[]); String[] s = (String[]) actualPva.rawValues; for(int i=0; i<expectedPvs.length; i++) { Value v = expectedPvs[i].getRawValue(); assertEquals(v.getStringValue(), s[i]); } }else { fail("check for "+rv.getType()+" not implemented"); } } } else { assertNull(actualPva.rawValues); } if(shouldHaveParameterStatus) { assertNotNull(actualPva.paramStatus); assertEquals(expectedPvs.length, actualPva.paramStatus.length); for(int i=0; i<expectedPvs.length; i++) { checkEquals(expectedPvs[i], actualPva.paramStatus[i]); } } else { assertNull(actualPva.paramStatus); } } private static void checkEquals(ParameterValue parameterValue, ParameterStatus parameterStatus) { assertEquals(ParameterStatusSegment.getStatus(parameterValue), parameterStatus); } public static void checkEquals(ParameterIdValueList plist, long expectedTime, ParameterValue... expectedPv) { assertEquals(expectedTime, plist.instant); assertEquals(expectedPv.length, plist.values.size()); for(int i=0; i<expectedPv.length; i++) { ParameterValue pv = expectedPv[i]; Value v = plist.values.get(i).getEngValue(); Value rv = plist.values.get(i).getRawValue(); assertEquals(pv.getEngValue(), v); if(pv.getRawValue()!=null) { assertEquals(pv.getRawValue(), rv); } } } static void checkEquals(MyValueConsummer c, ParameterValue...pvs) { assertEquals(pvs.length, c.times.size()); for(int i=0; i<pvs.length; i++) { ParameterValue pv = pvs[i]; assertEquals(pv.getAcquisitionTime(), (long)c.times.get(i)); assertEquals(pv.getEngValue(), c.values.get(i)); } } }