public void ImportString(string str)
        {
            //DCSBiosOutput{AAP_EGIPWR|Equals|0}
            var value = str;

            if (string.IsNullOrEmpty(str))
            {
                throw new Exception("DCSBiosOutput cannot import null string.");
            }
            if (!str.StartsWith("DCSBiosOutput{") || !str.EndsWith("}"))
            {
                throw new Exception("DCSBiosOutput cannot import string : " + str);
            }
            value = value.Replace("DCSBiosOutput{", "").Replace("}", "");
            //AAP_EGIPWR|Equals|0
            var entries = value.Split(new[] { "|" }, StringSplitOptions.RemoveEmptyEntries);

            _controlId = entries[0];
            var dcsBIOSControl = DCSBIOSControlLocator.GetControl(_controlId);

            Consume(dcsBIOSControl);
            _dcsBiosOutputComparison = (DCSBiosOutputComparison)Enum.Parse(typeof(DCSBiosOutputComparison), entries[1]);
            if (DCSBiosOutputType == DCSBiosOutputType.INTEGER_TYPE)
            {
                _specifiedValueInt = (uint)int.Parse(entries[2]);
            }
            else if (DCSBiosOutputType == DCSBiosOutputType.STRING_TYPE)
            {
                _specifiedValueString = entries[2];
            }
        }
Beispiel #2
0
        public void CheckForValueMatch_WithUint(uint valueToCompare, DCSBiosOutputComparison comparisonType, uint OriginalValue, bool expectedResult)
        {
            DCSBIOSOutput dcsOutput = new() {
                DCSBiosOutputType = DCSBiosOutputType.IntegerType,
                Mask = valueToCompare,
                SpecifiedValueInt       = OriginalValue,
                DCSBiosOutputComparison = comparisonType,
            };

            Assert.Equal(expectedResult, dcsOutput.CheckForValueMatch(valueToCompare));
        }
Beispiel #3
0
        public void CheckForValueMatchAndChange_WithUint_LastIntValue_Is_Random(uint valueToCompare, DCSBiosOutputComparison comparisonType, uint OriginalValue, uint lastIntValue, bool expectedResult)
        {
            DCSBIOSOutput dcsOutput = new()
            {
                DCSBiosOutputType = DCSBiosOutputType.IntegerType,
                Mask = valueToCompare,
                SpecifiedValueInt       = OriginalValue,
                DCSBiosOutputComparison = comparisonType,
                LastIntValue            = lastIntValue, //<-- != compared to CheckForValueMatch_WithUint
            };

            Assert.Equal(expectedResult, dcsOutput.CheckForValueMatchAndChange(valueToCompare));
            Assert.Equal(valueToCompare, dcsOutput.LastIntValue);
        }
Beispiel #4
0
        public void CheckForValueMatchAndChange_WithUint_LastIntValue_Is_ValueToCompare(uint valueToCompare, DCSBiosOutputComparison comparisonType, uint OriginalValue)
        {
            DCSBIOSOutput dcsOutput = new()
            {
                DCSBiosOutputType = DCSBiosOutputType.IntegerType,
                Mask = valueToCompare,
                SpecifiedValueInt       = OriginalValue,
                DCSBiosOutputComparison = comparisonType,
                LastIntValue            = valueToCompare, //<-- != compared to CheckForValueMatch_WithUint
            };

            //always returns false
            Assert.False(dcsOutput.CheckForValueMatchAndChange(valueToCompare));
            Assert.Equal(valueToCompare, dcsOutput.LastIntValue);
        }