public void VerifyParamDelegates() { bool getCalled = false; bool setCalled = false; var cset = new MockConfigSet(); cset.GetParamDelegate = (int key, out object value) => { Assert.AreEqual(42, key); getCalled = true; value = null; return(false); }; cset.SetParamDelegate = (int key, object value) => { Assert.AreEqual(42, key); Assert.AreEqual(value, "test"); setCalled = true; }; Assert.AreEqual(default(string), cset.Param1); cset.Param1 = "test"; Assert.IsTrue(getCalled); Assert.IsTrue(setCalled); // Test the indexer getCalled = false; Assert.AreEqual(default(string), cset[42]); Assert.IsTrue(getCalled); }
public void MergeBasic() { var cset1 = new MockConfigSet() { Param1 = "1", }; var cset2 = new MockConfigSet() { Param2 = 2, }; // Basic merge cset1.Merge(cset2); // no conflicst, different params are defined Assert.AreEqual(2, cset1.Param2); cset1.Merge(cset2); // no conflicts, params have same values }
public void MergeKeepExisting() { var cset1 = new MockConfigSet() { Param2 = 1, }; var cset2 = new MockConfigSet() { Param1 = "2", Param2 = 2, }; cset1.Merge(cset2, MergeRules.KeepExisting); Assert.AreEqual("2", cset1.Param1); Assert.AreEqual(1, cset1.Param2); }
public void MergeOverwrite() { var cset1 = new MockConfigSet() { Param2 = 1, }; var cset2 = new MockConfigSet() { Param1 = "2", Param2 = 2, }; cset1.Merge(cset2, MergeRules.Overwrite); Assert.AreEqual("2", cset1.Param1); Assert.AreEqual(2, cset1.Param2); }
public void MergeDifferentTypes() { var cset1 = new MockConfigSet() { Param1 = "1", Param2 = 1, }; var cset2 = new AnotherMockConfigSet() { Param1 = "1", Param2 = 2, }; cset1.Merge(cset2); // Param1 shouldn't conflict, Param2 shouldn't be overwritten cset1.Merge(cset2, MergeRules.Overwrite); Assert.AreEqual(1, cset1.Param2); }
public void MergeConflicting() { var cset1 = new MockConfigSet() { Param2 = 1, }; var cset2 = new MockConfigSet() { Param1 = "2", Param2 = 2, }; try { cset1.Merge(cset2); Assert.Fail("ConfigSetMergeException expected !"); } catch (ConfigSetMergeException) { // Esnure that cset1 isn't modified in a conflicting merge Assert.IsNull(cset1.Param1); } }