public void ConverterEmpty([Values] BehaviorMode mode, [Values] ParseModesToTest parseMode) { Dec.Config.TestParameters = new Dec.Config.UnitTestParameters { explicitTypes = new Type[] { typeof(ConverterDec) } }; var parser = new Dec.Parser(); parser.AddString($@" <Decs> <ConverterDec decName=""TestDec""> <empty {GenerateParseModeTag(parseMode)}><value>60</value></empty> </ConverterDec> </Decs>"); if (parseMode == ParseModesToTest.Default || parseMode == ParseModesToTest.Patch) { parser.Finish(); } else { ExpectErrors(() => parser.Finish()); } DoBehavior(mode); Assert.AreEqual(60, Dec.Database <ConverterDec> .Get("TestDec").empty.value); Assert.AreEqual(15, Dec.Database <ConverterDec> .Get("TestDec").empty.sideValue); Assert.AreEqual(5, Dec.Database <ConverterDec> .Get("TestDec").filled.value); Assert.AreEqual(20, Dec.Database <ConverterDec> .Get("TestDec").filled.sideValue); }
public void Tuple([Values] BehaviorMode mode, [Values] ParseModesToTest parseMode) { Dec.Config.TestParameters = new Dec.Config.UnitTestParameters { explicitTypes = new Type[] { typeof(TupleDec) } }; var parser = new Dec.Parser(); parser.AddString($@" <Decs> <TupleDec decName=""TestDec""> <value {GenerateParseModeTag(parseMode)}> <li>11</li> <li>12</li> </value> </TupleDec> </Decs>"); if (parseMode == ParseModesToTest.Default || parseMode == ParseModesToTest.Replace) { parser.Finish(); } else { ExpectErrors(() => parser.Finish()); } DoBehavior(mode); Assert.AreEqual((11, 12), Dec.Database <TupleDec> .Get("TestDec").value); }
public void ArrayEmpty([Values] BehaviorMode mode, [Values] ParseModesToTest parseMode) { Dec.Config.TestParameters = new Dec.Config.UnitTestParameters { explicitTypes = new Type[] { typeof(ArrayDec) } }; var parser = new Dec.Parser(); parser.AddString($@" <Decs> <ArrayDec decName=""TestDec""> <empty {GenerateParseModeTag(parseMode)}> <li>5</li> <li>6</li> <li>7</li> </empty> </ArrayDec> </Decs>"); if (parseMode == ParseModesToTest.Default || parseMode == ParseModesToTest.Replace || parseMode == ParseModesToTest.Append) { parser.Finish(); } else { ExpectErrors(() => parser.Finish()); } DoBehavior(mode); Assert.AreEqual(new int[] { 5, 6, 7 }, Dec.Database <ArrayDec> .Get("TestDec").empty); Assert.AreEqual(new int[] { 1, 2, 3, 4 }, Dec.Database <ArrayDec> .Get("TestDec").filled); }
static string GenerateParseModeTag(ParseModesToTest mode) { if (mode == ParseModesToTest.Default) { return(""); } else { return($"mode='{mode.ToString().ToLower()}'"); } }
public void HashSetReplace([Values] BehaviorMode mode, [Values] ParseModesToTest parseMode) { Dec.Config.TestParameters = new Dec.Config.UnitTestParameters { explicitTypes = new Type[] { typeof(HashSetDec) } }; var parser = new Dec.Parser(); parser.AddString($@" <Decs> <HashSetDec decName=""TestDec""> <filled {GenerateParseModeTag(parseMode)}> <li>4</li> <li>5</li> <li>6</li> <li>7</li> </filled> </HashSetDec> </Decs>"); if (parseMode == ParseModesToTest.Default || parseMode == ParseModesToTest.Replace || parseMode == ParseModesToTest.Patch) { parser.Finish(); } else { ExpectErrors(() => parser.Finish()); } DoBehavior(mode); Assert.IsNull(Dec.Database <HashSetDec> .Get("TestDec").empty); if (parseMode == ParseModesToTest.Append || parseMode == ParseModesToTest.Patch) { Assert.AreEqual(new HashSet <int> { 1, 2, 3, 4, 5, 6, 7 }, Dec.Database <HashSetDec> .Get("TestDec").filled); } else { Assert.AreEqual(new HashSet <int> { 4, 5, 6, 7 }, Dec.Database <HashSetDec> .Get("TestDec").filled); } }
public void DictionaryReplace([Values] BehaviorMode mode, [Values] ParseModesToTest parseMode) { Dec.Config.TestParameters = new Dec.Config.UnitTestParameters { explicitTypes = new Type[] { typeof(DictionaryDec) } }; var parser = new Dec.Parser(); parser.AddString($@" <Decs> <DictionaryDec decName=""TestDec""> <filled {GenerateParseModeTag(parseMode)}> <three>-3</three> <four>4</four> <five>5</five> </filled> </DictionaryDec> </Decs>"); if (parseMode == ParseModesToTest.Default || parseMode == ParseModesToTest.Replace || parseMode == ParseModesToTest.Patch) { parser.Finish(); } else { ExpectErrors(() => parser.Finish()); } DoBehavior(mode); Assert.IsNull(Dec.Database <DictionaryDec> .Get("TestDec").empty); if (parseMode == ParseModesToTest.Patch || parseMode == ParseModesToTest.Append) { Assert.AreEqual(new Dictionary <string, int> { { "one", 1 }, { "two", 2 }, { "three", -3 }, { "four", 4 }, { "five", 5 } }, Dec.Database <DictionaryDec> .Get("TestDec").filled); } else { Assert.AreEqual(new Dictionary <string, int> { { "three", -3 }, { "four", 4 }, { "five", 5 } }, Dec.Database <DictionaryDec> .Get("TestDec").filled); } }