public void should_error_when_try_to_expose_twice() { SimCapiEnum <EnumForTest> simCapiEnum = new SimCapiEnum <EnumForTest>(EnumForTest.INITIAL); string exposedName = "exposeName"; simCapiEnum.expose(exposedName, true, true); Assert.Catch( delegate() { simCapiEnum.expose(exposedName, true, true); }); }
/// <summary> /// Creates and exposes an event. /// </summary> /// <param name="i"></param> private void createEvent() { int id = typeList.Count; SimCapiEnum <SimEvent> type = new SimCapiEnum <SimEvent>(SimEvent.None); type.expose("Event." + id + ".Type", false, false); typeList.Add(type); SimCapiStringArray detail = new SimCapiStringArray(); detail.expose("Event." + id + ".Details", false, false); detailList.Add(detail); }
public void should_expose_value() { SimCapiEnum <EnumForTest> simCapiEnum = new SimCapiEnum <EnumForTest>(EnumForTest.INITIAL); string exposedName = "exposeName"; simCapiEnum.expose(exposedName, true, true); Dictionary <string, SimCapiValue> _outGoingMap = TestHelpers.getReferenceField <Dictionary <string, SimCapiValue> >(_transporter, "_outGoingMap"); Assert.AreNotEqual(null, _outGoingMap); Assert.AreEqual(true, _outGoingMap.ContainsKey(exposedName)); }
/// <summary> /// Sets initial values. /// </summary> public void Init() { capiPaused = new SimCapiBoolean(Sim.Settings.Paused); capiPaused.expose("Speed.Pause", false, false); capiPaused.setChangeDelegate( delegate(Boolean value, ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Sim.Settings.Paused = value; } } ); capiSpeedTime = new SimCapiNumber((float)Sim.Settings.Speed); capiSpeedTime.expose("Speed.Time", false, false); capiSpeedTime.setChangeDelegate( delegate(float value, ChangedBy changedBy) { // Debug.Log("Speed.Time " + value + " " + changedBy); // Any changes done by the SIM go through the Body system first, which updates the Exposed Data. if (changedBy == ChangedBy.AELP) { Sim.Settings.Speed = value * (int)capiSpeedRatio.getValue(); } } ); capiSpeedRatio = new SimCapiEnum <SpeedRatio>(SpeedRatio.Second); capiSpeedRatio.expose("Speed.Ratio", false, false); capiSpeedRatio.setChangeDelegate( delegate(SpeedRatio value, ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Sim.Settings.Speed = capiSpeedTime.getValue() * (int)value; } } ); }
public void should_call_on_change_delegate() { SimCapiEnum <EnumForTest> simCapiEnum = new SimCapiEnum <EnumForTest>(EnumForTest.INITIAL); string exposedName = "exposeName"; simCapiEnum.expose(exposedName, true, true); bool changeDelegateCalled = false; bool correctValue = false; simCapiEnum.setChangeDelegate( delegate(EnumForTest value, ChangedBy changedBy) { changeDelegateCalled = true; if (value == EnumForTest.CHANGED) { correctValue = true; } }); // Create the VALUE_CHANGE message SimCapiValue simCapiValue = new SimCapiValue(exposedName, SimCapiValueType.STRING, false, false, false, new StringData("CHANGED")); Dictionary <string, SimCapiValue> valueDictionary = new Dictionary <string, SimCapiValue>(); valueDictionary.Add(exposedName, simCapiValue); string valueChangedJson = SimCapiJsonMaker.create_VALUE_CHANGE(_transporter.getHandshake(), valueDictionary); _transporter.reciveJsonMessage(valueChangedJson); Assert.AreEqual(true, changeDelegateCalled); Assert.AreEqual(true, correctValue); }
public void Init(int id) { Id = id; string baseName = "Body." + id; capiName = new SimCapiString(name); capiName.expose(baseName + ".Name", false, false); capiName.setChangeDelegate( delegate(string value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Name = value; } } ); capiActive = new SimCapiBoolean(active); capiActive.expose(baseName + ".Active", false, false); capiActive.setChangeDelegate( delegate(bool value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Active = value; } } ); capiType = new SimCapiEnum <BodyType>(type); capiType.expose(baseName + ".Type", false, false); capiType.setChangeDelegate( delegate(BodyType value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Type = value; } } ); capiMaterial = new SimCapiEnum <BodyMaterial>(material); capiMaterial.expose(baseName + ".Material", false, false); capiMaterial.setChangeDelegate( delegate(BodyMaterial value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Material = value; } } ); capiMass = new SimCapiNumber((float)mass); capiMass.expose(baseName + ".Mass", false, false); capiMass.setChangeDelegate( delegate(float value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Mass = value; } } ); capiDiameter = new SimCapiNumber((float)diameter); capiDiameter.expose(baseName + ".Diameter", false, false); capiDiameter.setChangeDelegate( delegate(float value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Diameter = value; } } ); capiRotation = new SimCapiNumber((float)rotation); capiRotation.expose(baseName + ".Rotation", false, false); capiRotation.setChangeDelegate( delegate(float value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Rotation = value; } } ); // Set Capi Vectors. Exposure and Delegation are handled interally. capiPosition = new SimCapiVector(baseName + ".Position", Position); capiVelocity = new SimCapiVector(baseName + ".Velocity", Velocity); //Auto velocity capiAutoVelocity = new SimCapiBoolean(!initialVelocity); capiAutoVelocity.expose(baseName + ".Velocity.Auto", false, false); capiAutoVelocity.setChangeDelegate( delegate(bool value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { InitialVelocity = !value; } } ); }